Le Bag-of-Words (BoW), ou modèle de sac de mots en français, est une représentation simplifiée utilisée en traitement du langage naturel (NLP) et en recherche d’information (IR). Il décrit l’occurrence des mots au sein d’un document, en ignorant la grammaire et l’ordre des mots, mais en conservant leur multiplicité. Essentiellement, un texte est représenté comme un « sac » non ordonné de ses mots, où seules les informations sur la présence et la fréquence de chaque mot sont prises en compte.
Les concepts fondamentaux du modèle Bag-of-Words reposent sur un processus en plusieurs étapes. Premièrement, la tokenisation, qui consiste à segmenter le texte source en unités de base appelées tokens, généralement des mots, mais parfois des séquences de mots ou des caractères. Deuxièmement, la construction d’un vocabulaire, qui est une liste de tous les tokens uniques présents dans l’ensemble du corpus de documents analysé. Chaque mot unique du vocabulaire devient une dimension dans l’espace vectoriel de représentation. Troisièmement, la vectorisation, où chaque document est transformé en un vecteur numérique. La longueur de ce vecteur est égale à la taille du vocabulaire, et chaque composante du vecteur correspond à un mot du vocabulaire. La valeur de cette composante indique la présence ou la fréquence du mot correspondant dans le document. Par exemple, si le vocabulaire est {« le », « chat », « mange », « souris »} et un document est « le chat mange », son vecteur BoW pourrait être (en supposant un comptage simple) [1, 1, 1, 0]. Un document « le chat mange la souris » serait [1,1,1,1] si « la » n’est pas dans le vocabulaire ou est un stop word retiré.
L’importance du modèle Bag-of-Words réside dans sa capacité à convertir des données textuelles non structurées en un format numérique structuré que les algorithmes d’apprentissage automatique peuvent traiter. Malgré sa simplicité, il a été et reste une technique fondamentale et souvent efficace pour de nombreuses tâches NLP. Son impact est notable dans des domaines comme la classification de textes, l’analyse de sentiments, le regroupement de documents et la recherche d’information, où il sert fréquemment de modèle de référence (baseline) pour évaluer des approches plus complexes. Sa pertinence vient du fait qu’il offre un compromis acceptable entre complexité de mise en œuvre et performance pour un large éventail de problèmes, en particulier lorsque la sémantique fine et l’ordre des mots ne sont pas cruciaux.
Les applications pratiques du Bag-of-Words sont nombreuses et variées. En classification de documents, il permet de trier automatiquement des textes dans des catégories prédéfinies, par exemple, pour distinguer les courriels de type spam de ceux qui ne le sont pas, en se basant sur la fréquence de mots caractéristiques à chaque catégorie. En analyse de sentiments, le BoW aide à déterminer si un texte (comme un avis client ou un tweet) exprime une opinion positive, négative ou neutre, en comptant les mots associés à ces polarités. Dans la recherche d’information, les requêtes des utilisateurs et les documents d’une collection peuvent être représentés sous forme de vecteurs BoW, et leur similarité (souvent calculée par la similarité cosinus) permet de classer les documents par pertinence. Un autre exemple est le regroupement thématique de documents (clustering), où des articles de presse ou des publications scientifiques peuvent être groupés en fonction de la similarité de leur contenu lexical.
Il existe plusieurs nuances et variations dans la manière dont le modèle Bag-of-Words est implémenté, notamment concernant la façon dont les valeurs des composantes vectorielles sont calculées. La méthode la plus simple est le comptage de fréquence brute, où la valeur est le nombre d’occurrences d’un mot dans le document. Une autre approche est la fréquence binaire, où la valeur est 1 si le mot est présent et 0 sinon, ignorant le nombre d’occurrences. Une amélioration significative est l’utilisation de la pondération TF-IDF (Term Frequency-Inverse Document Frequency). TF-IDF attribue un poids plus élevé aux mots qui sont fréquents dans un document particulier (TF) mais rares dans l’ensemble du corpus (IDF), ce qui aide à mettre en évidence les mots discriminants. De plus, pour capturer une partie du contexte local perdu, le modèle BoW peut être étendu pour utiliser des n-grammes (séquences de n mots contigus) comme tokens au lieu de mots uniques. Par exemple, un modèle de « bag of bi-grams » considérerait des paires de mots comme « réseau neuronal » comme une seule unité.
Le modèle Bag-of-Words est étroitement lié à plusieurs autres concepts du traitement du langage naturel. Les « stop words » (mots vides comme « le », « un », « de ») sont souvent retirés avant la création du BoW car ils sont très fréquents mais peu informatifs. Des techniques de normalisation textuelle comme le « stemming » (racinisation) ou la « lemmatisation » (lemmatisation) sont fréquemment appliquées pour regrouper différentes formes d’un même mot (par exemple, « mange », « mangeait », « mangeront » ramenés à « mang ») afin de réduire la taille du vocabulaire et de généraliser les occurrences. Le BoW est une instance spécifique du Modèle d’Espace Vectoriel (Vector Space Model ou VSM), un cadre plus général pour représenter des documents comme des vecteurs dans un espace multidimensionnel. En termes d’approches alternatives ou conceptuellement « antonymes » pour la représentation textuelle, on trouve les plongements de mots (word embeddings) tels que Word2Vec, GloVe ou FastText. Contrairement au BoW, ces techniques génèrent des vecteurs denses de faible dimension qui capturent les relations sémantiques et contextuelles entre les mots. Les modèles séquentiels comme les Réseaux de Neurones Récurrents (RNN), les LSTMs ou les Transformers vont encore plus loin en traitant explicitement l’ordre des mots. Un synonyme courant pour Bag-of-Words est simplement « modèle de sac de mots ».
L’origine du concept Bag-of-Words remonte aux années 1950, avec les travaux précurseurs de Zellig Harris sur l’hypothèse distributionnelle en linguistique, qui suggère que les mots apparaissant dans des contextes similaires ont tendance à avoir des significations similaires. Bien que l’idée de compter les mots ne soit pas nouvelle, son application systématique dans le cadre de la recherche d’information et, plus tard, de l’apprentissage automatique pour le texte, s’est développée avec l’augmentation de la puissance de calcul et la disponibilité de corpus numériques. Il est devenu une technique standard dans les années 1970 et 1980 dans les systèmes de recherche d’information. Son utilisation s’est ensuite généralisée dans le domaine du machine learning appliqué au texte dans les années 1990 et 2000, servant de base à de nombreux algorithmes de classification et de clustering. Bien que des modèles plus sophistiqués aient émergé, le BoW reste une méthode pertinente, notamment pour sa simplicité et son interprétabilité.
Le modèle Bag-of-Words présente plusieurs avantages notables. Sa simplicité conceptuelle le rend facile à comprendre et à mettre en œuvre. Il est également relativement efficace sur le plan computationnel, en particulier pour des corpus de taille modérée et lorsque des optimisations pour les matrices creuses sont utilisées. Il fournit souvent une performance de base solide pour de nombreuses tâches de classification de texte, permettant une évaluation rapide de la faisabilité d’une approche. Cependant, le BoW souffre d’inconvénients et de limitations significatifs. Le plus critiqué est la perte totale de l’ordre des mots, ce qui signifie qu’il ne peut pas distinguer des phrases ayant des significations très différentes mais utilisant les mêmes mots (par exemple, « l’homme mord le chien » et « le chien mord l’homme » auraient la même représentation BoW). Il ignore également la sémantique des mots; la polysémie (un mot ayant plusieurs sens) n’est pas gérée, et les synonymes sont traités comme des mots distincts. La représentation BoW conduit souvent à des vecteurs de très grande dimension (égale à la taille du vocabulaire) et très creux (contenant beaucoup de zéros), ce qui peut poser des problèmes de performance et de mémoire (le « fléau de la dimensionnalité »). Sa performance est aussi sensible aux choix de prétraitement, tels que la suppression des stop words et l’application du stemming ou de la lemmatisation. Parmi les défis associés, on compte la gestion des mots hors vocabulaire (mots rencontrés en phase de test mais absents du vocabulaire initial) et le choix optimal de la taille du vocabulaire ou des techniques de pondération des termes. Malgré ces limites, le BoW demeure un outil précieux et un point de départ essentiel dans la boîte à outils du praticien en traitement du langage naturel.