Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Apprendre Tf-Idf | Modèles de Texte de Base
Introduction au TALN

bookTf-Idf

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 complique l'identification des mots moins fréquents mais plus informatifs. Pour remédier à cela, le modèle TF-IDF est souvent utilisé à la place.

Note
Définition

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 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 ceux qui sont plus rares et 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)\def\tfidf{\operatorname{tf-idf}} \def\tf{\operatorname{tf}} \def\idf{\operatorname{idf}} \tfidf(t, d) = \tf(t, d) \times \idf(t)

où :

  • tt est le terme (un mot ou un n-gramme) ;
  • dd est le document.

Il existe de nombreuses variantes pour le calcul des valeurs tf\operatorname{tf} et idf\operatorname{idf}. Examinons 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. Similaire au modèle sac de mots, un simple comptage est souvent utilisé :

tf(t,d)=count(t,d)\def\tf{\operatorname{tf}} \def\count{\operatorname{count}} \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+Ndocuments1+df(t))+1\def\idf{\operatorname{idf}} \def\df{\operatorname{df}} \idf(t) = \log\Bigl(\frac{1 + N_{documents}}{1 + \df(t)}\Bigr) + 1

Cette 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 le poids des termes fréquents et met en avant les termes plus rares et informatifs.

Sans la composante IDF, le TF-IDF se réduirait à un simple comptage des termes — revenant essentiellement au modèle sac de mots.

Calcul du TF-IDF

Exemple simple :

Dans ce cas, nous avons seulement deux documents et utilisons uniquement des unigrammes (mots individuels), donc les calculs sont simples. Nous commençons par calculer les fréquences des termes pour chaque mot dans les deux documents, puis les valeurs IDF pour les termes "a" et "is".

Note
Remarque

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, nous pouvons 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 — afin de ramener tous les vecteurs à une longueur uniforme, permettant ainsi des comparaisons équitables et impartiales entre des documents de différentes longueurs.

Note
Pour aller plus loin

La normalisation L2, également appelée normalisation euclidienne, est un procédé appliqué à des vecteurs individuels qui ajuste leurs valeurs afin de garantir 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)d = (w_1, w_2, w_3, ..., w_N)

wiw_i est le poids du terme ii,

alors la norme euclidienne s'écrit :

d2=w12+w22+w32+...+wN2\|d\|_2 = \sqrt{w^2_1 + w^2_2 + w^2_3 + ... + w^2_N}

et le vecteur normalisé s'écrit :

dnorm=(w1d2,w2d2,w3d2,...,wNd2)d_{norm} = \Bigl(\frac{w_1}{\|d\|_2}, \frac{w_2}{\|d\|_2}, \frac{w_3}{\|d\|_2}, ..., \frac{w_N}{\|d\|_2})

Voici comment fonctionne la normalisation L2 pour un vecteur à deux dimensions (un document avec 2 termes) :

Note
Remarque

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 ainsi 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 à l'exemple présenté dans l'un des chapitres précédents.

question mark

Quel est l'avantage principal du modèle TF-IDF par rapport au modèle BoW ?

Select the correct answer

Tout était clair ?

Comment pouvons-nous l'améliorer ?

Merci pour vos commentaires !

Section 3. Chapitre 6

Demandez à l'IA

expand

Demandez à l'IA

ChatGPT

Posez n'importe quelle question ou essayez l'une des questions suggérées pour commencer notre discussion

Awesome!

Completion rate improved to 3.45

bookTf-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 complique l'identification des mots moins fréquents mais plus informatifs. Pour remédier à cela, le modèle TF-IDF est souvent utilisé à la place.

Note
Définition

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 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 ceux qui sont plus rares et 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)\def\tfidf{\operatorname{tf-idf}} \def\tf{\operatorname{tf}} \def\idf{\operatorname{idf}} \tfidf(t, d) = \tf(t, d) \times \idf(t)

où :

  • tt est le terme (un mot ou un n-gramme) ;
  • dd est le document.

Il existe de nombreuses variantes pour le calcul des valeurs tf\operatorname{tf} et idf\operatorname{idf}. Examinons 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. Similaire au modèle sac de mots, un simple comptage est souvent utilisé :

tf(t,d)=count(t,d)\def\tf{\operatorname{tf}} \def\count{\operatorname{count}} \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+Ndocuments1+df(t))+1\def\idf{\operatorname{idf}} \def\df{\operatorname{df}} \idf(t) = \log\Bigl(\frac{1 + N_{documents}}{1 + \df(t)}\Bigr) + 1

Cette 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 le poids des termes fréquents et met en avant les termes plus rares et informatifs.

Sans la composante IDF, le TF-IDF se réduirait à un simple comptage des termes — revenant essentiellement au modèle sac de mots.

Calcul du TF-IDF

Exemple simple :

Dans ce cas, nous avons seulement deux documents et utilisons uniquement des unigrammes (mots individuels), donc les calculs sont simples. Nous commençons par calculer les fréquences des termes pour chaque mot dans les deux documents, puis les valeurs IDF pour les termes "a" et "is".

Note
Remarque

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, nous pouvons 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 — afin de ramener tous les vecteurs à une longueur uniforme, permettant ainsi des comparaisons équitables et impartiales entre des documents de différentes longueurs.

Note
Pour aller plus loin

La normalisation L2, également appelée normalisation euclidienne, est un procédé appliqué à des vecteurs individuels qui ajuste leurs valeurs afin de garantir 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)d = (w_1, w_2, w_3, ..., w_N)

wiw_i est le poids du terme ii,

alors la norme euclidienne s'écrit :

d2=w12+w22+w32+...+wN2\|d\|_2 = \sqrt{w^2_1 + w^2_2 + w^2_3 + ... + w^2_N}

et le vecteur normalisé s'écrit :

dnorm=(w1d2,w2d2,w3d2,...,wNd2)d_{norm} = \Bigl(\frac{w_1}{\|d\|_2}, \frac{w_2}{\|d\|_2}, \frac{w_3}{\|d\|_2}, ..., \frac{w_N}{\|d\|_2})

Voici comment fonctionne la normalisation L2 pour un vecteur à deux dimensions (un document avec 2 termes) :

Note
Remarque

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 ainsi 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 à l'exemple présenté dans l'un des chapitres précédents.

question mark

Quel est l'avantage principal du modèle TF-IDF par rapport au modèle BoW ?

Select the correct answer

Tout était clair ?

Comment pouvons-nous l'améliorer ?

Merci pour vos commentaires !

Section 3. Chapitre 6
some-alt