gpt4 book ai didi

python - 使用 sklearn 哈希向量化器获取相似度百分比

转载 作者:行者123 更新时间:2023-11-30 23:20:19 26 4
gpt4 key购买 nike

我有Python程序,它从几个网站获取文章并将它们存储在数据库中,就我而言,当我不想在数据库中添加新文章时,我应该检查它不是重复的文章。我想简单地通过获取相似度百分比并为其设置阈值来完成这项工作(例如,我说如果(两个字符串的相似度百分比)> 70%,则新文章是重复的)

我的问题是找到相似度的百分比。现在我用difflib和 SequenceMatcher 类:

diff = SequenceMatcher(
None, article1.content, article2.content).ratio()

但是这是不对的,我认为使用 HashingVectorizer对于这种情况更好(?):

vectorizer = HashingVectorizer(n_features=(2**18))
article1_vector = vectorizer.transform([article1.content])
article2_vector = vectorizer.transform([article2.content])

如何获得两个哈希向量的相似度百分比(例如余弦距离)以及如何将其转换为百分比?感谢您的回答。

最佳答案

使用HashingVectorizer的默认设置(特别是norm="l2"),这两个向量之间的余弦相似度为

sim = (article1_vector * article2_vector.T).A[0, 0]

这实际上只是一个点积,带有一些技巧来摆脱 SciPy 稀疏矩阵格式。

这给出了 -11 之间的相似性,因此您可以加一并除以二以获得百分比。

关于python - 使用 sklearn 哈希向量化器获取相似度百分比,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25573997/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com