Tf-Idf
Glissez pour afficher le menu
Comprendre le TF-IDF
Bien que le modèle du sac de mots soit simple et efficace, il a tendance à surévaluer les termes courants, ce qui rend plus difficile l'identification des mots moins fréquents mais plus informatifs. Pour remédier à cela, le modèle TF-IDF est souvent utilisé à la place.
TF-IDF (term frequency-inverse document frequency) est une mesure statistique qui reflète l'importance d'un mot dans un document spécifique par rapport à un corpus plus large.
Contrairement au modèle BoW, qui se base sur le comptage brut des termes, le TF-IDF prend en compte à la fois la fréquence d'un terme dans un document et sa fréquence inverse dans l'ensemble du corpus. Cela réduit l'influence des termes courants et met en avant les termes plus rares et plus informatifs.
Fonctionnement du TF-IDF
Le score TF-IDF pour un terme dans un document est calculé comme suit :
tf-idf(t,d)=tf(t,d)×idf(t)où :
- t désigne le terme (un mot ou un n-gramme) ;
- d désigne le document.
Il existe de nombreuses variantes pour le calcul des valeurs tf et idf. Voici une option courante pour chacune :
Fréquence du terme (TF)
Indique la fréquence d'apparition d'un terme dans un document, reflétant ainsi son importance relative dans ce document. À l'instar du modèle sac de mots, un simple comptage est souvent utilisé :
tf(t,d)=count(t,d)Fréquence inverse du document (IDF)
Mesure la rareté d'un terme dans l'ensemble du corpus. Elle peut être calculée comme le logarithme naturel du rapport entre le nombre total de documents et le nombre de documents contenant le terme :
idf(t)=log(1+df(t)1+Ndocuments)+1Cette formule utilise un lissage (ajout de 1) pour éviter la division par zéro et garantit que même les termes courants reçoivent un score IDF non nul. En pratique, l'IDF réduit l'importance des termes fréquents et met en avant les termes rares et plus informatifs.
Sans la composante IDF, le TF-IDF se réduirait à un simple comptage des termes — revenant ainsi au modèle sac de mots.
Calcul du TF-IDF
Exemple simple :
Dans ce cas, il y a seulement deux documents et seuls les unigrammes (mots individuels) sont utilisés, ce qui rend les calculs simples. On commence par calculer les fréquences des termes pour chaque mot dans les deux documents, puis les valeurs IDF pour les termes "a" et "is".
Comme il n'y a que deux documents dans notre corpus, chaque terme apparaissant dans les deux documents aura une valeur IDF de 1, tandis que les autres termes auront une valeur IDF de ~1.406465.
Enfin, il est possible de calculer les valeurs TF-IDF pour chaque terme dans chaque document en multipliant TF par IDF, ce qui donne la matrice suivante :
Normalisation L2
Les vecteurs TF-IDF obtenus peuvent varier considérablement en magnitude, en particulier dans de grands corpus, en raison des différences de longueur des documents. C'est pourquoi la normalisation L2 est couramment appliquée — pour ramener tous les vecteurs à une longueur uniforme, permettant des comparaisons équitables et impartiales entre des documents de différentes longueurs.
La normalisation L2, également appelée normalisation euclidienne, est un processus appliqué à des vecteurs individuels qui ajuste leurs valeurs afin que la longueur du vecteur soit égale à 1.
La normalisation L2 s'effectue en divisant chaque terme du vecteur par la norme euclidienne du vecteur.
Si le vecteur du document est le suivant :
d=(w1,w2,w3,...,wN)où wi est le poids du terme i,
alors la norme euclidienne s'écrit :
∥d∥2=w12+w22+w32+...+wN2et le vecteur normalisé s'écrit :
dnorm=(∥d∥2w1,∥d∥2w2,∥d∥2w3,...,∥d∥2wN)Voici comment la normalisation L2 fonctionne pour un vecteur à 2 dimensions (un document avec 2 termes) :
Ne vous inquiétez pas si les formules semblent complexes. Il s'agit simplement de diviser chaque valeur TF-IDF d'un document par la longueur (ou magnitude) du vecteur TF-IDF de ce document. Cela met à l'échelle le vecteur afin que sa longueur devienne 1, garantissant des comparaisons cohérentes entre les vecteurs.
Appliquons maintenant la normalisation L2 à notre matrice TF-IDF, que nous avons calculée ci-dessus :
La matrice obtenue correspond exactement à celle présentée en exemple dans l’un des chapitres précédents.
Merci pour vos commentaires !
Demandez à l'IA
Demandez à l'IA
Posez n'importe quelle question ou essayez l'une des questions suggérées pour commencer notre discussion