Suivez nous sur
Classe de maître IA :

AI 101

Comment fonctionne la classification de texte ?

mm
Le kit de préparation mis à jour on

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

Définition de la classification du texte

Il est important de prendre du temps et de s'assurer que nous comprenons qu'est-ce que la classification de texte, en général, avant de se plonger dans les différentes méthodes de classification de texte. La classification de texte est l'un de ces termes qui s'applique à de nombreuses tâches et algorithmes différents, il est donc utile de s'assurer que nous comprenons le concept de base de la classification de texte avant de passer à l'exploration des différentes manières de l'effectuer.

Tout ce qui implique la création de différentes catégories de texte, puis l'étiquetage de différents échantillons de texte comme ces catégories, peut être considéré comme une classification de texte. Tant qu'un système exécute ces étapes de base, il peut être considéré comme un classificateur de texte, quelle que soit la méthode exacte utilisée pour classer le texte et quelle que soit la manière dont le classificateur de texte est finalement appliqué. La détection du spam par e-mail, l'organisation des documents par sujet ou par titre et la reconnaissance du sentiment d'un avis pour un produit sont tous des exemples de classification de texte, car ils sont accomplis en prenant du texte comme entrée et en produisant une étiquette de classe pour ce morceau de 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 dans l'une des trois catégories suivantes : méthodes basées sur des règles ou 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 morceau de texte donné doit appartenir, en recherchant des indices sous la forme d'éléments de texte sémantiquement pertinents. Chaque règle a un modèle auquel le texte doit correspondre pour être placé dans la catégorie correspondante.

Pour être plus concret, supposons 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. Afin de permettre à votre classificateur de texte de reconnaître les discussions sur la météo, vous pouvez lui dire de rechercher des mots liés à la météo dans le corps des échantillons de texte qu'il reçoit. Vous auriez une liste de mots-clés, d'expressions et d'autres modèles pertinents qui pourraient être utilisés pour distinguer le sujet. Par exemple, vous pouvez demander au classificateur de rechercher des mots tels que « vent », « pluie », « soleil », « neige » ou « nuage ». Vous pouvez ensuite demander au classificateur de parcourir le texte d'entrée et de compter le nombre de fois que ces mots apparaissent dans le corps du texte et s'ils apparaissent plus fréquemment que les mots liés aux films, vous classeriez le texte comme appartenant à la classe 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 qu'elles peuvent être améliorées 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 adhérer qu'aux 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 cela 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 d'anticiper et de s'adapter manuellement à ces subtilités.

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 leurs 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 les ensembles de données pour les 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 les fonctionnalités pertinentes. Ces instances pré-étiquetées sont les données d'entraînement.

Le classificateur d'apprentissage automatique analyse les données d'apprentissage et apprend les modèles associés aux différentes classes. Après cela, les instances invisibles sont dépouillées de leurs étiquettes et transmises à l'algorithme de classification qui attribue une étiquette aux instances. Les étiquettes attribuées sont ensuite comparées aux étiquettes d'origine pour voir la précision du classificateur d'apprentissage automatique, en évaluant dans quelle mesure le modèle a appris quels modèles prédisent quelles classes.

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 textuelles, le texte doit être converti en format numérique. Il existe différentes méthodes pour encoder des données textuelles sous forme de données numériques et créer des méthodes d'apprentissage automatique autour de ces données. Nous aborderons ci-dessous certaines des différentes manières de représenter les données textuelles.

Sac-de-mots

Sac de mots est l'une des approches les plus couramment utilisées pour encoder et représenter des données textuelles. Le terme « sac de mots » vient du fait que vous prenez essentiellement tous les mots des documents et que vous les mettez tous dans un « sac » sans prêter attention à l'ordre des mots ou à la grammaire, en ne prêtant attention qu'à la fréquence des mots dans le sac. Il en résulte un long tableau, ou vecteur, contenant une seule représentation de tous les mots dans les documents d'entrée. Donc, s'il y a 10000 10000 mots uniques au total dans les documents d'entrée, les vecteurs de caractéristiques auront une longueur de XNUMX XNUMX mots. C'est ainsi que la taille du vecteur mot sac/caractéristique est calculée.

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

Une fois la taille du vecteur de caractéristiques déterminée, chaque document de la liste du nombre total de documents se voit attribuer son propre vecteur rempli de nombres indiquant le nombre de fois que le mot en question apparaît dans le document actuel. Cela signifie que si le mot "nourriture" apparaît huit fois dans un document texte, ce vecteur de caractéristiques/tableau de caractéristiques correspondant aura un huit dans 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 textuelles 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 plafonné à une valeur choisie (N), puis la dimension du vecteur de caractéristiques sera Nx1.

Terme Fréquence-Inverse Document Fréquence (TF-IDF)

Une autre façon de représenter un document basé sur les mots qu'il contient est doublée Terme Fréquence-Inverse Document Fréquence (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 considère l'importance des mots dans les documents, essayant de quantifier la pertinence de ce mot par rapport au sujet du document. En d'autres termes, TF-IDF analyse la pertinence au lieu de la fréquence et le nombre de mots dans un vecteur de caractéristiques est remplacé par un score TF-IDF calculé par rapport à l'ensemble de données.

Une approche TF-IDF fonctionne en calculant d'abord la fréquence des termes, le nombre de fois que les termes uniques apparaissent dans un document spécifique. Cependant, TF-IDF veille également à limiter l'influence de mots extrêmement courants tels que "le", "ou" et "et", car ces "mots vides" sont très courants mais ne véhiculent que très peu d'informations sur le contenu du document. Ces mots doivent être ignorés, ce à quoi se réfère la partie "fréquence de document inverse" de TF-IDF. Cela est dû au fait que plus il y a de documents dans lesquels un mot spécifique apparaît, moins ce mot est utile pour le distinguer des autres documents dans la liste de tous les documents. La formule utilisée par TF-IDF pour calculer l'importance d'un mot est conçue pour conserver les mots les plus fréquents et les plus riches sémantiquement.

Les vecteurs de caractéristiques créés par l'approche TF-IDF contiennent des valeurs normalisées dont la somme est égale à un, attribuant à chaque mot une valeur pondérée telle que calculée par la formule TF-IDF.

Word Embeddings

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

Incorporations de mots fonctionner en « vectorisant » les mots, ce qui signifie qu'ils représentent des 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 amplitude). Lors de la représentation de mots sous forme de vecteurs, les mots sont convertis en vecteurs composés de valeurs réelles. Chaque mot est mappé sur un vecteur, et les mots qui ont une signification similaire ont une direction et une ampleur similaires. Ce type d'encodage permet à un algorithme d'apprentissage automatique d'apprendre des relations complexes entre les mots.

Les incorporations qui représentent différents mots sont créées en fonction de la manière dont les mots en question sont utilisés. Étant donné que les mots utilisés de manière similaire auront des vecteurs similaires, le processus de création d'incorporations de mots traduit automatiquement une partie de la signification des mots. Une approche par sac de mots, en revanche, crée des représentations fragiles où différents mots auront des représentations différentes même s'ils sont utilisés dans des contextes très similaires.

Par conséquent, les incorporations de mots sont plus efficaces pour capturer le contexte des mots dans une phrase.

Il existe différents algorithmes et approches utilisés pour créer des incorporations de mots. Certaines des méthodes d'intégration de mots les plus courantes et les plus fiables incluent : les couches d'intégration, word2vec et GloVe.

Incorporer des calques

Une façon potentielle d'utiliser les incorporations de mots parallèlement à un système d'apprentissage automatique / d'apprentissage en profondeur consiste à utiliser une couche d'intégration. Les couches d'intégration sont des couches d'apprentissage en profondeur qui convertissent les mots en incorporations qui sont ensuite introduites dans le reste du système d'apprentissage en profondeur. Les incorporations de mots sont apprises au fur et à mesure que le réseau s'entraîne pour une tâche textuelle spécifique.

Dans une approche d'intégration de mots, des mots similaires auront des représentations similaires et seront plus proches les uns des autres que des mots dissemblables.

Afin d'utiliser des couches d'intégration, le texte doit d'abord être prétraité. Le texte du document doit être codé à chaud et la taille du vecteur doit être spécifiée à l'avance. Le texte à chaud est ensuite converti en vecteurs de mots et les vecteurs sont transmis au modèle d'apprentissage automatique.

Mot2Vec

Mot2Vec est une autre méthode courante d'incorporation de mots. Word2Vec utilise des méthodes statistiques pour convertir les mots en incorporations et il est optimisé pour une utilisation avec des modèles basés sur des réseaux neuronaux. Word2Vec a été développé par des chercheurs de Google et c'est l'une des méthodes d'intégration les plus couramment utilisées, car elle produit de manière fiable des intégrations riches et utiles. Les représentations Word2Vec sont utiles pour identifier les points communs sémantiques et syntaxiques dans le langage. Cela signifie que les représentations Word2Vec capturent les relations entre des concepts similaires, étant capables de distinguer que le point commun entre "King" et "Queen" est la royauté et que "King" implique "man-ness" tandis que Queen implique "Woman-ness".

Gant

GloVE, ou vecteur global pour la représentation des mots, s'appuie sur les algorithmes d'intégration utilisés par Word2Vec. Les méthodes d'intégration GloVe combinent des aspects de Word2Vec et des techniques de factorisation matricielle comme l'analyse sémantique latente. L'avantage de Word2Vec est qu'il peut capturer le contexte, mais en contrepartie, il capture mal les statistiques de texte globales. Inversement, les représentations vectorielles traditionnelles sont efficaces pour déterminer les statistiques globales du texte, mais elles ne sont pas utiles pour déterminer le contexte des mots et des phrases. GloVE tire du meilleur des deux approches, créant un contexte de mots basé sur des statistiques de texte globales.