vlambda博客
学习文章列表

【文本挖掘】SimHash算法原理(超简明)

写作业时的顺便掉落~

-------------------------------------------------------------------

SimHash算法是Google用来网页去重的方法。分为5个步骤:分词,hash,加权,合并,降维。比如如果处理“小八是一只狗”这句话:

1、分词:小八/是/一只/狗。并给每个特征向量赋权值:小八(3)/是(1)/一只(2)/狗(3)

2、hash:通过hash函数计算各个特征向量hash值(这里仅作算法举例,未进行hash运算):

小八:1000110

是:   1010010

一只:1001011

狗:   1100100

3、加权:1则为权值,0则负权值

小八:3 -3 -3 -3 3 3 -3

是:   1 -1 1 -1 -1 1 -1

一只:2 -2 -2 2 -2 2  2

狗:   3 3 -3 -3 3 -3 -3

4、各个特征值加权结果累加,得到:9 -3 -7 -5 -3 3 -5

5、降维,累加结果大于0则作1,否则作0:1000010 。从而形成simhash签名