TF-IDF

Un article de Wikipédia, l'encyclopédie libre.
Aller à : navigation, rechercher

Le TF-IDF (de l'anglais Term Frequency-Inverse Document Frequency) est une méthode de pondération souvent utilisée en recherche d'information et en particulier dans la fouille de textes. Cette mesure statistique permet d'évaluer l'importance d'un terme contenu dans un document, relativement à une collection ou un corpus. Le poids augmente proportionnellement au nombre d'occurrences du mot dans le document. Il varie également en fonction de la fréquence du mot dans le corpus. Des variantes de la formule originale sont souvent utilisées dans des moteurs de recherche pour apprécier la pertinence d'un document en fonction des critères de recherche de l'utilisateur.

Introduction[modifier | modifier le code]

La justification théorique de ce schéma de pondération repose sur l'observation empirique de la fréquence des mots dans un texte qui est donnée par la Loi de Zipf. Si une requête contient le terme T, un document a d'autant plus de chances d'y répondre qu'il contient ce terme : la fréquence du terme au sein du document (TF) est grande. Néanmoins, si le terme T est lui-même très fréquent au sein du corpus, c'est-à-dire qu'il est présent dans de nombreux documents (e.g. les articles définis - le, la, les), il est en fait peu discriminant. C'est pourquoi le schéma propose d'augmenter la pertinence d'un terme en fonction de sa rareté au sein du corpus (fréquence du terme dans le corpus IDF élevée). Ainsi, la présence d'un terme rare de la requête dans le contenu d'un document fait croître le « score » de ce dernier.

Définition formelle[modifier | modifier le code]

Fréquence du terme[modifier | modifier le code]

La fréquence d'un terme (term frequency) est simplement le nombre d'occurrences de ce terme dans le document considéré (on parle de « fréquence » par abus de langage).

Des variantes ont été proposées (dont une application du logarithme sur le tf simple pour amortir les écarts).

Fréquence inverse de document[modifier | modifier le code]

La fréquence inverse de document (inverse document frequency) est une mesure de l'importance du terme dans l'ensemble du corpus. Dans le schéma TF-IDF, elle vise à donner un poids plus important aux termes les moins fréquents, considérés comme plus discriminants. Elle consiste à calculer le logarithme de l'inverse de la proportion de documents du corpus qui contiennent le terme :

 \mathrm{idf_i} =  \log \frac{|D|}{|\{d_{j}: t_{i} \in d_{j}\}|}

où :

  • |D|~ : nombre total de documents dans le corpus ;
  • |\{d_{j} : t_{i} \in d_{j}\}| : nombre de documents où le terme  t_{i} apparaît (c'est-à-dire  n_{i,j} \neq 0).

Calcul de tf-idf[modifier | modifier le code]

Finalement, le poids s'obtient en multipliant les deux mesures :

\mathrm{tfidf_{i,j}} = \mathrm{tf_{i,j}} \cdot  \mathrm{idf_{i}}

Exemple[modifier | modifier le code]

Corpus (tiré d'œuvres de Friedrich Gottlieb Klopstock)[1]
Document 1 Document 2 Document 3
Son nom est célébré par le bocage qui frémit, et par le ruisseau qui murmure, les vents l’emportent jusqu’à l’arc céleste, l’arc de grâce et de consolation que sa main tendit dans les nuages. À peine distinguait-on deux buts à l’extrémité de la carrière : des chênes ombrageaient l’un, autour de l’autre des palmiers se dessinaient dans l’éclat du soir. Ah ! le beau temps de mes travaux poétiques ! les beaux jours que j’ai passés près de toi ! Les premiers, inépuisables de joie, de paix et de liberté ; les derniers, empreints d’une mélancolie qui eut bien aussi ses charmes.

L'exemple porte sur le document 1 (soit d_1) et le terme analysé est « qui » (soit t_1 = qui). La ponctuation et l'apostrophe sont ignorées.

Calcul de tf[modifier | modifier le code]

 \mathrm{tf_{1,1}} = \frac{n_{1,1}}{\sum_k n_{k,1}} = \frac{2}{38}

Détails du calcul : la plupart des termes apparaissent une fois (21 termes), l apparaît 3 fois (1 terme) et arc, de, et, le, les, par et qui apparaissent 2 fois (7 termes). Le dénominateur est donc 3 + 7*2 + 21 = 38. Cette somme correspond au nombre de mots dans le document.

Calcul de idf[modifier | modifier le code]

Le terme « qui » n'apparaît pas dans le deuxième document. Ainsi :

 \mathrm{idf_1} =  \log \frac{|D|}{|\{d_{j}: t_{1} \in d_{j}\}|} = \log \frac{3}{2}

Poids final[modifier | modifier le code]

On obtient :

\mathrm{tfidf_{1,1}} = \frac{2}{38} \cdot \log{\frac{3}{2}} \approx 0,0092

Pour les autres documents :

\mathrm{tfidf_{1,2}} = 0 \cdot \log{\frac{3}{2}} = 0
\mathrm{tfidf_{1,3}} = \frac{1}{40} \cdot \log{\frac{3}{2}} \approx 0,0044

Le premier document apparaît ainsi comme « le plus pertinent ».

Applications[modifier | modifier le code]

En recherche d'information, une fois un ensemble de documents potentiels identifiés comme pouvant répondre à une requête, il s'agit de les ordonner par ordre de pertinence. La pondération tf-idf est alors couramment utilisée pour établir la description des documents dans un modèle vectoriel, la similarité étant obtenue avec une distance cosinus entre le vecteur représentant la requête et chacun des vecteurs représentatifs des documents potentiels. Bien qu'établie dans les années 70, la variante Okapi BM25 est encore considérée (début XXIe siècle) comme l'une des méthodes à l'état de l'art dans ce domaine.

Bibliographie[modifier | modifier le code]

Notes et références[modifier | modifier le code]

  1. Textes tirés de Friedrich Gottlieb Klopstock sur Wikisource (les Constellations, les Deux Muses et À Schmied, ode écrite pendant une maladie dangereuse).

Voir aussi[modifier | modifier le code]

Articles connexes[modifier | modifier le code]

Liens externes[modifier | modifier le code]