IA 101

Comment fonctionne la classification de texte ?

mm

La classification de texte est le processus d’analyse de séquences de texte et de leur attribution d’une étiquette, les plaçant dans un groupe en fonction de leur contenu. La classification de texte sous-tend presque toutes les tâches d’IA ou d’apprentissage automatique impliquant le traitement automatique des langues (NLP). Avec la classification de texte, un programme informatique peut effectuer une grande variété de tâches différentes comme la reconnaissance de spam, l’analyse de sentiments et les fonctions de chatbot. Comment la classification de texte fonctionne-t-elle exactement ? Quelles sont les différentes méthodes de classification de texte ? Nous allons explorer les réponses à ces questions ci-dessous.

Définition de la classification de texte

Il est important de prendre le temps de s’assurer que nous comprenons ce qu’est la classification de texte, en général, avant de plonger dans les différentes méthodes de classification de texte. La classification de texte est l’un de ces termes qui est appliqué à de nombreuses tâches et algorithmes différents, il est donc utile de nous assurer que nous comprenons le concept de base de la classification de texte avant de passer à l’exploration des différentes manières dont elle peut être effectuée.

Tout ce qui implique la création de catégories différentes pour le texte, puis l’étiquetage d’échantillons de texte comme ces catégories, peut être considéré comme une classification de texte. Tant qu’un système effectue ces étapes de base, il peut être considéré comme un classificateur de texte, indépendamment de la méthode exacte utilisée pour classer le texte et indépendamment de la manière dont le classificateur de texte est finalement appliqué. La détection de spam dans les e-mails, l’organisation de documents par sujet ou titre, et la reconnaissance du sentiment d’une critique de produit sont tous des exemples de classification de texte car ils sont réalisés en prenant le texte comme entrée et en produisant une étiquette de classe pour ce texte.

Comment fonctionne la classification de texte ?

Photo : Quinn Dombrowski via Flickr, CC BY SA 2.0 , (https://www.flickr.com/photos/quinnanya/4714794045)

La plupart des méthodes de classification de texte peuvent être classées en trois catégories différentes : les méthodes basées sur des règles ou les méthodes d’apprentissage automatique.

Méthodes de classification basées sur des règles

Les méthodes de classification de texte basées sur des règles fonctionnent grâce à l’utilisation de règles linguistiques explicitement conçues. Le système utilise les règles créées par l’ingénieur pour déterminer à quelle classe un texte donné devrait appartenir, en recherchant des indices sous forme d’éléments de texte sémantiquement pertinents. Chaque règle a un motif que le texte doit correspondre pour être placé dans la catégorie correspondante.

Pour être plus concret, disons que vous vouliez concevoir un classificateur de texte capable de distinguer les sujets de conversation courants, comme la météo, les films ou la nourriture. Pour permettre à votre classificateur de texte de reconnaître la discussion sur la météo, vous lui diriez de rechercher des mots liés à la météo dans le corps du texte. Vous auriez une liste de mots clés, de phrases et d’autres modèles pertinents qui pourraient être utilisés pour distinguer le sujet. Par exemple, vous pourriez instruire le classificateur de rechercher des mots comme « vent », « pluie », « soleil », « neige » ou « nuage ». Vous pourriez alors faire en sorte que le classificateur examine le texte d’entrée et compte le nombre de fois que ces mots apparaissent dans le corps du texte, et si ils apparaissent plus fréquemment que les mots liés aux films, vous classeriez le texte comme appartenant à la catégorie météo.

L’avantage des systèmes basés sur des règles est que leurs entrées et sorties sont prévisibles et interprétables par les humains, et ils peuvent être améliorés par une intervention manuelle de l’ingénieur. Cependant, les méthodes de classification basées sur des règles sont également quelque peu fragiles, et elles ont souvent du mal à généraliser car elles ne peuvent suivre que les modèles prédéfinis qui ont été programmés. Par exemple, le mot « nuage » pourrait faire référence à l’humidité dans le ciel, ou il pourrait faire référence à un nuage numérique où les données sont stockées. Il est difficile pour les systèmes basés sur des règles de gérer ces nuances sans que les ingénieurs passent beaucoup de temps à essayer de les anticiper et de les ajuster manuellement.

Systèmes d’apprentissage automatique

Comme mentionné ci-dessus, les systèmes basés sur des règles ont des limites, car leurs fonctions et règles doivent être préprogrammées. En revanche, les systèmes de classification basés sur l’apprentissage automatique fonctionnent en appliquant des algorithmes qui analysent des ensembles de données pour des modèles associés à une classe particulière.

Les algorithmes d’apprentissage automatique sont alimentés par des instances préétiquetées/préclassifiées qui sont analysées pour des caractéristiques pertinentes. Ces instances préétiquetées sont les données d’entraînement.

Le classificateur d’apprentissage automatique analyse les données d’entraînement et apprend des modèles associés aux différentes classes. Après cela, des instances non vues sont privées de leurs étiquettes et alimentées dans l’algorithme de classification qui attribue aux instances une étiquette. Les étiquettes attribuées sont ensuite comparées aux étiquettes originales pour voir à quel point le classificateur d’apprentissage automatique était précis, évaluant à quel point le modèle a appris quels modèles prédisent quelle classe.

Les algorithmes d’apprentissage automatique fonctionnent en analysant des données numériques. Cela signifie que pour utiliser un algorithme d’apprentissage automatique sur des données texte, le texte doit être converti en un format numérique. Il existe différentes méthodes pour encoder les données texte en données numériques et créer des méthodes d’apprentissage automatique autour de ces données. Nous allons couvrir certaines des différentes manières de représenter les données texte ci-dessous.

Bag-of-Words

Bag-of-words est l’une des approches les plus couramment utilisées pour encoder et représenter les données texte. Le terme « bag-of-words » vient du fait que vous prenez essentiellement tous les mots des documents et les mettez tous dans un « sac » sans prêter attention à l’ordre des mots ou à la grammaire, en ne tenant compte que de la fréquence des mots dans le sac. Cela donne lieu à un tableau long, ou vecteur, contenant une représentation unique de tous les mots des documents d’entrée. Ainsi, si il y a 10 000 mots uniques au total dans les documents d’entrée, les vecteurs de caractéristiques seront longs de 10 000 mots. C’est ainsi que la taille du sac de mots/vecteur de caractéristiques est calculée.

Photo : gk_ via Machinelearning.co, (https://machinelearnings.co/text-classification-using-neural-networks-f5cd7b8765c6)

Une fois que la taille du vecteur de caractéristiques a été déterminée, chaque document de la liste des documents totaux reçoit son propre vecteur rempli de nombres qui indiquent combien de fois le mot en question apparaît dans le document actuel. Cela signifie que si le mot « nourriture » apparaît huit fois dans un document de texte, le vecteur de caractéristiques/vecteur de fonction correspondant aura un huit à la position correspondante.

Autrement dit, tous les mots uniques qui apparaissent dans les documents d’entrée sont tous empilés dans un sac, puis chaque document reçoit un vecteur de mots de la même taille, qui est ensuite rempli avec le nombre de fois que les différents mots apparaissent dans le document.

Les ensembles de données texte contiennent souvent un grand nombre de mots uniques, mais la plupart d’entre eux ne sont pas utilisés très fréquemment. Pour cette raison, le nombre de mots utilisés pour créer le vecteur de mots est généralement limité à une valeur choisie (N) et le vecteur de caractéristiques aura une dimension Nx1.

Term Frequency-Inverse Document Frequency (TF-IDF)

Une autre façon de représenter un document en fonction des mots qu’il contient est appelée Term Frequency-Inverse Document Frequency (TF-IDF). Une approche TF-IDF crée également un vecteur qui représente le document en fonction des mots qu’il contient, mais contrairement à Bag-of-words, ces mots sont pondérés par plus que leur fréquence. TF-IDF prend en compte l’importance des mots dans les documents, en essayant de quantifier à quel point ce mot est pertinent par rapport au sujet du document. En d’autres termes, TF-IDF analyse la pertinence au lieu de la fréquence, et les comptes de mots dans un vecteur de caractéristiques sont remplacés par un score TF-IDF qui est calculé en fonction de l’ensemble des données.

Une approche TF-IDF fonctionne en calculant d’abord la fréquence du terme, le nombre de fois que les termes uniques apparaissent dans un document spécifique. Cependant, TF-IDF prend également soin de limiter l’influence des mots très courants comme « le », « ou », et « et », car ces « stop-words » sont très courants mais ne transmettent pas beaucoup d’informations sur le contenu du document. Ces mots doivent être déclassés, ce que fait la partie « fréquence inverse du document » de TF-IDF. Cela est fait car plus de documents contiennent un mot spécifique, moins ce mot est utile pour le distinguer des autres documents de la liste de tous les documents. La formule que TF-IDF utilise pour calculer l’importance d’un mot est conçue pour préserver les mots les plus fréquents et les plus riches sur le plan sémantique.

Les vecteurs de caractéristiques créés par l’approche TF-IDF contiennent des valeurs normalisées qui totalisent un, en attribuant à chaque mot une valeur pondérée calculée par la formule TF-IDF.

Word Embeddings

Word embeddings sont des méthodes de représentation de texte qui garantissent que les mots ayant des significations similaires ont des représentations numériques similaires.

Les word embeddings fonctionnent en « vectorisant » les mots, ce qui signifie qu’ils représentent les mots comme des vecteurs à valeurs réelles dans un espace vectoriel. Les vecteurs existent dans une grille ou une matrice, et ils ont une direction et une longueur (ou magnitude). Lorsque les mots sont représentés comme des vecteurs, les mots sont convertis en vecteurs composés de valeurs réelles. Chaque mot est mappé à un vecteur, et les mots qui ont des significations similaires ont des directions et des grandeurs similaires. Ce type de codage permet à un algorithme d’apprentissage automatique d’apprendre des relations compliquées entre les mots.

Les embeddings qui représentent les différents mots sont créés en fonction de la manière dont les mots en question sont utilisés. Puisque les mots qui sont utilisés de manière similaire auront des vecteurs similaires, le processus de création de word embeddings traduit automatiquement une partie du sens que les mots ont. Une approche bag-of-words crée des représentations fragiles où les mots différents auront des représentations dissemblables, même s’ils sont utilisés dans des contextes très similaires.

Par conséquent, les word embeddings sont meilleurs pour capturer le contexte des mots dans une phrase.

Il existe différentes algorithmes et approches utilisés pour créer des word embeddings. Certaines des méthodes d’embedding de mots les plus courantes et les plus fiables incluent : les couches d’embedding, word2vec et GloVe.

Couches d’embedding

Une façon potentielle d’utiliser des word embeddings avec un système d’apprentissage automatique/deep learning est d’utiliser une couche d’embedding. Les couches d’embedding sont des couches de deep learning qui convertissent les mots en embeddings qui sont ensuite alimentés dans le reste du système de deep learning. Les word embeddings sont appris à mesure que le réseau s’entraîne pour une tâche de texte spécifique.

Dans une approche de word embedding, les mots similaires auront des représentations similaires et seront plus proches les uns des autres que des mots dissemblables.

Pour utiliser des couches d’embedding, le texte doit être prétraité au préalable. Le texte du document doit être codé à chaud, et la taille du vecteur doit être spécifiée à l’avance. Le texte codé à chaud est ensuite converti en vecteurs de mots et les vecteurs sont passés dans le modèle d’apprentissage automatique.

Word2Vec

Word2Vec est une autre méthode courante d’embedding de mots. Word2Vec utilise des méthodes statistiques pour convertir les mots en embeddings et il est optimisé pour une utilisation avec des modèles basés sur des réseaux de neurones. Word2Vec a été développé par des chercheurs de Google et il est l’une des méthodes d’embedding les plus couramment utilisées, car il donne régulièrement des embeddings utiles et riches. Les représentations Word2Vec sont utiles pour identifier les similarités sémantiques et syntaxiques dans le langage. Cela signifie que les représentations Word2Vec capturent les relations entre les concepts similaires, en étant capable de distinguer que la similarité entre « Roi » et « Reine » est la royauté et que « Roi » implique « masculinité » tandis que « Reine » implique « féminité ».

GloVe

GloVE, ou Global Vector for Word Representation, s’appuie sur les algorithmes d’embedding utilisés par Word2Vec. Les méthodes d’embedding GloVe combinent des aspects des algorithmes Word2Vec et des techniques de factorisation de matrices comme l’analyse sémantique latente. L’avantage de Word2Vec est qu’il peut capturer le contexte, mais en contrepartie, il capte mal les statistiques de texte globales. À l’inverse, les représentations vectorielles traditionnelles sont bonnes pour déterminer les statistiques de texte globales, mais elles ne sont pas utiles pour déterminer le contexte des mots et des phrases. GloVE tire parti des meilleures approches, en créant un mot-contexte basé sur les statistiques de texte globales.

Blogueur et programmeur avec des spécialités en Machine Learning et Deep Learning sujets. Daniel espère aider les autres à utiliser le pouvoir de l'IA pour le bien social.