simhash算法例子
时间: 2023-06-13 14:09:05 浏览: 90
假设有两篇文本:
文本1:今天天气不错,可以出去玩啊
文本2:今天天气真好,可以去户外活动啊
我们可以通过以下步骤进行 simhash 算法的计算:
1. 首先,对每个文本进行分词,得到如下结果:
文本1:今天 天气 不错 可以 出去 玩 啊
文本2:今天 天气 真好 可以 去 户外 活动 啊
2. 接着,对每个词进行哈希处理,得到每个词的哈希值,如下:
今天:10101010
天气:00100101
不错:10010010
可以:00010111
出去:11111100
玩:11010110
啊:01011101
真好:10000111
去:01110110
户外:11101100
活动:01001011
3. 对每个文本进行 simhash 计算。首先,初始化一个 64 位的向量,全部置为 0。然后,对每个词的哈希值进行遍历,如果该位是 1,则将向量的该位加上该词的权重(例如,该位为 1,则权重为 +1,该位为 0,则权重为 -1)。最后,将向量中大于 0 的位标记为 1,小于 0 的位标记为 0。例如:
文本1 simhash 计算结果:10011110 01101001 11001101 10100111 01110100 01000111 00000010 11110111
文本2 simhash 计算结果:10011100 01010100 10001001 11001111 01110100 11100111 00000010 10110011
4. 最后,计算两个文本的 simhash 值的汉明距离,即两个二进制数中不同的位数。例如:
10011110 01101001 11001101 10100111 01110100 01000111 00000010 11110111
10011100 01010100 10001001 11001111 01110100 11100111 00000010 10110011
汉明距离为 8,说明两篇文本相似度较高。
相关推荐
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)