首页  >  文章  >  后端开发  >  如何确定 Python 中文本文档之间的相似性?

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

Patricia Arquette
Patricia Arquette原创
2024-10-23 06:52:02121浏览

How Can You Determine the Similarity Between Text Documents in Python?

确定文本相似度

在自然语言处理 (NLP) 中,确定两个文本文档之间的相似度至关重要。最常见的方法是将文档转换为 TF-IDF 向量并计算余弦相似度。

实现 TF-IDF 和余弦相似度

在 Python 中,Gensim scikit-learn 包提供了 TF-IDF 和余弦相似度的实现。以下代码使用 scikit-learn 将文档转换为 TF-IDF 向量并计算它们的成对相似度:

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

# Load documents
documents = [open(f).read() for f in text_files]

# Create TF-IDF vectorizer
tfidf = TfidfVectorizer().fit_transform(documents)

# Compute pairwise similarity
pairwise_similarity = tfidf * tfidf.T</code>

解释结果

Pairwise_similarity 是稀疏的表示文档之间相似度分数的矩阵。每个文档与其自身的相似度为 1,因此这些值被屏蔽掉。下面的代码查找与给定输入文档最相似的文档:

<code class="python">import numpy as np

# Input document index
input_idx = corpus.index(input_doc)

# Mask out diagonal and find the most similar document
np.fill_diagonal(pairwise_similarity.toarray(), np.nan)
result_idx = np.nanargmax(pairwise_similarity[input_idx])

# Get the most similar document
similar_doc = corpus[result_idx]</code>

其他方法

Gensim 为文本相似性任务提供了附加选项。另一个值得探索的资源是[这个 Stack Overflow 问题](https://stackoverflow.com/questions/52757816/how-to-find-text-similarity- Between-two-documents)。

以上是如何确定 Python 中文本文档之间的相似性?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn