您的位置:首页 > 其它

SHINGLE

2012-11-09 13:55 295 查看
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 算法