一、Simhash 算法概述

Simhash 算法是由 Google 的 Charikar 提出的一种局部敏感哈希(locality sensitive hashing)算法,它可以对文本进行指纹生成,并且可以快速的计算文本之间的相似度,被广泛用于文本去重、排重等应用中。

二、Simhash 算法原理

Simhash 算法的原理是把文本中的每个词,通过特定的 hash 函数转换为一个固定长度的签名(signature),然后将所有的签名进行累加,最后将累加的结果转换为一个固定长度的数字,这个数字就是文本的指纹,也就是 Simhash 值。

三、Simhash 算法应用

Simhash 算法可以用来计算文本之间的相似度,它的原理是:如果两个文本的 Simhash 值的海明距离(Hamming distance)比较小,那么这两个文本就相似,反之,如果海明距离比较大,那么这两个文本就不相似。因此,通过 Simhash 算法可以快速的计算出文本之间的相似度,从而达到文本去重的目的。