Le modèle de sac de mots : une introduction à la représentation de texte pour l’apprentissage automatique
De nos jours, il est fréquent de trouver des données textuelles telles que des commentaires, des descriptions de produits, des messages sur les réseaux sociaux, des articles de presse, des e-mails, des transcriptions de discours, etc. au sein des jeux de données. Cependant, les algorithmes de Machine Learning ne peuvent pas traiter directement ces données brutes. Il est donc nécessaire de les convertir en vecteurs numériques avant de pouvoir les utiliser pour la modélisation.
L’une des techniques les plus couramment utilisées pour créer des variables à partir de données textuelles est le modèle sac de mots ou Bag of Words en anglais, que je vais vous expliquer dans les lignes qui suivent.
Qu’est-ce que vous découvrirez dans cet article ?
-
- Qu’est-ce qu’un sac de mots ?
- Exemple de réprésentation un modèle BoW
- Mesure TF-IDF (Term Frequency-Inverse Document Frequency)
- Les limites du modèle de sac de mots ?
Qu’est-ce qu’un sac de mots ?
Le modèle de sac de mots fait l’hypothèse qu’un texte ou document est un ensemble de mots c’est à-dire un “sac de mots” plutôt qu’une liste ordonnée de mots. l’ordre des mots n’est pas considéré. On s’intéresse uniquement à la présence ou non du mot dans le texte. Pour représenter un ensemble de texte (corpus) à partir d’un modèle de sac de mots, deux étapes sont nécessaires.
- La création d’un vocabulaire
- La définition d’une mesure qui nous indique la présence du mot dans le texte
Illustrons cela par exemple pour que cela soit plus claire
Exemple de représentation avec un modèle BoW
Supposons que vous avez un corpus de texte composer des 3 textes suivants :
Texte 1 : Il fait beau dehors, allez vous promener kat, dehors, dehors
Texte 2 : mon chien poc est le plus beau du monde, mon chien est le plus beau du monde
Texte 3 : j’aime aller dehors quand il fait beau avec mon chien paul, il fait beau
L’objectif est de construire une représentation numérique de ces textes en utilisant un modèle de sac de mots.
Etape 1 : Création d’un vocabulaire de mots
Pour créer le vocabulaire, je décide d’utiliser tous les mots uniques contenus dans mon corpus de texte en ignorant certains mots.
faire | beau | dehors | vraiment | chien | monde | aimer | aller | promener | inconnu |
1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
inconnu ici désigne tous les mots qui ne sont pas dans mon vocabulaire. Généralement, avant la création du vocabulaire de mots, on effectue un ensemble de prétraitement sur le texte comme la suppression des ponctuations, des stopwords (“il”, “mon”, “le”, “plus” “j'”, “avec”), la lemmatisation (allez ~ aller, fait ~ faire) , etc. Si nous faisons ces transformations, nous pouvour déjà obtenir une représentation des textes de la manière suivantes :
Texte 1 : (1 2 3 8 9 10 3 3)
Texte 2 : (5 10 2 6 5 2 6)
Texte 3 : (7 8 3 1 2 5 10 1 2)
Etape 2 : Définition d’une mesure qui exprime la présence des mots
Il existe plusieurs mesures qui peuvent être utilisées, mais la plus simple est la mesure binaire (0,1). Elle consiste à attribuer la valeur 0 lorsque le mot n’est pas présent dans le document et la valeur 1 lorsqu’il est présent. Cette mesure permet de représenter les textes en sac de mots, comme illustré ci-dessous :
Textes | faire | beau | dehors | vraiment | chien | monde | aimer | aller | promener | inconnu |
1 | 1 | 1 | 1 | 0 | 0 | 0 | 1 | 0 | 1 | 1 |
2 | 0 | 1 | 0 | 0 | 1 | 1 | 0 | 0 | 0 | 1 |
3 | 1 | 1 | 1 | 0 | 1 | 0 | 1 | 1 | 0 | 1 |
Il est possible d’utiliser d’autres mesures telles que la fréquence des mots dans chaque texte ou la mesure TF-IDF que je vais décrire dans la section suivante.
Mesure TF-IDF
TF-IDF (Term Frequency-Inverse Document Frequency) est une mesure statistique utilisée pour évaluer l’importance d’un mot dans un document ou une collection de documents. C’est une mesure qui donne un score élevé au mot considéré comme important pour un texte donné ou un corpus de texte, car il apparaît fréquemment dans le document mais rarement dans le corpus de texte.
Le terme “TF” mesure la fréquence d’apparition d’un mot particulier dans un texte donné, alors que le terme “IDF” mesure l’importance relative du terme dans le corpus de texte. l’IDF est calculé par la formule suivante :
Plus précisément, le score TF-IDF d’un mot est calculé en multipliant la fréquence d’apparition du terme dans un document (TF) par l’inverse de la fréquence d’apparition du terme dans tous les documents de la collection (IDF). la formule finale est donc :
Un petit exemple pour mieux comprendre
Considérons une collection de texte qui traite de la technologie. Nous allons nous concentrer sur deux textes de cette collection, “Comment fonctionne l’ordinateur” ( texte ) et “Les avantages de l’ordinateur dans l’éducation” ( texte ).
Le mot 1 “ordinateur” apparaît plusieurs fois dans les deux documents. Cependant, il est probable que le mot soit plus important dans le texte “Comment fonctionne l’ordinateur” que dans le texte “Les avantages de l’ordinateur dans l’éducation”.
Pour calculer le score TF-IDF pour le mot “ordinateur” dans chacun des documents, nous devons d’abord calculer la fréquence d’apparition du mot dans chaque document (TF). Supposons que le mot “ordinateur” apparaisse 10 fois dans “Comment fonctionne l’ordinateur” et 5 fois dans “Les avantages de l’ordinateur dans l’éducation”. Ainsi
et
Ensuite, nous calculons l’IDF en mesurant le nombre total de textes dans la collection qui contiennent le mot “ordinateur”. Si la collection contient 100 textes et que le mot “ordinateur” apparaît dans 50 d’entre eux, nouas avons
- Le score TF-IDF pour le mot “ordinateur” dans “Comment fonctionne l’ordinateur” est donc égal à .
- Le score TF-IDF pour le terme “ordinateur” dans “Les avantages de l’ordinateur dans l’éducation” est égal à
Dans cet exemple, le score TF-IDF est plus élevé pour le terme “ordinateur” dans “Comment fonctionne l’ordinateur”, ce qui indique que le terme est plus important pour ce document que pour “Les avantages de l’ordinateur dans l’éducation”.
Les limites du modèle de sac de mots
Il y a deux problèmes principaux avec le modèle de sac de mots :
- Il peut être difficile de choisir les bons mots à inclure dans le vocabulaire et de décider de sa taille. Il faut sélectionner des mots qui représentent bien le corpus tout en évitant d’avoir un vocabulaire trop grand pour que les modèles de machine learning puissent bien apprendre.
- Le modèle de sac de mots ne prend pas en compte la signification des mots. Comme il ne tient pas compte de l’ordre des mots, on ne sait pas dans quel contexte les mots sont utilisés et donc on ne peut pas comprendre leur signification sémantique.
Conclusion
Le modèle de sac de mots est une méthode simple pour représenter chaque mot d’un corpus sous forme de vecteur, en se basant sur la fréquence d’apparition de chaque mot dans chaque document. Cette méthode est facile à comprendre et à utiliser, ce qui la rend utile pour des tâches de classification de texte simples. Cependant, elle présente des limites importantes, la principale étant qu’elle ne prend pas en compte le contexte dans lequel les mots sont utilisés, et donc leur signification. Pour cette raison, des méthodes plus sophistiquées, telles que les embeddings lexicaux ou word embeddings, sont souvent préférées à cette approche.
Laisser un commentaire