shingle是指文档中一组邻近的 有序词。基于shingle的算法要求从文档中选取一系列 shingle,然后把shingle映射到Hash表中,一个 shingle对应一个Hash值,最后统计Hash表中相同的shingle比率,作为判定文本相似度依据,比率越高,相 似度越高。
下面就用维基百科的一个浅显例子来讲解shingle算法的原理,这个比较权威。
比如,一个文档
”a rose is a rose is a rose”
分词后的词汇(token,语汇单元)集合是
(a,rose,is,a,rose,is, a, rose)
那么w=4的4-shingling,即四个邻近有序词的组合,它们形成这个么一个类似数组的集合集合:
{ (a,rose,is,a), (rose,is,a,rose), (is,a,rose,is), (a,rose,is,a), (rose,is,a,rose) }
如上分别以一个词的开后向后扩展3个词,一共4个词,我们把它们编号分别为1-5号。然后往掉重复 的子集合,我们发现2号,4号,5号这四个组合里面的词是一样的,所以只保存2号,往掉4号,5号,那么就 只留下1号,2号,3号,结果如武汉网站建设哪家好
下:
{ (a,rose,is,a), (rose,is,a,rose), (is,a,rose,is) }
给定shingle的大小,两个文档A和B的相似度 r 定义为:
r(A,B)=|S(A)∩S(B)| / |S(A)∪S(B)|
意思是两个文档相交的shingle数及相同的shingle数除以两个文档相加的shingle数,,再精练一点就是两 个文档的shingle数的交集除以并集,由此可见相似度r是一个0-1之间的数,r值越来,相似度越高。今天的文章SHINGLE「建议收藏」分享到此就结束了,感谢您的阅读。
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:https://bianchenghao.cn/71312.html