shingling是将文档转换为可用于比较的string集合(或者进一步tokens)的矩阵。
minhashing是在保持文档相似性的基础上,对原始shinglings矩阵进行压缩,压缩文档的维度,变成signatures矩阵。得出的结果其实可以直接计算文档相似度了,不过为了进一步减少比较次数从而减少计算量要再使用lsh。The result of minhashing a set is a short vector of integers.The key property,which we'll prove, is that the number of components in which the two of these vectors agree is the expected value of the similarity of the underlying sets. minhash的主要作用:the reason we want to replace sets by their signatures is that the signatures take up much less space.we'd like to be able to work in main memory.
lsh是选出需要比较的文档(相似性较高的),形成候选对的才进行比较,减少需要比较的文档signatures数目。当然使用lsh可以不用minhashing阶段,直接使用shinglings,不过大多时候使用minhashing比较量会减少很多。
Note: 从上可知,LSH整个方法存在false positives 和false negatives,但是我们可以通过小心选择使用的参数,可以让false的概率变得足够小。
皮皮blog
Shingles文档表示
将原始文档进行表示和转换,转换成文档-shingles(列-行)矩阵。Shingling是我们将文档转换成集合的方法,这样有很多text相同的文档会被转换成有很多元素members相同的集合。
shingles相关概念
k-shingle(k-gram): 文档中k个consecutive(连续的) 字符序列。
字符characters: 空白符也当成字符,但是ht