首页 > 后端开发 > Python教程 > 如何计算不同文本文档之间的相似度?

如何计算不同文本文档之间的相似度?

Patricia Arquette
发布: 2024-10-23 06:48:29
原创
470 人浏览过

How Can I Calculate the Similarity Between Different Text Documents?

如何确定文本文档之间的相似性

问题:您希望计算两个文本文档之间的相似性以评估它们的语义对齐。

解决方案:测量文档相似度的流行方法是将它们转换为 TF-IDF(词频-逆文档频率)向量。 TF-IDF 根据术语在文档中的出现频率以及它们在语料库中的稀有性来为术语分配权重。随后,计算这些向量之间的余弦相似度来量化它们的相似度。

实现:Python 的 Gensim 和 scikit-learn 为 TF-IDF 转换提供了强大的实现。使用 scikit-learn:

<code class="python">from sklearn.feature_extraction.text import TfidfVectorizer

documents = [open(f).read() for f in text_files]
tfidf = TfidfVectorizer().fit_transform(documents)

# Cosine similarity is calculated automatically
pairwise_similarity = tfidf * tfidf.T</code>
登录后复制

生成的pairwise_similarity 是一个稀疏矩阵,其中每个单元格表示相应文档对之间的余弦相似度。

解释结果:稀疏矩阵的维度等于语料库中文档的数量。要提取与给定输入文档相似度最高的文档,请利用 NumPy 的 np.fill_diagonal() 来屏蔽自相似性,并利用 np.nanargmax() 来查找非自相似性最大值:

<code class="python">result_idx = np.nanargmax(arr[input_idx])
most_similar_doc = corpus[result_idx]</code>
登录后复制

请注意,argmax 是在屏蔽数组上执行的,以避免平凡的最大值 1(每个文档与其自身的相似度)。

以上是如何计算不同文本文档之间的相似度?的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板