【文本挖掘】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签名