您的位置:首页 > 大数据

K-shingling

2016-03-04 14:44 387 查看
学习相似项发现的过程中出现了一个shingling小节,其中着重介绍了K-shingling,通过查找网络上的定义和例子,总结一下以便日后使用:

定义:

文档的K-shingling定义为其任意长度为K的字串,所以,每篇文档可以看成一次或多次的K-shiling集合。

例子:

比如,一个文档 “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) }

去掉重复的子集合:

{ (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)|

其中|A|表示集合A的大小。

因此,相似度是介于0和1之间的一个数值,且r(A,A)=1,即一个文档和它自身 100%相似。

K的选择问题

对于一般的邮件等较短文档,可以选择k=5

对于论文等大型文档,k=9比较合理
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息