Maison > Article > développement back-end > Comment mesurer la similarité entre des documents texte ?
Mesure de la similarité des documents
Pour vérifier la similarité entre deux documents texte en PNL, l'approche standard consiste à transformer les documents en vecteurs TF-IDF. Ces vecteurs sont ensuite utilisés pour calculer la similarité cosinus, une métrique couramment utilisée dans les systèmes de recherche d'informations. Pour des informations plus détaillées, reportez-vous à « Introduction to Information Retrieval », un livre électronique disponible en ligne.
Implémentation en Python
Python fournit des bibliothèques telles que Gensim et scikit-learn qui facilitent le calcul de la similarité TF-IDF et cosinus. Dans scikit-learn, le calcul de la similarité cosinus entre les documents implique d'utiliser leurs vecteurs TF-IDF :
<code class="python">from sklearn.feature_extraction.text import TfidfVectorizer documents = [open(f).read() for f in text_files] tfidf = TfidfVectorizer().fit_transform(documents) pairwise_similarity = tfidf * tfidf.T</code>
Les documents en texte brut peuvent être traités directement :
<code class="python">corpus = ["I'd like an apple", "An apple a day keeps the doctor away"] tfidf = TfidfVectorizer(min_df=1, stop_words="english").fit_transform(corpus) pairwise_similarity = tfidf * tfidf.T</code>
Interprétation du Résultats
La matrice clairsemée résultante pairwise_similarity est de forme carrée. Pour identifier le document le plus similaire à un document donné, vous pouvez utiliser la fonction argmax de NumPy, après avoir masqué les éléments diagonaux (représentant l'autosimilarité).
<code class="python">import numpy as np arr = pairwise_similarity.toarray() np.fill_diagonal(arr, np.nan) input_doc = "Document to compare" input_idx = corpus.index(input_doc) result_idx = np.nanargmax(arr[input_idx]) most_similar_doc = corpus[result_idx]</code>
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!