http://searchengineland.com/google-search-algorithm-adds-mobile-friendly-factors-app-indexing-ranking-215573

TF-IDF : Déterminer un score de pertinence

Le SEO comporte une grande partie pratique, mais il est parfois intéressant de s’attarder un peu sur le théorique. La notion que je vais décrire ci-dessous regroupe un peu des deux. Décrivons un peu la relation TF-IDF.

La fouille de textes grâce aux algorithmes

Les moteurs de recherches, et en particulier Google, ont créés une révolution dans notre quotidien. Il faut savoir que leur fonctionnement repose principalement sur l’utilisation d’algorithmes, plus ou moins complexes. Ces algorithmes sont en réalités connus et utilisés depuis longtemps. L’ingéniosité de Google en particulier, c’est que l’entreprise a réussi à combiner un ensemble d’algorithme existant, avec d’autres méthodes réellement innovantes.

http://adbu.fr/text-and-data-mining-ladbu-signataire-dune-lettre-ouverte-a-elsevier/

Le score TF-IDF, est donc utilisé depuis quelques années, et surtout bien avant l’arrivée de Google, tout comme l’était le Cosinus de Salton. On parle à ce moment-là de fouille de textes, de la recherche d’informations, ou encore de fouille sémantique. J’ai remonté des références à ce type de recherches aux années 60, 70. Notamment grâce à ce PDF, disponible à cette adresse : http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.115.8343&rep=rep1&type=pdf

TF-IDF : définition

TF-IDF sont les acronymes de « Terme Frequency » et « Inverse Document Frequency ».Ils suivent la logique du Cosinus de Salton. On cherche à accorder une pertinence lexicale à un terme au sein d’un document. En ce qui concerne TF-IDF, on applique une relation entre un document, et un ensemble de documents partageant des similarités en matière de mots clés. On recherche en quelque sorte une relation de quantité / qualité lexicale à travers un ensemble de documents.
Pour une requête avec un terme X, un document a plus de chances d’être pertinent comme réponse à la requête, si ce document possède une certaine occurrence de ce terme en son sein, et que ce terme possède une rareté dans d’autres documents reliés au premier.

Formule mathématique et explication de TF-IDF

formule mathématique tf idf

Place à l’application pour mieux comprendre. La formule est toute simple : Score TF-IDF(que nous appelons par convention w ) w = TF*IDF.

TF = Nombre d’occurrences du terme au sein du document. Comme pour le Cosinus de Salton, vous pouvez décomposer le document en lexie, et procéder cette opération :
Nombre d’occurrence du terme analysé / Nombre de termes total

Opération relativement simple, et nous avons désormais notre TF, notre score de quantité. Passons maintenant à l’IDF.

Celui-ci est un peu plus complexe. Il faudra vous armer ici d’une calculette comprenant les échelles logarithmiques. Alors, je ne vais pas vous faire un cours sur les logarithmes, parce que honnêtement, j’en serai pas capable, mais on va tenter de vulgariser un peu la définition : un logarithme est un exposant qu’on affecte à un nombre pour en obtenir un autre. SOS charabia ? Voici un exemple 🙂 : Le nombre 1000 peut s’écrire comme cela 103. Si je me réfère à la définition, le chiffre 3 est l’exposant de 10, et est par conséquent le logarithme de 1000. Plus d’infos ici !

Revenons donc à IDF. Il faut dans un premier temps dénombrer l’ensemble des documents comportant au minimum une fois le terme analysé. Maintenant faîtes le calcule suivant :

IDF = log(Nombre total de documents / Nombre de documents contenant le terme analysé)

Vous venez de trouver votre IDF, soit votre score de qualité. Multipliez donc vos deux résultats pour obtenir votre score TF-IDF.

Exemple d’application concrète

Pour vous aider, je vous mets en téléchargement un document Excel reprenant les formules, traitant vos données automatiquement.
Vous êtes actuellement sur internet, le royaume des chats, analysons la requête « chat »
J’ai sur mon site un document de 100 lexies, avec une occurrence du mot chat de 3. On sait que TF=3/100 donc TF= 0.03.
Mon site a 10 millions de pages (euh c’est un exemple hein 🙂 ), et le mot chat apparaît dans 1000 d’entre elles. On calcule donc IDF=log(10 000 000 / 1000). IDF = 4. Revérifiez-le si vous ne me croyez pas 🙂
Mon score TF-IDF est donc le résultat de la multiplication 0.03*4=0.12. Sur la requête chat, ce n’est pas la joie…

Comment interpréter ce résultat

Il s’agit maintenant d’interpréter le chiffre que vous venez d’obtenir. Mais pour son interprétation, il est préférable de le comparer avec d’autres résultats. N’hésitez pas à jouer avec les données du doc Excel que je vous ai fourni.
On remarque deux choses grâce à deux petites expériences.
Première expérience : Si je passe à un nombre total de documents toujours plus grand (10 millions, 100 millions, 1000 millions…), mon score s’améliore à chaque augmentation. C’est bien évidemment l’inverse si je diminue le nombre de documents total.

La rareté d’un terme influe sur le score TF-IDF de manière non-négligeable, donc un terme plus rare, améliore la pertinence lexicale.

Deuxième expérience : J’augmente l’occurrence du terme dans un document (TF). J’observe que le score final augmente également, tout comme dans la première expérience.

L’occurrence d’un terme influe donc grandement sur le score TF-IDF.

La pertinence lexicale se mesure donc avec TF-IDF grâce à une relation entre la rareté d’un mot au sein d’un ensemble de documents, mais également avec son occurrence dans un seul document.

Le petit mot pour finir

Un site web répond parfaitement à ces critères, d’un point de vue purement SEO, un site c’est en grande partie des pages reliées les unes entre elles, et des mots-clés. La notion de TF-IDF permet donc de comprendre comment les moteurs de recherche vont accorder de l’importance à nos documents, et surtout comment ceux-ci vont attribuer une pertinence lexicale à ce que l’on expose sur notre site.
Je ne pense pas que dans une optique de prestation SEO l’application de cette méthode soit primordiale. Elle permet avant tout de se constituer une base de réflexion quant à son champ lexical. Quels mots-clés mettre en avant, ou les placer, comment travailler ses thématiques… Et je pense que TF-IDF répond bien aux problématiques actuelles du SEO : les structures en siloing, le cocon sémantique… Couplé à l’approche du Cosinus de Salton, il est possible avec un travail approfondi de réellement mesurer l’impact qu’une page peut avoir sur le plan sémantique. Bien évidemment, Google déterminera seul si votre page est pertinente ou non. Mais en comprenant comment il réfléchit, comment il voit un site et comment il l’interprète, il est possible de jouer un peu avec ses critères de pertinence… N’oublions pas que Google, ce n’est finalement qu’un robot sans réelle intelligence, sans libre-arbitre… Enfin, disons plutôt qu’il n’en a pas encore !! 🙂
Deuxième article un peu mathématique… Je dois dire que ça prend un peu de temps, mais c’est vraiment passionnant à faire. Pour les plus doués, voici un lien pour appliquer le score TF-IDF en Java. Ca intéressera peut-être certains ? http://filotechnologia.blogspot.fr/2014/01/a-simple-java-class-for-tfidf-scoring.html
Pour ma part, je vous remercie pour la lecture de l’article ! Faîtes vous plaisir à partager l’article sur les réseaux sociaux !

14 Comments

  1. Salut Quentin, parce que je me penche sur une analyse de TF / IDF sur un site et que je tombe sur ton article (1er!), je me demandais si depuis aucun tools ne permets d’évaluer ces facteurs ? SEO TOOLS par exemple ? Je fouille, si tu as des infos, je prends ;), merci !

  2. En 4 lignes avec Python 🙂

    import graphlab
    tableau = graphlab.SFrame(‘fichier-qui-contient-les-textes’)
    tableau[‘word_count’] = graphlab.text_analytics.count_words(tableau[‘text’])
    tableau[‘tfidf’] = graphlab.text_analytics.tf_idf(tableau[‘word_count’])
    Et tu as une colonne avec les tf-idf de chaque mot pour chaque texte

    tu peux ensuite trier chaque mot par tf-idf décroissant :
    text_a = tableau[tableau[‘nom’] == ‘text A’]
    text_a[[‘tfidf’]].stack(‘tfidf’,new_column_name=[‘mot,’tfidf’]).sort(‘tfidf’,ascending=False)

    Le Tf-Idf est très utilisé dans la recommandation sémantique pour suggérer un article sur un site de presse ou un produit en e-commerce (deux articles avec un texte très proches (en appliquant une distance en prenant comme poids le tf-idf de chaque mot) seront semblables et donc pourront plaire au visiteur, il

  3. Merci pour cette présentation très clair. Va donc falloir s’équiper d’un stylo dans la main droite et d’une calculatrice scientifique dans la main gauche pour la création de contenu.

  4. Bonjour Quentin,
    Très bon article. Tu vulgarise parfaitement.
    Je n’ai pas regardé le fichier excel, je suis sur mon Tel mais je repasserai !

    Continues, tes articles vont plairent.

  5. Très intéressant, mais je tenais à préciser que le lien vers le script de calcul ud score Tf*IIDF si cher aux référenceurs et SEO n’est pas réalisé en JavaScript mais bien en Java…

Leave a Comment