shingling算法用于计算两个文档的相似度,例如,用于网页去重。维基百科对w-shingling的定义如下:
In natural language processing a w-shingling is a set of unique "shingles"contiguous subsequences of tokens in a document —that can be used to gauge the similarity of two documents. The w denotes the number of tokens in each shingle in the set.
维基百科用一个浅显的例子讲解了shingling算法的原理。
比如,一个文档 "a rose is a rose is a rose" ,分词后的词汇(token,语汇单元)集合是:(a,rose,is,a,rose,is, a, rose)
假设A([b1,…,bm])是包含m个二进制字符的二进制字符串,那么可以根据A构造相应的(m-1)度的多项式如下,其中t是不定元。