一种基于分块的Web记录链接的系统及方法
技术领域
本发明涉及Web记录链接技术领域,尤其涉及一种基于分块的Web记录链接的系统及方法。
背景技术
大数据时代已经到来,而且数据规模之大,更新速度之快,遍布领域之广,是前所未有的。如何组织和分析这些数据,是发挥数据价值的一个极其富有挑战性的研究工作。但是由于这些数据来自Web中不同的数据源,表示同一实体的同一属性的值往往因为书写错误、多种命名方式等原因存在差异。记录链接的目的就是区分哪些记录表示的是同一实体。
传统的记录链接方法,主要针对来自几十个或上百个数据源的几百万个记录,而在大数据环境中,可获得的数据源可能涉及上百万个,其中相当数量的数据源是非结构化数据源,而且数据不断变化,加之随着数据源的增加,在数据表示上也更加千差万别,因此需要新的记录链接技术来应对大数据环境的挑战。
传统的记录链接方法主要是成对匹配和聚类相结合的方法。
成对匹配法是比较每一对记录,判断它们是否描述的是同一实体。具体可以采用基于规则的成对记录匹配、基于分类的成对记录匹配和基于距离的成对记录匹配。这三种方法分别具有以下不足:制定规则需要领域知识;训练分类器需要大量样本数据;各属性的权重参数需要仔细调整。
成对匹配的工作完成后,为了区分出表示同一实体的全部记录,再采用聚类法,构造成对匹配图,当且仅当两个记录之间相匹配时,有一条无向边。通过一次扫描图中的所有边,高效地将所有描述同一实体的记录聚在一类,将描述不同实体的记录聚在不同的类中。
这种成对匹配法和聚类法可以很好地确定记录链接的语义,但是当待匹配的记录超过百万量级之后,比较的次数将过于庞大,尤其对于大数据环境中的超大规模的数据集,这样的方法效率非常低,甚至是不可行的。
如何在超大的异构的数据集上高效地进行记录链接是我们要研究的问题。分块策略是扩展记录链接到超大数据集的有效方法。基本方法是在一个或者多个属性上将数据集分成较小的子块,成对匹配在块内进行,不同块之间的记录将不再进行成对匹配。这样记录链接的效率将大幅度提升。在此方法中,将解决如下系列问题:如何选择在哪个或者哪些属性上对数据集进行块的划分。确定分块属性后,分块的结果可能存在块的大小不均衡的情况,如何保证将数据集无偏地分成大小均衡的块。数据集超大,分块也是耗时的过程,如何并行实现。如何避免可能因块的划分而漏掉的那些记录链接,提高记录链接的召回率。如果记录链接结果存在冲突的情况,如何确定正确的记录链接。
发明内容
本发明所要解决的技术问题是快速准确分析Web实体,为了解决上述问题,本发明提供一种基于分块的Web记录链接的系统,包括Web爬取器、Sample数据库、Web记录数据库、分块属性分析模块、分块模块、块平衡模块、成对匹配模块、匹配确定模块和记录链接结果集;Web爬取器,一方面负责爬取某一领域的部分Web数据,建立该领域Web记录的Sample数据库;另一方面爬取这一领域Web数据库的数据获取尽可能多的记录,建立待匹配的Web记录数据库;Sample数据库,负责存放该领域Web记录的随机样本;Web记录数据库,负责存放该领域的Web数据库可爬取到的所有记录;分块属性分析模块,负责确定最优的分块属性;分块模块,负责采用分块函数,并应用MapReduce编程模型,将Web记录数据库的记录分到若干个块中;块平衡模块,负责将较大的块分成更小的子块;成对匹配模块,负责对块内记录进行成对匹配,在同属于一个块的子块间进行交叉成对匹配;匹配确定模块,负责考察由于采用不同的分块函数产生的有冲突的匹配对,确定正确的匹配结果;记录链接结果集,负责存放最后正确的匹配结果。
本发明还公开一种基于分块的Web记录链接方法,包括如下步骤:
A:爬取Web数据,建立随机样本数据库和待匹配的记录数据库,通过随机样本数据库提取数据属性,数据属性包括单个数据属性或数据属性组,将数据属性根据其覆盖率和区分度的加权数从大到小排列,将加权数最大的数据属性作为最优分块属性;
B:将待匹配的记录数据库的Web记录按模式对齐,根据最优分块属性,通过分块函数,并应用MapReduce编程模型加快分块的过程,将Web记录分成若干个块;
在步骤B中,使用MapReduce并行执行分块过程中,对每一个输入的Web记录,调用映射函数,对于互不重叠的Web记录,并行执行这一过程,输出分块属性的属性-函数值对,将具有相同属性-函数值对的Web记录分配到同一Reducer上,在不同块并行执行成对匹配;
C:考察步骤B中得到的每个块的大小,将需要平衡的块分成更小的子块;
在步骤C中,将超出平均工作负载的块作为需要平衡的块;
在步骤C中,需要平衡的块被分裂成更小的子块,在子块内将进行成对匹配,在同属于一个块的子块间将进行交叉成对匹配
D:采用编辑距离等相似度计算方法在块内进行成对匹配,在同属于一个块的子块间进行交叉成对匹配;
E:采用重叠分块函数方法,重复B、C、D步骤,重叠分块函数的方法,是在与B步骤中不同的次优分块属性,对数据集进行再次分块;
F:合并采用不同分块属性得到的成对匹配记录,获得所有的记录链接结果。
进一步地,在步骤A中,当给定一个属性,在此属性上有属性值的记录数占所有记录个数的比例越高,则覆盖率越高。
进一步地,在步骤A中,当给定一个属性,不同属性值的记录个数占所有记录个数的比例越大,则区分度越大。
进一步地,在步骤A中,根据不同领域数据属性的特点分配覆盖率和区分度的权重。
进一步地,在步骤B中,根据最优分块属性设立分块函数,将在此最优分块属性上具有不同值的Web记录分到不同的块中。
进一步地,在步骤C中,考察块内匹配或块内的子块块间匹配的次数,采用贪心算法,加载需要进行匹配计算的块或者子块。
进一步地,在步骤D中,采用编辑距离的相似度计算方法如下式所示:在步骤A中,综合考虑属性的覆盖率和区分度,按得到的得分从大到小排序,确定了分块属性序列,这里将得分归一化后作为计算成对匹配的各属性的权重,属性值的相似度,我们采用编辑距离等方式计算,如果加权相似度计算的结果超过一定的阈值,则两个记录对匹配,是描述同一实体的两个记录,
其中,wi是属性Ai的在实体识别中的权重,S(rj,rk)是实体rj与实体rk之间的相似度,s(Ai)是实体rj与实体rk之间在属性Ai上的相似度,计算s(Ai)的相似度函数根据属性的类型在已有的成熟的相似度函数中加以选择。
进一步地,在步骤E中,从最优分块属性中依次选择值最大的两组属性,分别在这两组属性上采用分块函数的方法,对Web记录进行分块操作。
进一步地,在步骤F中,对于两组成对匹配之后得到的记录链接,合并没有冲突的记录链接,对于有冲突的记录链接,比较成对匹配的相似度,取值较大的匹配结果作为记录链接的依据,得到所有的记录链接结果集。
本发明具有如下有益效果:
本发明公开的一种基于分块的Web记录链接的系统及方法采用Mapreduce模型快速将来自各个数据源的数据分块,在块内比较记录将在很大程度上提高记录匹配的效率,在此基础上,平衡块的大小,进一步提高的了记录匹配的效率。采用多分块函数对数据集从多个角度分块的方法,也同时提高了记录链接的召回率。
附图说明
图1是本发明的基于分块的Web记录链接系统的结构图;
图2是本发明的基于分块的Web记录链接方法的流程图;
图3是本发明的MapReduce基本模型示意图;
图4是本发明的块平衡示意图;
具体实施方式
下面结合附图并参照数据进一步详细描述本发明。应理解,实施方式只是为了举例说明本发明,而非以任何方式限制发明的范围。
Web数据庞大,即使是在一个领域内,如书、酒店、航班,信息量也是海量的大数据,在这些信息中,有很多记录描述的是同一实体,传统的方法是对这些记录采用成对匹配的方式进行比较,找到那些描述同一实体的记录,但是,由于Web记录规模巨大,因此必须采用快速匹配的方法才是有效可行的。
如图1所示,本发明公开的一种基于分块的Web记录链接的系统,包括Web爬取器、Sample数据库、Web记录数据库、分块属性分析模块、分块模块、块平衡模块、成对匹配模块、匹配确定模块和记录链接结果集;
Web爬取器,一方面负责爬取某一领域的部分Web数据,建立该领域Web记录的Sample数据库;另一方面爬取这一领域Web数据库的数据获取尽可能多的记录,建立待匹配的Web记录数据库;
Sample数据库,负责存放该领域Web记录的随机样本;
Web记录数据库,负责存放该领域的Web数据库可爬取到的所有记录;
分块属性分析模块,负责确定最优的分块属性;
分块模块,负责采用分块函数,并应用MapReduce编程模型,将Web记录数据库的记录分到若干个块中;
块平衡模块,负责将较大的块分成更小的子块;
成对匹配模块,负责对块内记录进行成对匹配,在同属于一个块的子块间进行交叉成对匹配;
匹配确定模块,负责考察由于采用不同的分块函数产生的有冲突的匹配对,确定正确的匹配结果;
记录链接结果集,负责存放最后正确的匹配结果。
上述各模块能够解决以下问题:
1.选定哪个属性或者属性的组合作为分块属性?通过用户的搜索和浏览信息的历史,获取某一领域的部分Web数据,对同一领域的记录,建立Web记录的随机样本数据库,对数据进行清洗、对齐和标注。对每一个属性的属性值统计其覆盖率,即,给定一个属性,在此属性上有属性值的记录数占所有记录个数的比例。覆盖率越高,越有可能成为分块属性。对每一个属性,统计其属性值对于区分不同记录的区分度,即,给定一个属性,不同属性值的记录个数占所有记录个数的比例。区分度越大,越有可能成为分块属性。综合考虑属性的覆盖率和区分度,从大到小排序,确定分块属性序列。
2.采取什么编程模型进一步提高匹配的效率?读取Web记录数据库中的记录,应用MapReduce编程模型,将在分块属性上使用分块函数得到的块,使用Map函数重新分布到若干个Reduce上。若块的大小存在不均衡,则将大块分裂,变成更小的子块,然后用贪心加载平衡的方法,将这些块加载到若干个Reduce上。在多个分块属性上使用不同的分块函数,同样地,若存在大小不均衡的块,也将进一步分成更小的块。
3.如何避免丢失的记录链接?在来自Web的记录数据库中,记录往往异构而且模式在对齐时很困难,本来应分在同一块中的记录,可能因为在分块属性的属性值上有错误或缺失的原因而被错误的分到了不同的块中。因此,选取不同的分块属性,采用多分块函数的方法,可以从不同的角度考察记录归属块的问题,从而避免了仅从某一属性进行分块可能引起的记录链接丢失问题,提高记录链接的召回率。
4.如何进行成对匹配?在块内进行成对匹配,对于有子块的块,则在子块内进行成对匹配,同一块的子块间进行块间成对匹配,满足一定阈值的匹配结果则是描述同一实体的记录。将用不同的分块属性得到的两组记录链接结果进行合并。
5.如何解决匹配的冲突?通过不同的分块属性对记录进行快速匹配,可能得到匹配冲突的情况,一旦出现这种情况,系统将考察匹配计算时的相似度,选取相似度值大的匹配结果加入记录链接结果集。
结合图2、图3、图4对本发明提供的一种基于分块的Web记录链接方法进行详细说明,该方法包括以下步骤,如图2所示:
A:爬取Web数据,建立随机样本数据库和待匹配的记录数据库,通过随机样本数据库提取数据属性,数据属性包括单个数据属性或数据属性组,将数据属性根据其覆盖率和区分度的加权数从大到小排列,将加权数最大的数据属性作为最优分块属性;
B:将待匹配的记录数据库的Web记录按模式对齐,根据最优分块属性,通过分块函数,并应用MapReduce编程模型加快分块的过程,将Web记录分成若干个块;
在步骤B中,使用MapReduce并行执行分块过程中,对每一个输入的Web记录,调用映射函数,对于互不重叠的Web记录,并行执行这一过程,输出分块属性的属性-函数值对,将具有相同属性-函数值对的Web记录分配到同一Reducer上,在不同块并行执行成对匹配;
C:考察步骤B中得到的每个块的大小,将需要平衡的块分成更小的子块;
在步骤C中,将超出平均工作负载的块作为需要平衡的块;
在步骤C中,需要平衡的块被分裂成更小的子块,在子块内将进行成对匹配,在同属于一个块的子块间将进行交叉成对匹配
D:采用编辑距离等相似度计算方法在块内进行成对匹配,在同属于一个块的子块间进行交叉成对匹配;
E:采用重叠分块函数方法,重复B、C、D步骤,重叠分块函数的方法,是在与B步骤中不同的次优分块属性,对数据集进行再次分块;
F:合并采用不同分块属性得到的成对匹配记录,获得所有的记录链接结果。
通过用户的搜索和浏览信息的历史,Web爬取器获取某一领域的部分Web数据,对同一领域的记录,建立Web记录的随机样本数据库。Web爬取器从Web数据库获取这一领域的记录,建立待匹配的记录数据库。对随机样本数据库和Web记录数据库的数据进行清洗、对齐和语义标注。
A:确定分块属性。通过采样,在返回的实体中,大部分都有的这个属性,并且此属性或属性的组合对实体要具有一定的可区分性;
B:爬取Web记录,将其按模式对齐,在所选择分块属性上,采用分块函数,应用MapReduce编程模型加快分块的过程,将巨大的数据集分成若干个块;
C:考察每个块的大小,若块的大小不平衡,则将较大的块分成更小的子块;
D:采用编辑距离等相似度计算方法在块内进行成对匹配,在同属于一个块的子块间进行交叉成对匹配;
E:采用重叠分块函数方法,然后重复B、C、D步骤;
F:合并采用不同分块属性得到的成对匹配记录,获得所有的记录链接结果。
其中,步骤A包括以下步骤:
A1:对每一个属性的属性值统计其覆盖率,即,给定一个属性,在此属性上有属性值的记录数占所有记录个数的比例。覆盖率越高,越有可能成为分块属性。
A2:对每一个属性,统计其属性值对于区分不同记录的区分度,即,给定一个属性,不同属性值的记录个数占所有记录个数的比例。区分度越大,越有可能成为分块属性。
A3:综合考虑属性的覆盖率和区分度,从大到小排序,确定分块属性序列。
步骤B包括以下步骤:
B1:在确定的分块属性或属性组合上,按属性值设立分块函数,将在此分块属性或属性组合上具有不同值的记录分到不同的块中。
B2:使用MapReduce(如图3所示)并行执行分块过程:对每一个输入记录,调用映射函数,对于互不重叠的部分记录,并行执行这一过程,输出分块属性的属性-函数值对,并按不同属性-函数值对分配到唯一的Reduce上;相应地,所有具有相同属性-函数值对的记录将被分配到同一Reducer上。在不同块并行执行成对匹配。
步骤C包括以下步骤:
C1:对于B步骤分块的结果,区分需要平衡的块。超出平均工作负载的块是需要平衡的块;
C2:块分裂的过程,如图4所示:大块被分裂成更小的子块,在块内将进行成对匹配,在同属于一个块的子块间将进行交叉成对匹配。
C3:考察块内匹配或块内的子块块间匹配的次数,采用贪心算法,加载需要进行匹配计算的块或者子块。
步骤D采用编辑距离的相似度计算方法为:
由步骤A3,综合考虑属性的覆盖率和区分度,按得到的得分从大到小排序,确定了分块属性序列。这里将得分归一化后作为计算成对匹配的各属性的权重。属性值的相似度,我们采用编辑距离等方式计算。如果加权相似度计算的结果超过一定的阈值,则两个记录对匹配,是描述同一实体的两个记录。
其中,wi是属性Ai的在实体识别中的权重,S(rj,rk)是实体rj与实体rk之间的相似度,s(Ai)是实体rj与实体rk之间在属性Ai上的相似度。计算s(Ai)的相似度函数可以根据属性的类型(字符型、数值型、范围型等)在已有的成熟的相似度函数(比如,编辑距离、Q-gram距离、单字符串距离等)中加以选择。
步骤E采用重叠分块函数对记录集进行分块的方法为:
从分块属性序列中依次选择值最大的两组属性,分别在这两组属性上采用分块函数的方法,对记录集进行分块操作。
步骤F合并成对匹配记录,获得所有的记录链接结果集的方法为:
对于两组成对匹配之后得到的记录链接,合并没有冲突的记录链接,对于有冲突的记录链接,比较成对匹配的相似度,取值较大的匹配结果作为记录链接的依据,得到所有的记录链接结果集。
本方法的意义:Web数据量庞大,即使是在一个领域内,如书、酒店、航班,也是海量的大数据,在这些信息中,有很多记录描述的是同一实体,传统的直接采用成对匹配的方式一一进行比较的方法,已经不在适用。本方法探讨了在超大的异构的数据集上如何高效地进行记录链接,尽可能找全描述同一实体的记录的方法。通过此方法,先将记录划分到块中,可以将记录的成对匹配限制在块内进行;为了避免将本应划分到同一块中的记录划分到不同的块中,采用多分块函数的方法,有效避免了记录链接的丢失;采用MapReduce的方法,并行执行分块及块内成对匹配,进一步提高了成对匹配的速度;对分块产生的不平衡问题,采用块平衡策略,将大块继续分成若干子块,平衡了各块内成对匹配的时间。通过此方法进行记录链接,具有速度快、召回率高的特点。
以上详细描述了本发明的较佳具体实施例。应当理解,本领域的普通技术人员无需创造性劳动就可以根据本发明的构思作出诸多修改和变化。因此,凡本技术领域中技术人员依本发明的构思在现有技术的基础上通过逻辑分析、推理或者有限的实验可以得到的技术方案,皆应在由权利要求书所确定的保护范围内。