Maison > développement back-end > Tutoriel Python > Comment pouvez-vous déterminer la similarité entre les documents texte en Python ?

Comment pouvez-vous déterminer la similarité entre les documents texte en Python ?

Patricia Arquette
Libérer: 2024-10-23 06:52:02
original
197 Les gens l'ont consulté

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

Détermination de la similarité d'un texte

Dans le traitement du langage naturel (NLP), la détermination de la similarité entre deux documents texte est cruciale. L'approche la plus courante consiste à convertir les documents en vecteurs TF-IDF et à calculer la similarité cosinus.

Implémentation de TF-IDF et de similarité cosinus

En Python, le Gensim et les packages scikit-learn fournissent des implémentations de TF-IDF et de similarité cosinus. Le code suivant, utilisant scikit-learn, transforme les documents en vecteurs TF-IDF et calcule leur similarité par paire :

<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>
Copier après la connexion

Interprétation des résultats

Pairwise_similarity est une valeur clairsemée matrice représentant les scores de similarité entre les documents. La similarité de chaque document avec lui-même est de 1, ces valeurs sont donc masquées. Le code ci-dessous trouve le document le plus similaire à un document d'entrée donné :

<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>
Copier après la connexion

Autres méthodes

Gensim propose des options supplémentaires pour les tâches de similarité de texte. Une autre ressource à explorer est [cette question Stack Overflow](https://stackoverflow.com/questions/52757816/how-to-find-text-similarity-between-two-documents).

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