テキストの類似性の判定
自然言語処理 (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 サイトの他の関連記事を参照してください。