[发明专利]一种改进的SimHash代码相似度检测方法在审
申请号: | 201611203147.6 | 申请日: | 2016-12-23 |
公开(公告)号: | CN106873964A | 公开(公告)日: | 2017-06-20 |
发明(设计)人: | 陈铁明;潘永涛;王婷;吕明琪;陈波;江颉 | 申请(专利权)人: | 浙江工业大学 |
主分类号: | G06F9/44 | 分类号: | G06F9/44;G06F17/22 |
代理公司: | 杭州斯可睿专利事务所有限公司33241 | 代理人: | 王利强 |
地址: | 310014 浙江省*** | 国省代码: | 浙江;33 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 改进 simhash 代码 相似 检测 方法 | ||
技术领域
本发明涉及代码相似度检测技术领域,尤其是一种对simhash检测方法改进的代码相似度检测方法。
背景技术
GoogleMosesCharikar发表的一篇论文“detecting near-duplicates for web crawling”中提出了simhash算法,专门用来解决亿万级别的网页的去重任务。
simhash作为locality sensitive hash(局部敏感哈希)的一种:
其主要思想是降维,将高维的特征向量映射成低维的特征向量,通过两个向量的Hamming Distance来确定文章是否重复或者高度近似。
其中,Hamming Distance,又称汉明距离,在信息论中,两个等长字符串之间的汉明距离是两个字符串对应位置的不同字符的个数。也就是说,它就是将一个字符串变换成另外一个字符串所需要替换的字符个数。例如:1011101与1001001之间的汉明距离是2。至于我们常说的字符串编辑距离则是一般形式的汉明距离。
如此,通过比较多个文档的simHash值的海明距离,可以获取它们的相似度。simhash值的生成图解如图1所示。
算法过程大概如下:
1,将一个f维的向量V初始化为0;f位的二进制数S初始化为0;
2,对每一个特征:用传统的hash算法对该特征产生一个f位的签名b。对i=1到f:
如果b的第i位为1,则V的第i个元素加上该特征的权重;
否则,V的第i个元素减去该特征的权重。
3,如果V的第i个元素大于0,则S的第i位为1,否则为0;
4,输出S作为签名。
该算法首先将每一个特征映射为f维空间的一个向量,这个映射规则具体是怎样并不重要,只要对很多不同的特征来说,它们对所对应的向量是均匀随机分布的,并且对相同的特征来说对应的向量是唯一的就行。比如一个特征的4位hash签名的二进制表示为1010,那么这个特征对应的4维向量就是(1,-1,1,-1)T,即hash签名的某一位为1,映射到的向量的对应位就为1,否则为-1。然后,将一个文档中所包含的各个特征对应的向量加权求和,加权的系数等于该特征的权重。得到的和向量即表征了这个文档,我们可以用向量之间的夹角来衡量对应文档之间的相似度。最后,为了得到一个f位的签名,需要进一步将其压缩,如果和向量的某一维大于0,则最终签名的对应位为1,否则为0。这样的压缩相当于只留下了和向量所在的象限这个信息,而64位的签名可以表示多达264个象限,因此只保存所在象限的信息也足够表征一个文档了。
但是,该方法在计算一个文本的simhash值的时候,可能会遇到以下问题:
假设用4个特征w1、w2、w3、w4来表示所有的文档,现要得到两个文档的分别的4维签名。假设文档1各特征向量的hash值为:
w1=(1011),w2=(1001),w3=(0101),w4=(0010)
文档2各特征向量的hash值为:
w1’=(1000),w2’=(1010),w3’=(0001),w4’=(0111)
同时,若文档中向量d=(w1=7,w2=8,w3=10,w4=12),给各特征的hash加权:
W(w1)=1011*7=7 -7 7 7
W(w2)=1001*8=8 -8 -8 8
W(w3)=0101*10=-10 10 -10 10
W(w4)=0010*12=-12 -12 12 -12
将上述各特征向量的加权结果累加,得到”-7 -17 1 13”,降维得到文档1的simhash签名为”0011”。
同理,将文档2各特征向量加权结果累加,得到”-7 -13 3 7”,降维得到文档2的simhash签名为”0011”。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于浙江工业大学,未经浙江工业大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201611203147.6/2.html,转载请声明来源钻瓜专利网。
- 上一篇:SPE氢气发生器电气控制系统
- 下一篇:一种锌电积剥片刷洗机组及其方法