CN107704474A - 属性对齐方法和装置 - Google Patents
属性对齐方法和装置 Download PDFInfo
- Publication number
- CN107704474A CN107704474A CN201610648457.2A CN201610648457A CN107704474A CN 107704474 A CN107704474 A CN 107704474A CN 201610648457 A CN201610648457 A CN 201610648457A CN 107704474 A CN107704474 A CN 107704474A
- Authority
- CN
- China
- Prior art keywords
- data source
- property name
- attribute
- similarity
- pointer
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/25—Integrating or interfacing systems involving database management systems
- G06F16/258—Data format conversion from or to a database
Landscapes
- Engineering & Computer Science (AREA)
- Databases & Information Systems (AREA)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种属性对齐方法和装置,涉及数据分析领域,用于解决将一个数据源的一个属性匹配另一个数据源的多个属性导致计算复杂度大的问题。属性对齐方法包括:获取N个数据源;根据N个数据源得到属性名称集合并生成内部词典;根据属性名称集合、内部词典以及N个数据源中每个数据源的属性名称,得到每个数据源的属性特征向量;根据每个数据源的属性特征向量计算N个数据源中任意两个数据源之间的相似度和相似度矩阵;根据相似度矩阵对N个数据源进行聚类得到k个聚类;根据内部词典对k个聚类中同一聚类的数据源进行属性对齐得到k个数据源,对k个数据源进行属性对齐得到一个结果数据源。本发明的实施例应用于数据分析。
Description
技术领域
本发明涉及数据分析领域,尤其涉及一种属性对齐方法和装置。
背景技术
参照图1中所示,数据分析主要包括数据收集(英文全称:data collection)、数据整合(英文全称:data curation)和数据分析(英文全称:data analytics)这三个阶段。其中,数据收集即将各种业务所产生的数据做收集、建模和存储;数据整合即对其收集到的各种数据源做数据探查(英文全称:data profiling)、数据清洗(英文全称:datacleansing)、属性对齐(英文全称:schema mapping)、数据转换(英文全称:datatransforming)和数据去重(英文全称:data deduplication),形成一个统一的数据源;数据分析即对数据整合得到的数据源做相应的业务分析报表以及预测评估。由此可见,数据整合为数据分析的关键阶段,整合质量对于后续的数据分析非常重要。
在数据整合中,属性对齐作用是把不同数据结构的数据源转换成一个统一的数据结构的数据源。比如有的使用同义词,如联系电话这个属性分别使用Phone和Telephone;有的使用上下位词,如电话这个属性分别使用Phone和Mobile;有的存在输入错误,比如错把Company输错位Compamy;有的使用缩写代表全拼,如把Address缩写成Addr,缩写没有统一标准;有的使用分开定义和合并定义,如对姓名的定义,有的使用分开定义FirstName和LastName,有的使用合并定义UserName。正是因为存在各种不同的情况,使得属性对齐的难度增加,尤其当有万级数据源、千万级属性做属性对齐时,需要耗费大量的时间,对效率是一个非常大的考验。
现有技术中对于进行属性对齐的所有N个数据源不做区分,每一轮属性对齐时,任取两个数据源A和B,对数据源A和B进行属性对齐:首先将数据源A的1个属性匹配数据源B的1个属性;如果两个数据源A和B都还有未匹配的属性,接着将数据源A的1个属性匹配数据源B的2个属性,将数据源B的1个属性匹配数据源A的2个属性;并以此类推将一个数据源的一个属性匹配另一个数据源的多个属性,直到完成全部属性对齐或者达到匹配迭代次数的阈值,就完成了其中两个数据源A和B的属性匹配。两个数据源A和B完成匹配后,形成一个新的数据源AB,并入原来的数据源中,得到N-1个数据源。然后在这N-1个数据源中,再任取两个数据源进行属性匹配。重复这个过程,直到完成所有数据源的属性匹配,最终得到一个统一属性名称的数据源。其中,耗费最多计算时间的即是将一个数据源的一个属性匹配另一个数据源的多个属性,会匹配次数过多,计算复杂度大,从而导致效率低。
发明内容
本发明的实施例提供一种属性对齐方法和装置,用于解决现有技术中将一个数据源的一个属性匹配另一个数据源的多个属性导致计算复杂度大的问题。
为达到上述目的,本发明的实施例采用如下技术方案:
一方面,本发明实施例提供了一种属性对齐方法。该方法包括:
获取需要进行属性对齐的N个数据源,其中,N≥2;然后根据N个数据源的属性名称得到属性名称集合并且生成内部词典,其中,属性名称集合包含上述N个数据源的所有属性名称,内部词典包含N个数据源中已经属性对齐成功的属性名称,内部词典用于记录互相匹配(对齐)的属性名称,便于在进行属性对齐时根据内部词典对属性名称进行查找和替换同义词、上下位词或者错误词,或者用来查找和替换已经成功匹配的属性名称;然后根据属性名称集合、内部词典以及N个数据源中每个数据源的属性名称,得到每个数据源的属性特征向量,实现了将每个数据源的属性名称向量化,其中,属性特征向量包含0或1,1表示对应位置的属性名称属于每个数据源,0表示对应位置的属性名称不属于每个数据源但属于属性名称集合;然后利用向量间的相似度算法,根据每个数据源的属性特征向量计算N个数据源中任意两个数据源之间的相似度,并且根据N个数据源中任意两个数据源之间的相似度得到N*N的相似度矩阵;根据相似度矩阵对N个数据源进行聚类得到k个聚类,1<k≤N;根据内部词典对k个聚类中属于同一聚类的数据源进行属性对齐得到k个数据源,由于同一聚类的数据源相似度相近,即互相之间的属性名称差别较小,因此,在进行其中两个数据源之间的属性对齐时,一个数据源的一个属性匹配另一个数据源的一个属性即可以完成大部分匹配任务,尽量减少一个数据源的一个属性匹配另一个数据源的多个属性。最后对k个数据源进行属性对齐得到一个结果数据源即为对所有N个数据源进行属性对齐后得到的最终结果。
本发明提供的属性对齐方法,将N个数据源的属性名称合并成属性名称集合;如果将属性名称集合作为全为1的向量,因为每个数据源都是属性名称集合的子集,所以可以将每个数据源表示为包含0和1的属性特征向量,实现了将每个数据源进行向量化;然后利用向量间的相似度算法,根据属性特征向量计算N个数据源中任意两个数据源之间的相似度,并将所有相似度共同构建为相似度矩阵,该相似度矩阵的每一行或每一列即表示其中一个数据源与N个数据源中各个数据源的相似度;然后根据相似度矩阵的每一行或每一列对N个数据源进行聚类得到k个聚类,则每个聚类内的数据源之间相似度相近,即每个聚类内的数据源的之间的属性名称差别较小;然后对属于同一聚类的数据源进行属性对齐并生成一个数据源,则k个聚类可以生成k个新的数据源,然后对这k个新的数据源再进行属性对齐,得到一个结果数据源即完成了对所有N个数据源的属性对齐。由于属于同一聚类的数据源的属性名称差别较小,在进行其中两个数据源之间的属性对齐时,一个数据源的一个属性匹配另一个数据源的一个属性即可以完成大部分匹配任务,尽量减少将一个数据源的一个属性匹配另一个数据源的多个属性,因此可以很快对同一聚类的数据源进行属性对齐。解决了现有技术中将一个数据源的一个属性匹配另一个数据源的多个属性导致计算复杂度大的问题。
在一种可能的设计中,根据N个数据源的属性名称得到属性名称集合并且生成内部词典,包括:将N个数据源的所有属性名称进行集中以形成原始属性名称集合;对原始属性名称集合按照字典序进行排序得到属性名称集合。此时原始属性名称集合相当于所有N个数据源的属性名称的全集。
在一种可能的设计中,在对原始属性名称集合按照字典序进行排序得到属性名称集合之前,该方法还可以包括:对原始属性名称集合进行去重,并且将重复的属性名称加入内部词典。完成此步骤之后,原始属性名称集合中不再包含重复属性。
在一种可能的设计中,在对原始属性名称集合按照字典序进行排序得到属性名称集合之前,方法还包括:通过最小编辑距离算法对原始属性名称集合中的属性名称的输入错误进行纠正,并且将错误的属性名称和对应的正确的属性名称加入内部词典。完成此步骤之后,原始属性名称集合中不再含有错误的输入。
在一种可能的设计中,在对原始属性名称集合按照字典序进行排序得到属性名称集合之前,方法还包括:借助外部词典对原始属性名称集合中的同义词和上下位词进行替换,并且将互为同义词或上下位词的属性名称加入内部词典。完成此步骤之后,原始属性名称集合中不再同时包含同义词,并且不再同时包含上下位词。
在一种可能的设计中,根据属性名称集合、内部词典以及N个数据源中每个数据源的属性名称,得到每个数据源的属性特征向量,包括:根据内部词典对每个数据源的属性名称进行匹配,以消除属性名称中的同义词、上下位词和输入错误;对每个数据源的匹配后的属性名称按照字典序排序;根据属性名称集合对每个数据源的排序后的属性名称进行向量化以生成每个数据源的属性特征向量。该步骤的目的在于便于将排序后的属性名称与排序后的原始属性名称集合进行比较。
在一种可能的设计中,根据属性名称集合对每个数据源的排序后的属性名称进行向量化以生成每个数据源的属性特征向量,包括:使第一指针指向属性名称集合的第一个属性名称;使第二指针指向每个数据源的第一个属性名称;将第一指针指向的属性名称的字符串与第二指针指向的属性名称的字符串进行比较;如果第一指针所指向的字符串与第二指针所指向的字符串相等,则将第一指针指向属性名称集合的下一个属性名称,并且将第二指针指向每个数据源的下一个属性名称;如果第一指针所指向的字符串与第二指针所指向的字符串不相等,则在第二指针所指向的属性名称前一个位置插入空字符串,并将第一指针指向属性名称集合的下一个属性名称;重复执行将第一指针指向的属性名称的字符串与第二指针指向的属性名称的字符串进行比较,直至第一指针指向属性名称集合的最后一个属性名称,实现了将一个数据源的属性名称与原始属性名称集合中的属性名称相对应;对每个数据源的属性名称中空字符串位置置0,对非空字符串位置置1,以生成每个数据源的属性特征向量。相当于属于该数据源的属性名称位置都置为1,不属于该数据源但是属于属性名称集合的位置都置为0,这样如果将属性名称集合也作为向量,则所有N个数据源的属性特征向量与属性名称集合的向量所含的元素数目相同,实现了所有N个数据源的属性特征向量的长度对齐,便于计算N个数据源的属性特征向量间的相似度。
在一种可能的设计中,根据每个数据源的属性特征向量计算N个数据源中任意两个数据源之间的相似度,包括:按照余弦相似度算法来根据每个数据源的属性特征向量计算N个数据源中任意两个数据源之间的相似度。
在一种可能的设计中,根据相似度矩阵对N个数据源进行聚类得到k个聚类,包括:将相似度矩阵按行或列分为N个点,其中,每行或每列作为一个点;以N个点中k个点作为中心点,按照K-means算法对N个点进行聚类得到k个聚类。
在一种可能的设计中,根据内部词典对k个聚类中属于同一聚类的数据源进行属性对齐得到k个数据源,包括:设置匹配相似度阈值Qa、当前迭代次数C和终止迭代次数STOP;根据内部词典对属于同一聚类的第一数据源与第二数据源进行属性对齐,并将第一数据源与第二数据源中互相对齐的属性名称标识为已对齐属性,将未互相对齐的属性名称标识为待对齐属性;对第一数据源的待对齐属性中的一个属性名称与第二数据源的待对齐属性中的C个待对齐属性计算属性相似度,对第二数据源的待对齐属性中的一个属性名称与第一数据源的待对齐属性中的C个待对齐属性计算属性相似度;将大于相似度阈值Qa的属性相似度所对应的属性名称加入内部词典;如果第一数据源或第二数据源中待对齐属性个数小于等于C或者C等于STOP,则完成对第一数据源和第二数据源的属性对齐,并且将第一数据源和第二数据源整合作为新的数据源来替换第一数据源和第二数据源,否则,使C加1并重复进行根据内部词典对属于同一聚类的第一数据源与第二数据源进行属性对齐,直至同一个聚类整合为一个数据源。
在一种可能的设计中,可以通过下述公式计算属性相似度:根据公式属性相似度=W1*属性名称相似度+W2*属性描述相似度+W3*属性列相似度来计算属性相似度,其中W1、W2和W3是权重,取值范围均为0至1,并且W1+W2+W3=1.0。
另一方面,本发明实施例提供了一种属性对齐装置。该装置可以实现上述方法示例中进行属性对齐的功能,所述功能可以通过硬件实现,也可以通过硬件执行相应的软件实现。所述硬件或软件包括一个或多个上述功能相应的模块。
在一种可能的设计中,该装置的结构中包括处理器,该处理器被配置为支持该装置执行上述方法中相应的功能。该装置还可以包括存储器,该存储器用于与处理器耦合,其保存该装置必要的程序指令和数据。
又一方面,本发明实施例提供了一种计算机存储介质,用于储存为上述属性对齐装置所用的计算机软件指令,其包含用于执行上述方面所设计的程序。
相较于现有技术,本发明实施例提供的方案中,根据属性名称相似度对N个数据源进行聚类后,对同一聚类内相似度接近的数据源进行属性对齐然后再对所有聚类的数据源进行属性对齐。由于属于同一聚类的数据源的属性名称差别较小,在进行其中两个数据源之间的属性对齐时,一个数据源的一个属性匹配另一个数据源的一个属性即可以完成大部分匹配任务,尽量减少将一个数据源的一个属性匹配另一个数据源的多个属性,因此可以很快对同一聚类的数据源进行属性对齐。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明的实施例提供的数据分析的流程示意图;
图2为本发明的实施例提供的一种属性对齐方法的流程示意图;
图3为本发明的实施例提供的另一种属性对齐方法的流程示意图;
图4为本发明的实施例提供的得到属性特征向量的流程示意图;
图5为本发明的实施例提供的指针在属性名称集合和数据源中移动的示意图;
图6为本发明的实施例提供的余弦相似度算法的示意图;
图7为本发明的实施例提供的对N个点进行聚类的流程示意图;
图8为本发明的实施例提供的最终形成聚类的示意图;
图9为本发明的实施例提供的对同一聚类的数据源进行属性对齐的示意图;
图10为本发明的实施例提供的一种属性对齐装置的结构示意图;
图11为本发明的实施例提供的另一种属性对齐装置的结构示意图;
图12为本发明的实施例提供的又一种属性对齐装置的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明提供的属性对齐方法和装置,通过对N个数据源进行向量化后根据相似度进行聚类,使得同一聚类内的数据源之间的属性名称差别较小,先对同一聚类内的数据源进行属性对齐,然后对不同聚类的数据源进行属性对齐。由于在进行同一聚类内的数据源的属性对齐时,数据源之间的属性名称差别较小,因此大部分采用一个数据源的一个属性匹配另一个数据源的一个属性即可以完成大部分匹配任务,大量减少一个数据源的一个属性匹配另一个数据源的多个属性,从而解决了现有技术中将一个数据源的一个属性匹配另一个数据源的多个属性导致计算复杂度大的问题。
本发明提供了一种属性对齐方法,参照图2中所示,该方法包括:
S101、获取需要进行属性对齐的N个数据源,N≥2。
本发明中要求所有待进行属性对齐的数据源已经事先存在。
S102、根据N个数据源的属性名称得到属性名称集合并且生成内部词典,其中,属性名称集合包含N个数据源的所有属性名称,内部词典包含N个数据源中已经属性对齐成功的属性名称。
属性名称是一种字符串,是数据表格的列名。
内部词典是与外部词典相对的,但具有外部词典相同数据格式,用于记录互相匹配(对齐)的属性名称,便于在进行属性对齐时根据内部词典对属性名称进行查找和替换同义词、上下位词或者错误词,或者用来查找和替换已经成功匹配的属性名称。
外部词典是指已经证实是正确的知识。记录了广泛的行业同义词、上下位词等信息,可以跟查词典一样查询到某个词的同义词和/或上下位词,数据格式为(Phone,[Phone,Telephone,……])。同义词是指表示相同的意思,但词汇不同,比如Telephone和Phone是同义词。上下位词是上位词和下位词的简称,上位词是指一个概念的统称,下位词是在某个概念下的具体一种形态,比如上位词是联系方式,下位词是联系电话。
S103、根据属性名称集合、内部词典以及N个数据源中每个数据源的属性名称,得到每个数据源的属性特征向量,其中,属性特征向量包含0或1,1表示对应位置的属性名称属于该每个数据源,0表示对应位置的属性名称不属于该每个数据源但属于属性名称集合。
结合内部词典,每个数据源的属性名称都可以在属性名称集合找到匹配项,由于属性名称集合中包含N个数据源的所有属性名称,如果将属性名称集合表示为一个全为1的向量,则每个数据源作为属性名称集合的子集,都可以表示为一个包含0和1的向量,其中,将属于该数据源的属性名称表示为1,将不属于该数据源的属性名称表示为0。
S104、根据每个数据源的属性特征向量计算N个数据源中任意两个数据源之间的相似度,并且根据N个数据源中任意两个数据源之间的相似度得到N*N的相似度矩阵。
在将数据源转化为向量后,步骤S104主要利用向量的相似度算法来计算任意两个数据源之间的相似度并构成相似度矩阵,相似度取值范围为0至1。如表1中所示,由于数据源的数量是N,数据源A与数据源B之间的相似度等于数据源B与数据源A之间的相似度,并且数据源A与数据源A之间的相似度为1,所以这个相似度矩阵是一个N*N的对称矩阵,表中的a、b、c、d、e、f、g、h、i、j等表示相似度,取值范围为0至1。该相似度矩阵的每一列或每一行表示一个数据源与N个数据源中各个数据源的相似度,例如,第一行或第一列表示数据源A与数据源A、B、C、D和E等的相似度分别为1.0、a、b、c、d等。
表1
S105、根据相似度矩阵对N个数据源进行聚类得到k个聚类,1<k≤N。
由于相似度矩阵的每一列或每一行表示其中一个数据源与N个数据源中各个数据源的相似度,因此可以将相似度矩阵的每一列或每一行作为一个向量,形成N个向量,对这N个向量进行聚类即可以将相似度接近的数据源归为一个聚类。
S106、根据内部词典对k个聚类中属于同一聚类的数据源进行属性对齐得到k个数据源,对k个数据源进行属性对齐得到一个结果数据源。即为对所有N个数据源进行属性对齐后得到的最终结果。
由于同一聚类的数据源相似度相近,即互相之间的属性名称差别较小,因此,在进行其中两个数据源之间的属性对齐时,一个数据源的一个属性匹配另一个数据源的一个属性即可以完成大部分匹配任务,尽量减少一个数据源的一个属性匹配另一个数据源的多个属性。与现有技术中对任意两个数据源无差别的进行属性对齐过程中,有可能大量出现一个数据源的一个属性匹配另一个数据源的多个属性相比,计算复杂度大大降低,最终使得计算量很小。
本发明提供的属性对齐方法,将N个数据源的属性名称合并成属性名称集合;如果将属性名称集合作为全为1的向量,因为每个数据源都是属性名称集合的子集,所以可以将每个数据源表示为包含0和1的属性特征向量,实现了将每个数据源进行向量化;然后利用向量间的相似度算法,根据属性特征向量计算N个数据源中任意两个数据源之间的相似度,并将所有相似度共同构建为相似度矩阵,该相似度矩阵的每一行或每一列即表示其中一个数据源与N个数据源中各个数据源的相似度;然后根据相似度矩阵的每一行或每一列对N个数据源进行聚类得到k个聚类,则每个聚类内的数据源之间相似度相近,即每个聚类内的数据源的之间的属性名称差别较小;然后对属于同一聚类的数据源进行属性对齐并生成一个数据源,则k个聚类可以生成k个新的数据源,然后对这k个新的数据源再进行属性对齐,得到一个结果数据源即完成了对所有N个数据源的属性对齐。由于属于同一聚类的数据源的属性名称差别较小,在进行其中两个数据源之间的属性对齐时,一个数据源的一个属性匹配另一个数据源的一个属性即可以完成大部分匹配任务,尽量减少将一个数据源的一个属性匹配另一个数据源的多个属性,因此可以很快对同一聚类的数据源进行属性对齐。解决了现有技术中将一个数据源的一个属性匹配另一个数据源的多个属性导致计算复杂度大的问题。
本发明提供了另一种属性对齐方法,参照图3中所示,该方法包括:
S201、获取需要进行属性对齐的N个数据源,N≥2。
本发明中要求所有待进行属性对齐的数据源已经存在。假设其中一个数据源A的属性如表2中所示:
表2
数据源A的具体数据如表3中所示:
表3
假设另一个数据源B的属性如表4中所示:
表4
数据源B的具体数据如表5中所示:
表5
S202、将N个数据源的所有属性名称进行集中以形成原始属性名称集合。
此时原始属性名称集合相当于所有N个数据源的属性名称的全集。具体的通过数据源的属性列表,获取每个数据源的属性名称,如获取数据源A和B的属性名称,可得到:
数据源A的属性名称(CustID,Company,FirstName,LastName,Phone,Address,Type,……);数据源B的属性名称(CustID,Compamy,Contactor,Telephone,City,Street,Tp,……)。
把所有N个数据源的属性名称集中起来形成属性名称集合,如数据源A和B的属性名称集中起来得到属性名称集合(CustID,Company,FirstName,LastName,Phone,Address,Type,CustID,Compamy,Contactor,Telephone,City,Street,Tp,……)。
S203、对原始属性名称集合进行去重,并且将重复的属性名称加入内部词典。
通过计算属性名称的哈希值,例如JAVA语言中的哈希集合类java.util.HashSet就可以识别出重复属性,进而去重。通过上述方法,识别出重复属性名称CustID,去重后得到的属性名称集合为(CustID,Company,FirstName,LastName,Phone,Address,Type,Compamy,Contactor,Telephone,City,Street,Tp,……),并把该匹配信息加入内部词典中,在内部词典插入一条新记录(CustID,[CustID])。完成此步骤之后,原始属性名称集合中不再包含重复属性。
S204、借助外部词典对原始属性名称集合中的同义词和上下位词进行替换,并且将互为同义词或上下位词的属性名称加入所述内部词典。
通过查询外部词典,获知Telephone和Phone是同义词,统一替换为Phone。对属性名称集合替换同义词和上下位词之后,结果为(CustID,Company,FirstName,LastName,Phone,Address,Type,Compamy,Contactor,City,Street,Tp,……),并把该匹配信息加入内部词典中,在内部词典插入一条新记录(Phone,[Phone,Telephone])。完成此步骤之后,原始属性名称集合中不再同时包含同义词,并且不再同时包含上下位词。
S205、通过最小编辑距离算法对原始属性名称集合中的属性名称的输入错误进行纠正,并且将错误的属性名称和对应的正确的属性名称加入所述内部词典。
编辑距离又称Levenshtein距离,是指两个字串之间,由一个转成另一个所需的最少编辑操作次数。许可的编辑操作包括将一个字符替换成另一个字符,插入一个字符,删除一个字符。
使用最小编辑距离算法对两两属性名称计算相似度,用于检测属性名称中是否含有一些输入错误。设定属性名称相似度阈值Qs,大于阈值的,就判定为相同的属性名称,否则就是不同的属性名称。为了方便说明,假设Qs为2。
最小编辑距离算法:
其中d[i-1,j]+1代表字符串s2插入一个字母,d[i,j-1]+1代表字符串s1删除一个字母,然后当xi=yj时,不需要代价,所以和上一步d[i-1,j-1]代价相同,否则+1,接着d[i,j]是以上三者中最小的一项。最小编辑距离算法的一种JAVA语言实现代码如下面所示:
依据最小编辑距离算法的对比结果得到,Company和Compamy的编辑距离是1,小于阈值Qs(=2),因此判定Company和Compamy存在输入错误,两个属性是匹配的,因此在属性名称集合中去掉含有输入错误的属性名称Compamy,属性名称集合结果为(CustID,Company,FirstName,LastName,Phone,Address,Type,Contactor,City,Street,Tp,……),同时把该匹配信息加入内部词典中,在内部词典插入一条新记录(Company,[Company,Compamy])。完成此步骤之后,原始属性名称集合中不再含有错误的输入。
需要说明的是,步骤S203-S205均是可选步骤,并且无执行先后顺序。
S206、对原始属性名称集合按照字典序进行排序得到属性名称集合。
字典序是指按照字母顺序,或者数字小大顺序,由小到大形成的序列。对属性名称集合按字典序排序,排序后得到(Address,City,Company,Contactor,CustID,FirstName,LastName,Phone,Street,Tp,Type,……)即为属性名称集合。
通过步骤S201-S206,得到了一份完整的不包含重复属性名称,不包含同义词、上下位词、输入错误的属性名称,且按字典顺序排序的属性名称集合。步骤S202-S206对应于步骤S102。
S207、根据内部词典对每个数据源的属性名称进行匹配,以消除属性名称中的同义词、上下位词和输入错误。
对每一个数据源的属性名称,都使用内部词典对其属性名称进行匹配,以消除同义词、上下位词、输入错误的属性名称。如数据源A和B的属性名称使用内部词典进行替换后的结果为:
数据源A的属性名称使用内部词典替换后的结果为(CustID,Company,FirstName,LastName,Phone,Address,Type,……);数据源B的属性名称使用内部词典替换后的结果为(CustID,Company,Contactor,Phone,City,Street,Tp,……),输入错误的Compamy被替换成正确的输入Company,同义词Telephone被替换成Phone。
S208、对每个数据源的匹配后的属性名称按照字典序排序。
接着对每一个数据源的属性名称按照字典序排序,如数据源A和B的属性名称排序后的结果为:
数据源A的属性名称排序后(Address,Company,CustID,FirstName,LastName,Phone,Type,……);数据源B的属性名称排序后(City,Company,Contactor,CustID,Phone,Street,Tp,……)。
S209、根据属性名称集合对每个数据源的排序后的属性名称进行向量化以生成每个数据源的属性特征向量。
该步骤的目的在于便于将排序后的属性名称与排序后的原始属性名称集合进行比较。具体的,参照图4中所示,步骤S209包括步骤S2091-S2097:
S2091、第一指针指向属性名称集合的第一个属性名称。
参照图5中所示的初始状态,假设第一指针指向属性名称集合的第一个属性名称“Address”。
S2092、第二指针指向每个数据源的第一个属性名称。
参照图5中所示的初始状态,假设第二指针指向数据源A的第一个属性名称“Address”。
S2093、将第一指针指向的属性名称的字符串与第二指针指向的属性名称的字符串进行比较。如果相等则进行步骤S2094,否则进行步骤S2095。
参照图5中所示的初始状态,将第一指针指向的字符串“Address”与第二指针指向的字符串“Address”进行比较。
S2094、如果第一指针与第二指针所指向的属性名称的字符串相等,则将第一指针指向属性名称集合的下一个属性名称,将第二指针指向每个数据源的下一个属性名称。
参照图5中所示的初始状态和第一轮对比后,由于在初始状态下第一指针和第二指针指向的字符串均为“Address”,所以这两个字符串相等,因此第一指针和第二指针均向后移动指向下一个属性名称,完成第一轮对比。
S2095、如果第一指针与第二指针所指向的属性名称的字符串不相等,则在第二指针所指向的属性名称前一个位置插入空字符串,并将第一指针指向属性名称集合的下一个属性名称。
参照图5中所示的第一轮对比后和第一轮对比后,由于在第一轮对比后,第一指针指向了“City”,第二指针指向了“Company”,两个字符串不等,因此,在第二指针指向的“Company”前插入一个空字符串,并且将第一指针向后移动指向属性名称集合的下一个属性名称“Company”,继续后续对比。
S2096、重复执行步骤S2093所述的将第一指针指向的属性名称的字符串与第二指针指向的属性名称的字符串进行比较,直至第一指针指向属性名称集合的最后一个属性名称。
参照图5中所示的最后一轮对比后,当第一指针指向属性名称集合的最后一个属性名称,完成属性名称集合与数据源A的对比。
通过步骤S2091-S2096,数据源A的属性名称转换后的结果为(Address,,Company,,CustID,FirstName,,LastName,Phone,,Type,,……);数据源B的属性名称转换后的结果为(,City,Comopany,Contactor,CustID,,,Phone,Street,,Tp,……)。
S2097、对每个数据源的属性名称中的空字符串位置置0,对非空字符串位置置1,以生成每个数据源的属性特征向量。
相应的,数据源A的属性特征向量为(1,0,1,0,1,1,1,1,0,1,0,……);数据源B的属性特征向量为(0,1,1,1,1,0,0,1,1,1,0,……)。该步骤的所达到的效果是使得属性特征向量只包含0或1,1表示对应位置的属性名称属于该数据源A,0表示对应位置的属性名称不属于该数据源A但属于属性名称集合。相当于属于该数据源的属性名称位置都置为1,不属于该数据源但是属于属性名称集合的位置都置为0,这样如果将属性名称集合也作为向量,则所有N个数据源的属性特征向量与属性名称集合的向量所含的元素数目相同,实现了所有N个数据源的属性特征向量的长度对齐,便于计算N个数据源的属性特征向量间的相似度。
步骤S207-S209对应于步骤S103。
S210、按照余弦相似度算法来根据每个数据源的属性特征向量计算N个数据源中两个数据源之间的相似度,并且根据N个数据源中两个数据源之间的相似度得到N*N的相似度矩阵。
参照图6中所示,余弦相似度算法基本原理是:向量a和b相似度越大,则向量a和b之间的夹角θ越小,余弦值越接近1。余弦相似度的计算公式是
比如对数据源A和B的属性特征,就可以计算得到数据源A和B两个数据源的属性特征的余弦相似度为:
同样地,可以计算N个数据源中任意两个数据源的相似度。最终对N个数据源中两两数据源计算属性特征的相似度之后,假设构建相似度矩阵如表6中所示:
表6
由于数据源的数量是N,所以这个相似度矩阵是一个N*N的对称矩阵。
需要说明的是,本发明仅示例性的按照余弦相似度算法来计算任意两个数据源的属性特征向量之间的相似度,本领域的技术人员还可以想到其他相似度计算方法,同样适用于本发明。
步骤S210对应于步骤S104。
S211、将相似度矩阵按行或列分为N个点,其中,每行或每列作为一个点。
需要说明的是,由于上述相似度矩阵是N*N的对称矩阵,所以按行或按列所划分形成的向量相同。
S212、以N个点中k个点作为中心点,按照K-means算法对N个点进行聚类得到k个聚类,其中,1≤k≤N。参照图7中所示,步骤S212包括步骤S2121-S2126。需要说明的是,本发明仅示例性的使用K-means算法进行聚类,使用其他聚类算法同样适用于本发明。
S2121、设定聚类数量k,设定算法终止条件的阈值Qk,其中,1≤k≤N。
S2122、将相似度矩阵按行或按列分为N个点data[1]至data[N]。
由于相似度矩阵是一个N*N的对称矩阵,所以按列或按行分割成的向量本质上是相同的,示例性的,以按行分割成向量为例,将相似度矩阵按行分割成N个向量,其中的每一行作为一个点,一共有N个点,分别用data[1]、data[2]、……、data[N]表示。
S2123、从N个点data[1]至data[N]中随机选择k个点作为中心点c[1]至c[k]。
示例性的,取N个点中的前k个点作为中心点以c表示,则有c[1]=data[1]、c[2]=data[2]、……、c[k]=data[k]。
S2124、分别计算N个点data[1]至data[N]到k个中心点c[1]至c[k]的距离,并根据到k个中心点c[1]至c[k]的距离最短对N个点data[1]至data[N]进行标记。
示例性的,分别计算N个点data[1]、data[2]、……、data[N]到k个中心点c[1]、c[2]、……、c[k]的距离,假设data[m]与c[i]距离最短,则将data[m]标记为i,其中,1≤m≤N,1≤i≤k。
S2125、根据N个点data[1]至data[N]中具有相同标记的点,重新计算k个中心点c*[1]至c*[k]。
示例性的,以标记为i的点为例,重新计算中心点c*[i]={所有标记为i的点之和}/标记为i的点的数量,其中,1≤i≤k。
S2126、如果所有k个中心点满足|c*[i]-c[i]|<Qk则完成聚类,否则将c[i]替换为c*[i]并重新进行步骤S2124。
至此实现对N个点进行聚类得到k个聚类,N个点data[1]至data[N]的标记i即表示属于聚类i,每个聚类含有数量不等的数据源,并且聚类内的数据源的相似度都高于其他聚类的数据源。参照图8中所示,假设经过聚类后,第一个聚类中包含数据源A和B,第二个聚类中包括数据源C、D和E。
步骤S211-S212对应于步骤S105。
S213、根据所述内部词典对所述k个聚类中属于同一聚类的数据源进行属性对齐得到k个数据源。
具体的,对每一个聚类,假设该聚类内部有X个数据源,取任意两个数据源进行属性对齐,完成对齐之后得到一个新的数据源,合入该聚类内,得到X-1个数据源。再从这X-1个数据源中取任意两个数据源进行属性对齐,重复这个过程,直到该聚类只剩下一个数据源。参照图9中所示,步骤S213包括步骤S2131-S2135。
S2131、设置匹配相似度阈值Qa、当前迭代次数C和终止迭代次数STOP。
示例性的,假设Qa=0.8,设置当前迭代次数C=1,终止迭代次数STOP=2(STOP一般不超过2)。
S2132、根据内部词典对属于同一聚类的第一数据源与第二数据源进行属性对齐,并将第一数据源与第二数据源中互相对齐的属性名称标识为已对齐属性,将未互相对齐的属性名称标识为待对齐属性。
示例性的,例如数据源A有属性Phone,数据源B有属性Telephone,内部词典已经包含一条记录(Phone,[Phone,Telephone]),通过这条内部词典的记录,就可以判定数据源A的属性Phone和数据源B的属性Telephone是匹配的,把这两个属性标记为已对齐属性。同理,也可以判定数据源A的属性Company和数据源B的属性Compamy是匹配的,CustID也是匹配的,也把这两个属性标记为已对齐属性。
其余无法根据内部词典进行对齐的属性标记为待对齐属性。使用内部词典进行属性匹配之后,数据源A的待对齐属性为(FirstName,LastName,Address,Type,……);数据源B的待对齐属性为(Contactor,City,Street,Tp,……)。
S2133、对第一数据源的待对齐属性中的一个属性名称与第二数据源的待对齐属性中的C个待对齐属性计算属性相似度,对第二数据源的待对齐属性中的一个属性名称与第一数据源的待对齐属性中的C个待对齐属性计算属性相似度。
示例性的,当C=1时,数据源A的每一个属性名称都跟数据源B的每一个属性名称进行相似度计算,例如数据源A的属性Type跟数据源B的属性Contactor、City、Street、Tp等都分别计算相似度,数据源A的其他属性也进行同样计算。当C=2时,假设数据源A的等对齐属性剩下FirstName、LastName和Address,两两组合是(FirstName,LastName)、(FirstName,Address)和(LastName,Address),数据源B的待对齐属性剩下Contactor、City和Street,两两组合是(Contactor,City)、(Contactor,Street)和(City,Street),数据源A的两两属性组合跟数据源B的每个属性进行相似度计算,例如(FirstName,LastName)分别跟Contactor、City和Street进行相似度计算,数据源B的两两属性组合也与数据源A的每一个属性进行相似度计算,例如(City,Street)分别跟FirstName、LastName和Address进行相似度计算。
计算相似度时,需要分别计算属性名称相似度、属性描述相似度和属性列相似度,并加权求和得到整体的相似度。具体的,根据公式:“属性相似度=W1*属性名称相似度+W2*属性描述相似度+W3*属性列相似度”来计算属性相似度,其中W1、W2和W3是权重,取值范围均为0至1,并且W1+W2+W3=1.0。为了便于说明,假设W1=0.6,W2=0.2,W3=0.2。
属性名称相似度计算:一种可行的方法是做字符串比较,如果字符串相等则结果为1,否则结果为0。
属性描述相似度计算:一种可行的方法是对属性描述进行分词,统计每次词的词频,然后转换成词向量,用余弦相似度算法对词向量计算相似度,相似度结果在0和1之间。
属性列相似度计算:一种可行的方法是计算列的数据分布特征向量,用余弦相似度算法对数据分布特征向量计算相似度,相似度结果在0和1之间。
属性名称相似度、属性描述相似度和属性列相似度的结果都计算出来之后,带入公式W1*属性名称相似度+W2*属性描述相似度+W3*属性列相似度,即可求出属性匹配的整体相似度。假设当C=1时,计算得到的相似度如表7中所示:
表7
A的属性 | B的属性 | 相似度 |
FirstName | Contactor | 0.6 |
FirstName | City | 0.1 |
FirstName | Street | 0.1 |
FirstName | Tp | 0.2 |
LastName | Contactor | 0.6 |
LastName | City | 0.1 |
LastName | Street | 0.1 |
LastName | Tp | 0.2 |
Address | Contactor | 0.05 |
Address | City | 0.6 |
Address | Street | 0.7 |
Address | Tp | 0.1 |
Type | Contactor | 0.01 |
Type | City | 0.05 |
Type | Street | 0.1 |
Type | Tp | 0.92 |
S2134、将大于相似度阈值Qa的属性相似度所对应的属性名称加入内部词典。
相似度大于阈值Qa的只有数据源A的Type匹配数据源B的Tp,可以判定数据源A的属性Type匹配数据源B的Tp,并把该匹配结果加入内部词典,在内部词典插入一条新记录(Type,[Type,Tp])。
S2135、如果第一数据源或第二数据源中待对齐属性个数小于等于C或者C等于STOP,则完成对第一数据源和第二数据源的属性对齐,并且将第一数据源和第二数据源整合作为新的数据源来替换第一数据源和第二数据源,否则,使C加1并重复进行根据内部词典对属于同一聚类的第一数据源与第二数据源进行属性对齐,直至同一个聚类整合为一个数据源。
每个聚类的数据源完成属性对齐之后,都输出一个新的数据源,一共是k个聚类,因此得到k个数据源。使C加1按照编程语言描述方式为C=C+1,即用C+1后的值对变量C赋值。
S214、对k个数据源进行属性对齐得到一个结果数据源。
采用上述相同的过程,即可完成所有数据源的属性对齐,从而得到一个结果数据源。由于聚类之间的数据源相似度小于聚类内的数据源的相似度,因此一般需要增大终止迭代次数STOP,STOP一般不超过5,其他的步骤保持不变。
依据上述步骤,完成对所有N个数据源的属性对齐。这个结果数据源包含了所有N个数据源的全部属性,并且没有重复属性,属性名称也是统一的。
步骤S213-S214对应于步骤S106。
S215、将结果数据源输出。
本发明提供的属性对齐方法,将N个数据源的属性名称合并成属性名称集合;如果将属性名称集合作为全为1的向量,因为每个数据源都是属性名称集合的子集,所以可以将每个数据源表示为包含0和1的属性特征向量,实现了将每个数据源进行向量化;然后利用向量间的相似度算法,根据属性特征向量计算N个数据源中任意两个数据源之间的相似度,并将所有相似度共同构建为相似度矩阵,该相似度矩阵的每一行或每一列即表示其中一个数据源与N个数据源中各个数据源的相似度;然后根据相似度矩阵的每一行或每一列对N个数据源进行聚类得到k个聚类,则每个聚类内的数据源之间相似度相近,即每个聚类内的数据源的之间的属性名称差别较小;然后对属于同一聚类的数据源进行属性对齐并生成一个数据源,则k个聚类可以生成k个新的数据源,然后对这k个新的数据源再进行属性对齐,得到一个结果数据源即完成了对所有N个数据源的属性对齐。由于属于同一聚类的数据源的属性名称差别较小,在进行其中两个数据源之间的属性对齐时,一个数据源的一个属性匹配另一个数据源的一个属性即可以完成大部分匹配任务,尽量减少将一个数据源的一个属性匹配另一个数据源的多个属性,因此可以很快对同一聚类的数据源进行属性对齐。解决了现有技术中将一个数据源的一个属性匹配另一个数据源的多个属性导致计算复杂度大的问题。
本领域技术人员应该很容易意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,本发明能够以硬件或硬件和计算机软件的结合形式来实现。某个功能究竟以硬件还是计算机软件驱动硬件的方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
本发明实施例可以根据上述方法示例提供一种属性对齐装置,并且对该属性对齐装置进行功能模块的划分,例如,可以对应各个功能划分各个功能模块,也可以将两个或两个以上的功能集成在一个处理模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。需要说明的是,本发明实施例中对模块的划分是示意性的,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。
在采用对应各个功能划分各个功能模块的情况下,图10中示出了执行上述实施例中属性对齐方法的属性对齐装置的一种可能的结构,该装置包括:获取单元101、计算单元102、聚类单元103、对齐单元104、去重单元105、纠正单元106和替换单元107。其中,获取单元101用于支持属性对齐装置执行图2中过程S101-S103、图3中过程S201-S202以及S206-S209、图4中过程S2091-S2097;计算单元102用于支持属性对齐装置执行图2中过程S104、图3中过程S210;聚类单元103用于支持属性对齐装置执行图2中过程S105、图3中过程S211-S212、图7中过程S2121-S2126、图9中过程S2131-S2135;对齐单元104用于支持属性对齐装置执行图2中过程S106;去重单元105用于支持属性对齐装置执行图3中过程S203;纠正单元106用于支持属性对齐装置执行图3中过程S205;替换单元107用于支持属性对齐装置执行图3中过程S204;上述方法实施例涉及的各步骤的所有相关内容均可以援引到对应功能模块的功能描述,在此不再赘述。
在采用集成的单元的情况下,图11示出了上述实施例中所涉及的执行属性对齐方法的属性对齐装置的一种可能的结构示意图。属性对齐装置1100包括:处理模块1101。处理模块1101用于对属性对齐装置的动作进行控制管理,例如,处理模块1101用于支持属性对齐装置执行图2中的过程S101-S106、图3中的过程S201-S215、图4中过程S2091-S2097、图7中过程S2121-S2126、图9中过程S2131-S2135,和/或用于本文所描述的技术的其它过程。属性对齐装置1100还可以包括存储模块1102,用于存储属性对齐装置的程序代码和数据。
其中,处理模块1101可以是处理器或控制器,例如可以是中央处理器(英文全称:central processing unit,英文简称:CPU),通用处理器,数字信号处理器(英文全称:digital signal processor,英文简称:DSP),专用集成电路(英文全称:application-specific integrated circuit,英文简称:ASIC),现场可编程门阵列(英文全称:fieldprogrammable gate array,英文简称:FPGA)或者其他可编程逻辑器件、晶体管逻辑器件、硬件部件或者其任意组合。其可以实现或执行结合本发明公开内容所描述的各种示例性的逻辑方框,模块和电路。所述处理器也可以是实现计算功能的组合,例如包含一个或多个微处理器组合,DSP和微处理器的组合等等。存储模块1102可以是存储器。
当处理模块1101为处理器,存储模块1102为存储器时,本发明实施例所涉及的属性对齐装置可以为图12所示的属性对齐装置。
参阅图12所示,该属性对齐装置1210包括:处理器1211、存储器1212以及总线1213。其中,处理器1211以及存储器1212通过总线1213相互连接;总线1213可以是外设部件互连标准(英文全称:peripheral component interconnect,英文简称:PCI)总线或扩展工业标准结构(英文全称:extended industry standard architecture,英文简称:EISA)总线等。所述总线可以分为地址总线、数据总线、控制总线等。为便于表示,图12中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
本领域技术人员应该可以意识到,在上述一个或多个示例中,本发明所描述的功能可以用硬件、软件、固件或它们的任意组合来实现。当使用软件实现时,可以将这些功能存储在计算机可读介质中或者作为计算机可读介质上的一个或多个指令或代码进行传输。计算机可读介质包括计算机存储介质和通信介质,其中通信介质包括便于从一个地方向另一个地方传送计算机程序的任何介质。存储介质可以是通用或专用计算机能够存取的任何可用介质。
应理解,在本发明的各种实施例中,上述各过程的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本发明实施例的实施过程构成任何限定。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的系统、设备和方法,可以通过其它的方式实现。例如,以上所描述的设备实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,设备或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
结合本发明公开内容所描述的方法或者算法的步骤可以硬件的方式来实现,也可以是由处理器执行软件指令的方式来实现。软件指令可以由相应的软件模块组成,软件模块可以被存放于随机存取存储器(Random Access Memory,RAM)、闪存、只读存储器(ReadOnly Memory,ROM)、可擦除可编程只读存储器(Erasable Programmable ROM,EPROM)、电可擦可编程只读存储器(Electrically EPROM,EEPROM)、寄存器、硬盘、移动硬盘、只读光盘(CD-ROM)或者本领域熟知的任何其它形式的存储介质中。一种示例性的存储介质耦合至处理器,从而使处理器能够从该存储介质读取信息,且可向该存储介质写入信息。当然,存储介质也可以是处理器的组成部分。处理器和存储介质可以位于ASIC中。另外,该ASIC可以位于核心网接口设备中。当然,处理器和存储介质也可以作为分立组件存在于核心网接口设备中。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以所述权利要求的保护范围为准。
Claims (22)
1.一种属性对齐方法,其特征在于,
获取需要进行属性对齐的N个数据源,N≥2;
根据所述N个数据源的属性名称得到属性名称集合并且生成内部词典,其中,所述属性名称集合包含所述N个数据源的所有属性名称,所述内部词典包含所述N个数据源中已经属性对齐成功的属性名称;
根据所述属性名称集合、所述内部词典以及所述N个数据源中每个数据源的属性名称,得到所述每个数据源的属性特征向量,其中,所述属性特征向量包含0或1,1表示对应位置的属性名称属于所述每个数据源,0表示对应位置的属性名称不属于所述每个数据源但属于所述属性名称集合;
根据所述每个数据源的属性特征向量计算所述N个数据源中任意两个数据源之间的相似度,并且根据所述N个数据源中任意两个数据源之间的相似度得到N*N的相似度矩阵;
根据所述相似度矩阵对所述N个数据源进行聚类得到k个聚类,1<k≤N;
根据所述内部词典对所述k个聚类中属于同一聚类的数据源进行属性对齐得到k个数据源,对所述k个数据源进行属性对齐得到一个结果数据源。
2.根据权利要求1所述的方法,其特征在于,所述根据所述N个数据源的属性名称得到属性名称集合并且生成内部词典,包括:
将所述N个数据源的所有属性名称进行集中以形成原始属性名称集合;
对所述原始属性名称集合按照字典序进行排序得到所述属性名称集合。
3.根据权利要求2所述的方法,其特征在于,在所述对所述原始属性名称集合按照字典序进行排序得到所述属性名称集合之前,所述方法还包括:
对所述原始属性名称集合进行去重,并且将重复的属性名称加入所述内部词典。
4.根据权利要求2所述的方法,其特征在于,在所述对所述原始属性名称集合按照字典序进行排序得到所述属性名称集合之前,所述方法还包括:
通过最小编辑距离算法对所述原始属性名称集合中的属性名称的输入错误进行纠正,并且将错误的属性名称和对应的正确的属性名称加入所述内部词典。
5.根据权利要求2所述的方法,其特征在于,在所述对所述原始属性名称集合按照字典序进行排序得到所述属性名称集合之前,所述方法还包括:
借助外部词典对所述原始属性名称集合中的同义词和上下位词进行替换,并且将互为同义词或上下位词的属性名称加入所述内部词典。
6.根据权利要求1所述的方法,其特征在于,所述根据所述属性名称集合、所述内部词典以及所述N个数据源中每个数据源的属性名称,得到所述每个数据源的属性特征向量,包括:
根据所述内部词典对所述每个数据源的属性名称进行匹配,以消除属性名称中的同义词、上下位词和输入错误;
对所述每个数据源的匹配后的属性名称按照字典序排序;
根据所述属性名称集合对所述每个数据源的排序后的属性名称进行向量化以生成所述每个数据源的属性特征向量。
7.根据权利要求6所述的方法,其特征在于,所述根据所述属性名称集合对所述每个数据源的排序后的属性名称进行向量化以生成所述每个数据源的属性特征向量,包括:
第一指针指向所述属性名称集合的第一个属性名称;
第二指针指向所述每个数据源的第一个属性名称;
将所述第一指针指向的属性名称的字符串与所述第二指针指向的属性名称的字符串进行比较;
如果所述第一指针所指向的字符串与所述第二指针所指向的字符串相等,则将所述第一指针指向所述属性名称集合的下一个属性名称,将所述第二指针指向所述每个数据源的下一个属性名称;
如果所述第一指针所指向的字符串与所述第二指针所指向的字符串不相等,则在所述第二指针所指向的属性名称前一个位置插入空字符串,并将所述第一指针指向所述属性名称集合的下一个属性名称;
重复执行所述将所述第一指针指向的属性名称的字符串与所述第二指针指向的属性名称的字符串进行比较,直至所述第一指针指向所述属性名称集合的最后一个属性名称;
对所述每个数据源的属性名称中空字符串位置置0,对非空字符串位置置1,以生成所述每个数据源的属性特征向量。
8.根据权利要求1所述的方法,其特征在于,所述根据所述每个数据源的属性特征向量计算所述N个数据源中任意两个数据源之间的相似度,包括:
按照余弦相似度算法来根据每个数据源的属性特征向量计算所述N个数据源中任意两个数据源之间的相似度。
9.根据权利要求1所述的方法,其特征在于,所述根据所述相似度矩阵对所述N个数据源进行聚类得到k个聚类,包括:
将所述相似度矩阵按行或列分为N个点,其中,每行或每列作为一个点;
以所述N个点中k个点作为中心点,按照K-means算法对所述N个点进行聚类得到所述k个聚类。
10.根据权利要求1所述的方法,其特征在于,所述根据所述内部词典对所述k个聚类中属于同一聚类的数据源进行属性对齐得到k个数据源,包括:
设置匹配相似度阈值Qa、当前迭代次数C和终止迭代次数STOP;
根据所述内部词典对属于同一聚类的第一数据源与第二数据源进行属性对齐,并将所述第一数据源与所述第二数据源中互相对齐的属性名称标识为已对齐属性,将未互相对齐的属性名称标识为待对齐属性;
对所述第一数据源的待对齐属性中的一个属性名称与所述第二数据源的待对齐属性中的C个待对齐属性计算属性相似度,对所述第二数据源的待对齐属性中的一个属性名称与所述第一数据源的待对齐属性中的C个待对齐属性计算属性相似度;
将大于所述相似度阈值Qa的属性相似度所对应的属性名称加入所述内部词典;
如果所述第一数据源或所述第二数据源中待对齐属性个数小于等于C或者C等于STOP,则完成对所述第一数据源和所述第二数据源的属性对齐,并且将所述第一数据源和所述第二数据源整合作为新的数据源来替换所述第一数据源和所述第二数据源,否则,使C加1并重复进行所述根据所述内部词典对属于同一聚类的第一数据源与第二数据源进行属性对齐,直至同一个聚类整合为一个数据源。
11.根据权利要求10所述的方法,其特征在于,所述计算属性相似度包括:
根据公式属性相似度=W1*属性名称相似度+W2*属性描述相似度+W3*属性列相似度来计算所述属性相似度,其中W1、W2和W3是权重,取值范围均为0至1,并且W1+W2+W3=1.0。
12.一种属性对齐装置,其特征在于,所述装置包括:
获取单元,用于获取需要进行属性对齐的N个数据源,N≥2;
所述获取单元,还用于根据所述N个数据源的属性名称得到属性名称集合并且生成内部词典,其中,所述属性名称集合包含所述N个数据源的所有属性名称,所述内部词典包含所述N个数据源中已经属性对齐成功的属性名称;
所述获取单元,还用于所述属性名称集合、所述内部词典以及所述N个数据源中每个数据源的属性名称,得到所述每个数据源的属性特征向量,其中,所述属性特征向量包含0或1,1表示对应位置的属性名称属于所述每个数据源,0表示对应位置的属性名称不属于所述每个数据源但属于所述属性名称集合;
计算单元,用于根据所述获取单元获取的每个数据源的属性特征向量计算所述N个数据源中任意两个数据源之间的相似度,并且根据所述N个数据源中任意两个数据源之间的相似度得到N*N的相似度矩阵;
聚类单元,用于根据根据所述计算单元计算得到的所述相似度矩阵对所述N个数据源进行聚类得到k个聚类,1<k≤N;
对齐单元,用于根据所述内部词典对所述聚类单元聚类得到的所述k个聚类中属于同一聚类的数据源进行属性对齐得到k个数据源,对所述k个数据源进行属性对齐得到一个结果数据源。
13.根据权利要求12所述的装置,其特征在于,所述获取单元,具体用于:
将所述N个数据源的所有属性名称进行集中以形成原始属性名称集合;
对所述原始属性名称集合按照字典序进行排序得到所述属性名称集合。
14.根据权利要求13所述的装置,其特征在于,所述装置还包括:
去重单元,用于对所述原始属性名称集合进行去重,并且将重复的属性名称加入所述内部词典。
15.根据权利要求13所述的装置,其特征在于,所述装置还包括:
纠正单元,用于通过最小编辑距离算法对所述原始属性名称集合中的属性名称的输入错误进行纠正,并且将错误的属性名称和对应的正确的属性名称加入所述内部词典。
16.根据权利要求13所述的装置,其特征在于,所述装置还包括:
替换单元,用于借助外部词典对所述原始属性名称集合中的同义词和上下位词进行替换,并且将互为同义词或上下位词的属性名称加入所述内部词典。
17.根据权利要求12所述的装置,其特征在于,所述获取单元,具体用于:
根据所述内部词典对所述每个数据源的属性名称进行匹配,以消除属性名称中的同义词、上下位词和输入错误;
对所述每个数据源的匹配后的属性名称按照字典序排序;
根据所述属性名称集合对所述每个数据源的排序后的属性名称进行向量化以生成所述每个数据源的属性特征向量。
18.根据权利要求17所述的装置,其特征在于,所述获取单元,具体用于:
第一指针指向所述属性名称集合的第一个属性名称;
第二指针指向所述每个数据源的第一个属性名称;
将所述第一指针指向的属性名称的字符串与所述第二指针指向的属性名称的字符串进行比较;
如果所述第一指针所指向的字符串与所述第二指针所指向的字符串相等,则将所述第一指针指向所述属性名称集合的下一个属性名称,将所述第二指针指向所述每个数据源的下一个属性名称;
如果所述第一指针所指向的字符串与所述第二指针所指向的字符串不相等,则在所述第二指针所指向的属性名称前一个位置插入空字符串,并将所述第一指针指向所述属性名称集合的下一个属性名称;
重复执行所述将所述第一指针指向的属性名称的字符串与所述第二指针指向的属性名称的字符串进行比较,直至所述第一指针指向所述属性名称集合的最后一个属性名称;
对所述每个数据源的属性名称中空字符串位置置0,对非空字符串位置置1,以生成所述每个数据源的属性特征向量。
19.根据权利要求12所述的装置,其特征在于,所述计算单元,具体用于:
按照余弦相似度算法来根据每个数据源的属性特征向量计算所述N个数据源中任意两个数据源之间的相似度。
20.根据权利要求12所述的装置,其特征在于,所述聚类单元,具体用于:
将所述相似度矩阵按行或列分为N个点,其中,每行或每列作为一个点;
以所述N个点中k个点作为中心点,按照K-means算法对所述N个点进行聚类得到所述k个聚类。
21.根据权利要求12所述的装置,其特征在于,所述对齐单元,具体用于:
设置匹配相似度阈值Qa、当前迭代次数C和终止迭代次数STOP;
根据所述内部词典对属于同一聚类的第一数据源与第二数据源进行属性对齐,并将所述第一数据源与所述第二数据源中互相对齐的属性名称标识为已对齐属性,将未互相对齐的属性名称标识为待对齐属性;
对所述第一数据源的待对齐属性中的一个属性名称与所述第二数据源的待对齐属性中的C个待对齐属性计算属性相似度,对所述第二数据源的待对齐属性中的一个属性名称与所述第一数据源的待对齐属性中的C个待对齐属性计算属性相似度;
将大于所述相似度阈值Qa的属性相似度所对应的属性名称加入所述内部词典;
如果所述第一数据源或所述第二数据源中待对齐属性个数小于等于C或者C等于STOP,则完成对所述第一数据源和所述第二数据源的属性对齐,并且将所述第一数据源和所述第二数据源整合作为新的数据源来替换所述第一数据源和所述第二数据源,否则,使C加1并重复进行所述根据所述内部词典对属于同一聚类的第一数据源与第二数据源进行属性对齐,直至同一个聚类整合为一个数据源。
22.根据权利要求21所述的装置,其特征在于,所述对齐单元,具体用于:
根据公式属性相似度=W1*属性名称相似度+W2*属性描述相似度+W3*属性列相似度来计算所述属性相似度,其中W1、W2和W3是权重,取值范围均为0至1,并且W1+W2+W3=1.0。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610648457.2A CN107704474B (zh) | 2016-08-08 | 2016-08-08 | 属性对齐方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610648457.2A CN107704474B (zh) | 2016-08-08 | 2016-08-08 | 属性对齐方法和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107704474A true CN107704474A (zh) | 2018-02-16 |
CN107704474B CN107704474B (zh) | 2020-08-25 |
Family
ID=61168883
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610648457.2A Active CN107704474B (zh) | 2016-08-08 | 2016-08-08 | 属性对齐方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107704474B (zh) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110275919A (zh) * | 2019-06-18 | 2019-09-24 | 合肥工业大学 | 数据集成方法及装置 |
CN110321435A (zh) * | 2019-06-28 | 2019-10-11 | 京东数字科技控股有限公司 | 一种数据源划分方法、装置、设备和存储介质 |
CN110569289A (zh) * | 2019-09-11 | 2019-12-13 | 星环信息科技(上海)有限公司 | 基于大数据的列数据处理方法、设备及介质 |
CN110688837A (zh) * | 2019-09-27 | 2020-01-14 | 北京百度网讯科技有限公司 | 数据处理的方法及装置 |
CN112765976A (zh) * | 2020-12-30 | 2021-05-07 | 北京知因智慧科技有限公司 | 文本相似度计算方法、装置、设备及存储介质 |
CN113987113A (zh) * | 2021-06-25 | 2022-01-28 | 四川大学 | 一种多站点定名服务融合方法、装置、存储介质及服务器 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1716258A (zh) * | 2004-05-14 | 2006-01-04 | 微软公司 | 用于web数据库模型匹配的方法和系统 |
US20070244690A1 (en) * | 2003-11-21 | 2007-10-18 | Koninklijke Philips Electronic, N.V. | Clustering of Text for Structuring of Text Documents and Training of Language Models |
CN103246685A (zh) * | 2012-02-14 | 2013-08-14 | 株式会社理光 | 将对象实例的属性规则化为特征的方法和设备 |
CN104486461A (zh) * | 2014-12-29 | 2015-04-01 | 北京奇虎科技有限公司 | 域名分类方法和装置、域名识别方法和系统 |
CN104699778A (zh) * | 2015-03-10 | 2015-06-10 | 东南大学 | 一种基于机器学习的跨语言分类结构匹配方法 |
-
2016
- 2016-08-08 CN CN201610648457.2A patent/CN107704474B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20070244690A1 (en) * | 2003-11-21 | 2007-10-18 | Koninklijke Philips Electronic, N.V. | Clustering of Text for Structuring of Text Documents and Training of Language Models |
CN1716258A (zh) * | 2004-05-14 | 2006-01-04 | 微软公司 | 用于web数据库模型匹配的方法和系统 |
CN103246685A (zh) * | 2012-02-14 | 2013-08-14 | 株式会社理光 | 将对象实例的属性规则化为特征的方法和设备 |
CN104486461A (zh) * | 2014-12-29 | 2015-04-01 | 北京奇虎科技有限公司 | 域名分类方法和装置、域名识别方法和系统 |
CN104699778A (zh) * | 2015-03-10 | 2015-06-10 | 东南大学 | 一种基于机器学习的跨语言分类结构匹配方法 |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110275919A (zh) * | 2019-06-18 | 2019-09-24 | 合肥工业大学 | 数据集成方法及装置 |
CN110321435A (zh) * | 2019-06-28 | 2019-10-11 | 京东数字科技控股有限公司 | 一种数据源划分方法、装置、设备和存储介质 |
CN110569289A (zh) * | 2019-09-11 | 2019-12-13 | 星环信息科技(上海)有限公司 | 基于大数据的列数据处理方法、设备及介质 |
CN110688837A (zh) * | 2019-09-27 | 2020-01-14 | 北京百度网讯科技有限公司 | 数据处理的方法及装置 |
CN110688837B (zh) * | 2019-09-27 | 2023-10-31 | 北京百度网讯科技有限公司 | 数据处理的方法及装置 |
CN112765976A (zh) * | 2020-12-30 | 2021-05-07 | 北京知因智慧科技有限公司 | 文本相似度计算方法、装置、设备及存储介质 |
CN113987113A (zh) * | 2021-06-25 | 2022-01-28 | 四川大学 | 一种多站点定名服务融合方法、装置、存储介质及服务器 |
CN113987113B (zh) * | 2021-06-25 | 2023-09-22 | 四川大学 | 一种多站点定名服务融合方法、装置、存储介质及服务器 |
Also Published As
Publication number | Publication date |
---|---|
CN107704474B (zh) | 2020-08-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107704474A (zh) | 属性对齐方法和装置 | |
US20200081899A1 (en) | Automated database schema matching | |
CN104636478B (zh) | 信息查询方法和设备 | |
WO2021143299A1 (zh) | 语义纠错方法、电子设备及存储介质 | |
CN102236699A (zh) | 为快速超标量处理对数据规格化 | |
CN109408528A (zh) | 一种数据库脚本生成方法、装置、计算装置和存储介质 | |
US20150032609A1 (en) | Correlation of data sets using determined data types | |
CN101894160B (zh) | 一种智能检索方法 | |
CN111401065A (zh) | 实体识别方法、装置、设备及存储介质 | |
CN110442873A (zh) | 一种基于cbow模型的热点工单获取方法及装置 | |
CN113535986A (zh) | 一种应用于医学知识图谱的数据融合方法及装置 | |
CN106933824A (zh) | 在多个文档中确定与目标文档相似的文档集合的方法和装置 | |
CN113220900B (zh) | 实体消歧模型的建模方法和实体消歧预测方法 | |
TW202123026A (zh) | 資料歸檔方法、裝置、電腦裝置及存儲介質 | |
CN110019474B (zh) | 异构数据库中的同义数据自动关联方法、装置及电子设备 | |
CN113342909A (zh) | 识别相同实体模型的数据处理系统 | |
CN101533391A (zh) | 一种查找相似的匹配句的系统及其方法 | |
WO2022198747A1 (zh) | 三元组信息的抽取方法、装置、电子设备和存储介质 | |
CN109324963A (zh) | 自动测试收益结果的方法及终端设备 | |
CN114443783A (zh) | 一种供应链数据分析和增强处理方法及装置 | |
CN114528824A (zh) | 文本纠错方法、装置、电子设备及存储介质 | |
CN113535938A (zh) | 基于内容识别的标准数据构建方法、系统、设备及介质 | |
CN114969242A (zh) | 查询内容自动补全的方法及装置 | |
CN113742447A (zh) | 基于查询路径生成的知识图谱问答方法、介质和设备 | |
CN112307070A (zh) | 掩码数据查询方法、装置及设备 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |