Maison > développement back-end > Tutoriel Python > Comment puis-je calculer la similarité entre différents documents texte ?

Comment puis-je calculer la similarité entre différents documents texte ?

Patricia Arquette
Libérer: 2024-10-23 06:48:29
original
471 Les gens l'ont consulté

How Can I Calculate the Similarity Between Different Text Documents?

Comment déterminer la similarité entre des documents texte

Problème : Vous souhaitez calculer la similarité entre deux documents texte pour évaluer leur alignement sémantique.

Solution : L'approche dominante pour mesurer la similarité des documents consiste à les convertir en vecteurs TF-IDF (Term Frequency-Inverse Document Frequency). TF-IDF attribue des pondérations aux termes en fonction de leur fréquence dans le document et de leur rareté dans le corpus. Par la suite, la similarité cosinus entre ces vecteurs est calculée pour quantifier leur similarité.

Implémentation : Gensim et scikit-learn de Python fournissent des implémentations robustes pour les transformations TF-IDF. Utilisation de scikit-learn :

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

documents = [open(f).read() for f in text_files]
tfidf = TfidfVectorizer().fit_transform(documents)

# Cosine similarity is calculated automatically
pairwise_similarity = tfidf * tfidf.T</code>
Copier après la connexion

La pairwise_similarity résultante est une matrice clairsemée où chaque cellule représente la similarité cosinus entre les paires de documents correspondantes.

Interprétation des résultats : Le la matrice clairsemée a des dimensions égales au nombre de documents dans le corpus. Pour extraire le document présentant la plus grande similarité avec un document d'entrée donné, utilisez np.fill_diagonal() de NumPy pour masquer l'auto-similarité et np.nanargmax() pour trouver le maximum de non-auto-similarité :

<code class="python">result_idx = np.nanargmax(arr[input_idx])
most_similar_doc = corpus[result_idx]</code>
Copier après la connexion

Notez que l'argmax est effectué sur le tableau masqué pour éviter le maximum trivial de 1 (la similarité de chaque document avec lui-même).

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!

source:php
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal