一种大规模文档相似性检测方法技术

技术编号:19057116 阅读:32 留言:0更新日期:2018-09-29 12:13
本发明专利技术提出了一种大规模文档相似性检测方法,包括:S1、计算文档集中文档其他信息的相似度;S2、每篇文档内容对应一个签名S和一个f维向量V;S3、对文档内容进行分词处理;S4、特征词x的权重综合计算;S5、将特征词用哈希函数映射为签名h,遍历h的每一位,对V进行调整;S6、遍历V,对于签名S进行调整,最终生成签名S为文档内容对应的签名值;S7、将文档内容对应的签名值分为n块,使用哈希函数,映射到桶,并判断是否二次哈希;S8、同一个桶的文档作为候选对,计算相似度;S9、判断是否为相似文档。本发明专利技术检测的准确率高,执行效率高。可广泛用于互联网大规模数据挖掘中。

【技术实现步骤摘要】
一种大规模文档相似性检测方法
本专利技术涉及一种检测方法,具体涉及一种大规模文档相似性检测方法,属于计算机算法领域。
技术介绍
随着大数据时代的到来,数据化信息增长迅速,数据占用空间越来越大,如此海量的数据带来了巨大的存储问题。研究发现,存储的数据中冗余数据比例大于六成,并且冗余比例在未来会继续增加。冗余数据降低了用户检索和查询数据的效率,并且大量存储资源浪费于存储冗余数据,并且用户也不希望看到一堆内容相同或近似的检索结果。另一方面,数据挖掘开发者通过网络爬取的数据同样面临数据重复、冗余的问题。因此文档相似性检测和去重已经成为国内外重要的研究课题。传统的哈希算法通过计算将输入数据映射成特定长度的哈希值输出,输入数据的差异越大,映射出的签名值差异也越大。但传统的哈希算法,如SHA-1、MD5,对1比特差距的输入数据都会产生完全不同的输出哈希值,因此无法检测出相似文档,需要对原有哈希算法进行改进,使得相似文档可以输出相似的哈希值。为了解决上述问题,目前还出现一种Simhash算法,该算法由3位Google的工程师G.S.Manku、A.Jain和A.D.Sarma于2007年提出。究其本质而言,Simhash算法是一种经过改进的哈希算法,旨在解决相似数据的去重,但将其实际应用于文档相似性检测后,人们发现,这一算法仍然存在着准确率不够高,效率较低的问题。综上所述,如何克服上述现有技术上的不足,提出一种准确率高、执行效率高的大规模文档相似性检测方法,就成为了本领域内的技术人员亟待解决的问题。
技术实现思路
鉴于现有技术存在上述缺陷,本专利技术的目的是提出一种大规模文档相似性检测方法。本专利技术的目的,将通过以下技术方案得以实现:一种大规模文档相似性检测方法,包括如下步骤:S1、输入文档集,计算文档集中文档其他信息的相似度;S2、文档集中每一篇文档内容对应一个初始化为0、长度为f的签名S,和一个初始化为0的f维向量V;S3、通过NLPIR分词系统对文档内容进行分词处理,过滤掉语气词、助词,并去掉干扰符号后将文档内容转换为一组特征词;S4、特征词x的权重综合使用TF-IDF技术和单词的主题相关性计算,将中文术语长度函数作为特征词x的主题相关性函数,中文术语长度函数为其中,x表示特征词的长度,特征词x的权重计算公式为其中,tfx,j×idfx表示关键词x在文档j的TF-IDF值,len(x)为单词x的主题相关性函数;S5、将所有特征词使用相同的哈希函数映射为长度为f的签名h,遍历h的每一位,若h的第i位为1,i介于1到f之间,V的第i位加上该特征词的权重,否则减去;S6、遍历V,如果V的第i位大于0,签名S的第i位设为1,否则设为0,最终生成的签名S就是文档内容对应的Simhash签名值;S7、将文档内容对应的Simhash签名值分为n块,对同块的签名值使用相同的哈希函数,映射到桶,检查每一个桶中的元素,判断元素数量有没超过(1+μ1)×AVEn,其中AVEn为桶中元素的平均值,μ1为权重,桶中元素数量超过的话进行二次哈希;S8、同一个桶的文档作为候选对,先使用文档内容对应的Simhash签名值进行海明距离的计算,然后使用第一步文档其它信息的相似度综合计算文档间的相似度,文档间的相似度的计算公式为其中Haming(A,B)表示A,B两篇文档内容的海明距离,minHash(A,B)表示A,B两篇文档其它信息的相似度,μ2的取值为0.8~0.9;S9、判断同一个桶中文档之间的相似度是否小于m值,若同一个桶中文档之间的相似度小于m值,即输出为相似文档,若同一个桶中文档之间的相似度不小于m值,即输出为非相似文档。优选地,S1中所述文档其他信息包括文档关键字、文档的标签以及文档的引用文献。优选地,S1中所述计算文档集中文档其他信息的相似度,包括如下步骤:S11、提取文档中的其他信息,并将提取出的其他信息用集合的形式表示,将这一系列集合组成特征矩阵;S12、使用MinHash的方法计算特征矩阵对应列之间的jaccard相似度。优选地,S12中所述使用MinHash的方法计算特征矩阵对应列之间的jaccard相似度,包括如下步骤:S121、对特征矩阵进行N次随机打乱生成签名矩阵;S122、选用的N个随机哈希函数为hi(x)=(x+i)modN(i=1,2,3…N),通过签名矩阵对应列之间的jaccard相似度来估计特征矩阵对应列之间的jaccard相似度。优选地,S9中所述m值为0.25。与现有技术相比,本专利技术的创新之处及其突出效果表现为:第一,本专利技术从多个维度入手,包括文档内容、文档关键字、文档的标签、文档的引用文献等综合计算文档的相似度,并且综合使用TF-IDF技术和单词的主题相关性计算关键词权重,提高了文档相似性检测的准确率。第二,在本专利技术的检索过程中,在出现哈希到桶但分布不均匀的情时,会进行二次哈希,减少候选对的数量并且使分布更加均匀,可以在保证相同文档检测量的前提下,以较短的时间完成检测操作,从而提升了提高文档相似性检测的执行效率。综上所述,本专利技术检测的准确率较高,执行效率较高。可广泛用于数据检索、数据存储等互联网大规模数据挖掘中。以下便结合实施例附图,对本专利技术的具体实施方式作进一步的详述,以使本专利技术技术方案更易于理解、掌握。附图说明图1是本专利技术的实现流程图;图2是本专利技术与原Simhash算法在五个主题上相似性文档检测准确率对比图;图3是本专利技术与原Simhash算法在五个主题上相似性文档检测召回率对比图;图4是本专利技术与原Simhash算法在相似性文档检测执行时间对比图。具体实施方式为了更加详细的描述本专利技术提出的种服务器集群的服务节点之间所执行的负载均衡方法。结合图1,具体说明如下。一种大规模文档相似性检测方法,包括如下步骤:S1、输入文档集,计算文档集中文档其他信息的相似度。S2、文档集中每一篇文档内容对应一个初始化为0、长度为f的签名S,和一个初始化为0的f维向量V。S3、通过NLPIR分词系统对文档内容进行分词处理,过滤掉语气词、助词,并去掉干扰符号后将文档内容转换为一组特征词。S4、特征词x的权重综合使用TF-IDF技术和单词的主题相关性计算,将中文术语长度函数作为特征词x的主题相关性函数,中文术语长度函数为其中,x表示特征词的长度,特征词x的权重计算公式为其中,tfx,j×idfx表示关键词x在文档j的TF-IDF值,len(x)为单词x的主题相关性函数。S5、将所有特征词使用相同的哈希函数映射为长度为f的签名h,遍历h的每一位,若h的第i位为1,i介于1到f之间,V的第i位加上该特征词的权重,否则减去。S6、遍历V,如果V的第i位大于0,签名S的第i位设为1,否则设为0,最终生成的签名S就是文档内容对应的Simhash签名值。S7、将文档内容对应的Simhash签名值分为n块,对同块的签名值使用相同的哈希函数,映射到桶,检查每一个桶中的元素,判断元素数量有没超过(1+μ1)×AVEn,其中AVEn为桶中元素的平均值,μ1为权重,桶中元素数量超过的话进行二次哈希。S8、同一个桶的文档作为候选对,先使用文档内容对应的Simhash签名值进行海明距离的计算,然后使用第一步文档其它信息的相似度综合计算文档间的相似度,文本文档来自技高网...

【技术保护点】
1.一种大规模文档相似性检测方法,其特征在于,包括如下步骤:S1、输入文档集,计算文档集中文档其他信息的相似度;S2、文档集中每一篇文档内容对应一个初始化为0、长度为f的签名S,和一个初始化为0的f维向量V;S3、通过NLPIR分词系统对文档内容进行分词处理,过滤掉语气词、助词,并去掉干扰符号后将文档内容转换为一组特征词;S4、特征词x的权重综合使用TF‑IDF技术和单词的主题相关性计算,将中文术语长度函数作为特征词x的主题相关性函数,中文术语长度函数为

【技术特征摘要】
1.一种大规模文档相似性检测方法,其特征在于,包括如下步骤:S1、输入文档集,计算文档集中文档其他信息的相似度;S2、文档集中每一篇文档内容对应一个初始化为0、长度为f的签名S,和一个初始化为0的f维向量V;S3、通过NLPIR分词系统对文档内容进行分词处理,过滤掉语气词、助词,并去掉干扰符号后将文档内容转换为一组特征词;S4、特征词x的权重综合使用TF-IDF技术和单词的主题相关性计算,将中文术语长度函数作为特征词x的主题相关性函数,中文术语长度函数为其中,x表示特征词的长度,特征词x的权重计算公式为其中,tfx,j×idfx表示关键词x在文档j的TF-IDF值,len(x)为单词x的主题相关性函数;S5、将所有特征词使用相同的哈希函数映射为长度为f的签名h,遍历h的每一位,若h的第i位为1,i介于1到f之间,V的第i位加上该特征词的权重,否则减去;S6、遍历V,如果V的第i位大于0,签名S的第i位设为1,否则设为0,最终生成的签名S就是文档内容对应的Simhash签名值;S7、将文档内容对应的Simhash签名值分为n块,对同块的签名值使用相同的哈希函数,映射到桶,检查每一个桶中的元素,判断元素数量有没超过(1+μ1)×AVEn,其中AVEn为桶中元素的平均值,μ1为权重,桶中元素数量超过的话进行二次哈希;S8、同一个桶的文档作为候选对,先使用文档内容对应的Simhash签名值进行海明距离的计算,然后使用第一步文档其它信息的相似度综合...

【专利技术属性】
技术研发人员:王诚王宇成
申请(专利权)人:南京邮电大学
类型:发明
国别省市:江苏,32

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1