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

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

Patricia Arquette
リリース: 2024-10-23 06:52:02
オリジナル
190 人が閲覧しました

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 サイトの他の関連記事を参照してください。

ソース:php
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート