ホームページ  >  記事  >  バックエンド開発  >  Python でテキスト ドキュメント間の類似性を判断するにはどうすればよいですか?

Python でテキスト ドキュメント間の類似性を判断するにはどうすればよいですか?

Patricia Arquette
Patricia Arquetteオリジナル
2024-10-23 06:52:02121ブラウズ

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

テキストの類似性の判定

自然言語処理 (NLP) では、2 つのテキスト ドキュメント間の類似性を判定することが重要です。最も一般的なアプローチは、ドキュメントを 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 は、テキスト類似性タスクの追加オプションを提供します。検討すべきもう 1 つのリソースは、[スタック オーバーフローの質問](https://stackoverflow.com/questions/52757816/how-to-find-text-similarity-between-two-documents) です。

以上がPython でテキスト ドキュメント間の類似性を判断するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。