1 simhash文本相似度计算
1.1 分词
把需要判断的两个文本分词形成特征单词,必要时去掉噪音词(停用词),并为每个词加上权重,权重的计算可以是词频或者tf-idf。
1.2 hash
通过hash算法把每个词变成hash值,比如“美国”通过hash算法计算为 100101,这样我们的字符串就变成了一串串数字。
1.3 加权
通过 2步骤的hash生成结果,需要按照单词的权重形成加权数字串,比如“美国”的hash值为“100101”,通过加权计算为“4 -4 -4 4 -4 4,即相当于判断hash值的每位数值,若该位值为1,该位被 w补上,若为0,该位被 -w补上。
1.4 合并
把上面各个单词算出来的序列值累加,变成只有一个序列串。比如 “美国”的 “4 -4 -4 4 -4 4”,“51区”的 “ 5 -5 5 -5 5 5”, 把每一位进行累加, “4+5 -4±5 -4+5 4±5 -4+5 4+5” ==》 “9 -9 1 -1 1 9”。这里作为示例只算了两个单词的,真实计算需要把所有单词的序列串累加。