楼主: 小七六六
234 1

[问答] python Simhash模块 计算文本相似度 [推广有奖]

  • 1关注
  • 0粉丝

本科生

81%

还不是VIP/贵宾

-

威望
0
论坛币
27 个
通用积分
24.1943
学术水平
5 点
热心指数
5 点
信用等级
5 点
经验
469 点
帖子
23
精华
0
在线时间
205 小时
注册时间
2013-11-13
最后登录
2024-9-7

5论坛币
使用Simhash模块 计算出了两个文本的海明距离,但是不知道该如何使用simhash自带的函数进一步计算相似度。
如果进一步自定义函数,应该怎么计算呢?求各位相助

from simhash import Simhash
hash1 = Simhash(u'what is your real answer he asked the criminal when they firstly meet each other in ')
hash2 = Simhash(u'the criminal did not tell anybody his name and motivation when they' )
print('hash1',hash1)
print('hash2',hash2)
print('hash1.distance(hash2):',hash1.distance(hash2))

>--hash1 <simhash.Simhash object at 0x000002026372E310>>--hash2 <simhash.Simhash object at 0x000002026372E730>>
--hash1.distance(hash2): 28






最佳答案

赵安豆 查看完整内容

在`simhash`模块中,并没有直接提供计算相似度的函数。但是,根据海明距离(Hamming Distance)你可以自行设计一个函数来计算相似度。 通常情况下,两个Simhash值之间的海明距离越小,则表示它们所代表的文本片段越相似。我们可以基于这个原理定义一个简单的相似度计算方法:将最大可能的海明距离减去实际测得的海明距离后归一化到0~1区间内作为相似度。 考虑到Simhash使用64位哈希值,最大可能的距离为64(即所有比特位都不同) ...
关键词:python HASH sim Has 相似度
沙发
赵安豆 发表于 2024-7-23 22:05:45 |只看作者 |坛友微信交流群
在`simhash`模块中,并没有直接提供计算相似度的函数。但是,根据海明距离(Hamming Distance)你可以自行设计一个函数来计算相似度。

通常情况下,两个Simhash值之间的海明距离越小,则表示它们所代表的文本片段越相似。我们可以基于这个原理定义一个简单的相似度计算方法:将最大可能的海明距离减去实际测得的海明距离后归一化到0~1区间内作为相似度。

考虑到Simhash使用64位哈希值,最大可能的距离为64(即所有比特位都不同),可以按照以下公式计算相似度:

```
similarity = (max_distance - distance) / max_distance
```

因此对于上述代码中的示例,你可以这样计算相似度:

```python
from simhash import Simhash

# 原始文本
text1 = u'what is your real answer he asked the criminal when they firstly meet each other in '
text2 = u'the criminal did not tell anybody his name and motivation when they'

# 生成Simhash值
hash1 = Simhash(text1)
hash2 = Simhash(text2)

# 计算海明距离
distance = hash1.distance(hash2)

# 定义最大可能的海明距离(64位哈希)
max_distance = 64

# 根据公式计算相似度
similarity = (max_distance - distance) / max_distance

print('文本相似度:', similarity)
```

这样,你就可以得到两个文本片段之间的相似度了。

此文本由CAIE学术大模型生成,添加下方二维码,优先体验功能试用



使用道具

您需要登录后才可以回帖 登录 | 我要注册

本版微信群
加好友,备注cda
拉您进交流群

京ICP备16021002-2号 京B2-20170662号 京公网安备 11010802022788号 论坛法律顾问:王进律师 知识产权保护声明   免责及隐私声明

GMT+8, 2024-9-8 07:46