0%
Sac de mots et TF-IDF

Sac de mots et TF-IDF

Transformer du texte en matrice numérique avec scikit-learn : comptage, pondération TF-IDF, n-grammes de caractères et explosion de la dimension.

10-15 min

Un algorithme d'apprentissage ne consomme pas du texte, il consomme des nombres. Entre les deux, il faut une fonction qui transforme un document en vecteur, et cette fonction détermine plus sûrement la qualité du résultat final que le choix de l'algorithme lui-même.

La solution la plus ancienne est aussi la plus utilisée en production : le sac de mots. On oublie l'ordre, on ne garde que la présence et la fréquence. « Le chat mange la souris » et « La souris mange le chat » deviennent le même vecteur. C'est une perte d'information manifeste, et pourtant cette représentation suffit à trier du courrier indésirable, à router des tickets de support ou à classer des dépêches par rubrique avec une justesse qui embarrasse les approches plus savantes.

Il y a trois raisons de commencer par là, même si votre objectif final est un transformeur. La première est que c'est une référence honnête : si votre modèle à 110 millions de paramètres ne bat pas un TF-IDF entraîné en deux secondes, le problème n'est pas dans l'architecture. La deuxième est l'interprétabilité : on peut lire les coefficients et savoir quels mots portent la décision, ce qu'aucun transformeur ne permet aussi directement. La troisième est le coût : une régression logistique sur TF-IDF s'entraîne sur un ordinateur portable et répond en une fraction de milliseconde, sans GPU, sans serveur d'inférence.

Lien copié !