龙空技术网

Simhash

咸鱼养成记 146

前言:

现时我们对“hash算法实验报告”大概比较注意,各位老铁们都需要剖析一些“hash算法实验报告”的相关知识。那么小编也在网上搜集了一些对于“hash算法实验报告””的相关资讯,希望小伙伴们能喜欢,姐妹们一起来学习一下吧!

SimHash算法可计算文本间的相似度,实现文本去重。

首先,对原始内容分词,并且计算每个词的权重;对每个词哈希成一个整数,并且把这个整数对应的二进制序列中的 0 变成 -1,1 还是 1,得到一个 1 和 -1 组成的向量;把每个词哈希后的向量乘以词的权重,得到一个新的加权向量;把每个词的加权向量相加,得到一个最终向量,这个向量中每个元素有正有负;把最终这个向量中元素为正的替换成 1,为负的替换成 0,这个向量变成一个二进制位序列,也就是最终变成了一个整数。

Simhash 为每一个内容生成一个整数指纹,其中的关键是把每个词哈希成一个整数,这一步常常采用 Jenkins 算法。这里简单示意的整数只有 8 个二进制位,实际上可能需要 64 个二进制位的整数,甚至范围更大。

得到每个内容的 Simhash 指纹后,可以两两计算 汉明距离,比较二进制位不同个数,其实就是计算两个指纹的异或,异或结果中如果包含 3 个以下的 1,则认为两条内容重复。

标签: #hash算法实验报告