基于倒排索引的记录相似度计算方法

文档序号:10655241阅读:430来源:国知局
基于倒排索引的记录相似度计算方法
【专利摘要】本发明公开基于倒排索引的记录相似度计算方法,计算方法包括如下步骤:第一步,先设计一个invert函数,该函数给定一个(ID/URL,TF?IDF weighted token vector),返回列表,即倒排索引;第二步:创建computeCommonTokens函数,该函数使用invert函数将Amazon与Google的TF?IDF权重记录转化为倒排索引,并通过Spark的transformation计算公共的Token列表,形式如[(ID,URL),<commonTokens List>];第三步,通过recordSimilarity即可算出Amazon记录与Google记录之间的相似度值;本发明的基于倒排索引的记录相似度计算方法将算法复杂度降低至线性运行时间的。
【专利说明】
基于倒排索引的记录相似度计算方法
技术领域
[0001]本发明公开基于倒排索引的记录相似度计算方法。
【背景技术】
[0002]目前,朴素的实体解析方法需要对所有记录做成对的两两相似度度量,这类算法时间复杂度上是二次的,而实际上多数记录之间没有共同的token,因此通过设计倒排索引的数据结构,可将算法复杂度降低至线性运行时间。

【发明内容】

[0003]本发明为了解决现有技术的问题,提供了可将算法复杂度降低至线性运行时间的基于倒排索引的基于倒排索引的记录相似度计算方法。
[0004]本发明的具体技术方案如下:基于倒排索引的记录相似度计算方法,其特征在于:所述计算方法包括如下步骤:
[0005]第一步,先设ir|个invert函数,该函数给定一个(ID/URL,TF-1DF weightedtoken vector),返回(token,ID/URL)列表,即倒排索引;
[0006]第二步,创建computeCommonTokens函数,该函数使用invert函数将Amazon与Google的TF-1DF权重记录转化为倒排索引(inverted indicies),并通过Spark的transformat1n计算公共的Token列表(common Token),形式如[(ID,URL),〈commonTokensList>];
[0007]第三步,通过recordSimi Iarity即可算出Amazon记录与Google记录之间的相似度值。
[0008]作为本发明进一步限制地,Spark在调度并运行任务时,为每个分区创建出一个任务,并由集群中一个计算核心来执行,并行度反映了数据分区情况,并行度是Spark应用优化的重要参数,配置合理的并行度可充分利用集群的并行计算能力。
[0009]本发明的技术效果:本发明的基于倒排索引的记录相似度计算方法可将算法复杂度降低至线性运行时间,采用信息检索领域通用的测度,准确率、召回率和F-measure来评估ER算法,准确性是真正相同实体与标记为相同实体的比值,召回率表示在所有真正相同实体中,找到的正确的相同实体的比例,.F-measure则是准确率与召回率的调和平均。
【附图说明】
[0010]图1是本发明本实施例的基于倒排索引的记录相似度计算方法的示意图。
【具体实施方式】
[0011 ]下面结合附图对本发明做进一步说明。
[0012]如图1所示,本实施例的基于倒排索引的记录相似度计算方法,所述计算方法包括如下步骤:
[0013]第一步,先设ir|个invert函数,该函数给定一个(ID/URL,TF-1DF weightedtoken vector),返回(token,ID/URL)列表,即倒排索引;
[0014]第二步,创建computeCommonTokens函数,该函数使用invert函数将Amazon与Google的TF-1DF权重记录转化为倒排索引(inverted indicies),并通过Spark的transformat1n计算公共的Token列表(common Token),形式如[(ID,URL),〈commonTokensList>];
[0015]第三步,通过recordSimi Iarity即可算出Amazon记录与Google记录之间的相似度值。
[0016]对算法进行了黄金标准(Gold Standard)评估与不同并行度算法运行时间的实验。本文的实验环境所用的Spark版本为1.5.0,Spark运行在Cloudera的YARN集群上,集群上部署了四台服务器,I台服务器作为Driver节点,3台服务器作为Worker节点,并设置Workder节点的运行环境参数如下,一num-executor = 3,--executors_cores = 2,--executor-memory 2g.采用信息检索领域通用的测度,准确率、召回率和F-measure来评估ER算法。准确性是真正相同实体与标记为相同实体的比值,。召回率表示在所有真正相同实体中,找到的正确的相同实体的比例,.F-measure则是准确率与召回率的调和平均,.准确率、召回率和F-measure是相似度阈值的函数,取不同的相似度值(0_1)时准确率、召回率和F-measure值的曲线图。
[0017]Spark在调度并运行任务时,为每个分区创建出一个任务,并由集群中一个计算核心来执行,并行度反映了数据分区情况。因此,并行度是Spark应用优化的重要参数,配置合理的并行度可充分利用集群的并行计算能力。
[0018]本文在不同并行度下测试算法执行的时间,随着并行度从I增加到18,算法运行的时间越来越短,并行度为18时算法执行的时间性能达到最优。但当并行度过高时,如并行度设置为1024时,算法时间性能由于线程切换的开销,导致下降。事实上,Spark官方文档也推荐为每个CHJ核心分配2-3个tasks—6*3 = 18。
[0019]本发明的基于倒排索引的记录相似度计算方法可将算法复杂度降低至线性运行时间,采用信息检索领域通用的测度,准确率、召回率和F-measure来评估ER算法,准确性是真正相同实体与标记为相同实体的比值,召回率表示在所有真正相同实体中,找到的正确的相同实体的比例,.F-measure则是准确率与召回率的调和平均。需要指出的是,上述较佳实施例仅为说明本发明的技术构思及特点,其目的在于让熟悉此项技术的人士能够了解本发明的内容并据以实施,并不能以此限制本发明的保护范围。凡根据本发明精神实质所作的等效变化或修饰,都应涵盖在本发明的保护范围之内。
【主权项】
1.基于倒排索引的记录相似度计算方法,其特征在于:所述计算方法包括如下步骤: 第一步,先设id 个invert函数,该函数给定一个(ID/URL,TF_IDF weighted tokenvector),返回(token,ID/URL)列表,即倒排索引; 第二步,创建computeCommonTokens函数,该函数使用invert函数将Amazon与Google的TF-1DF权重记录转化为倒排索引(inverted indicies),并通过Spark的transformat1n计算公共的Token列表(common Token),形式如[(ID,URL),〈commonTokens List〉]; 第三步,通过recordSimi larity即可算出Amazon记录与Google记录之间的相似度值。2.如权利要求1所述的基于倒排索引的记录相似度计算方法,其特征在于:Spark在调度并运行任务时,为每个分区创建出一个任务,并由集群中一个计算核心来执行,并行度反映了数据分区情况,并行度是Spark应用优化的重要参数,配置合理的并行度可充分利用集群的并行计算能力。
【文档编号】G06F17/30GK106021400SQ201610316033
【公开日】2016年10月12日
【申请日】2016年5月16日
【发明人】陈敏刚
【申请人】陈敏刚
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1