Comprendre l’analyse de texte

Effectué

Avant d’explorer les fonctionnalités d’analyse de texte du service Azure AI Language, examinons quelques principes généraux et techniques courantes utilisées pour effectuer une analyse de texte et d’autres tâches de traitement en langage naturel (NLP).

Certaines des premières techniques utilisées pour analyser du texte avec des ordinateurs impliquent une analyse statistique d’un corps de texte (un corpus) pour déduire une certaine signification sémantique. Autrement dit, si vous pouvez déterminer les mots les plus couramment utilisés dans un document donné, vous pouvez souvent avoir une bonne idée de ce qu’est le document.

Segmentation du texte en unités lexicales

La première étape de l’analyse d’un corpus consiste à la décomposer en jetons. Par souci de simplicité, vous pouvez considérer chaque mot distinct dans le texte d’apprentissage comme un jeton, bien que dans la réalité, les jetons peuvent être générés pour des mots partiels, ou des combinaisons de mots et de ponctuation.

Par exemple, considérez cette expression à partir d’un célèbre discours présidentiel américain : "we choose to go to the moon". L’expression peut être divisée en jetons suivants, avec des identificateurs numériques :

1. we 
2. choose
3. to
4. go
5. the
6. moon

Notez que "to" (numéro de jeton 3) est utilisé deux fois dans le corpus. L’expression "we choose to go to the moon" peut être représentée par les jetons {1,2,3,4,3,5,6}.

Remarque

Nous avons utilisé un exemple simple dans lequel les jetons sont identifiés pour chaque mot distinct dans le texte. Toutefois, tenez compte des concepts suivants qui peuvent s’appliquer à la tokenisation en fonction du type spécifique de NLP problème que vous essayez de résoudre :

  • Normalisation du texte : avant de générer des jetons, vous pouvez choisir de normaliser le texte en supprimant la ponctuation et en modifiant tous les mots en minuscules. Pour une analyse qui s’appuie uniquement sur la fréquence des mots, cette approche améliore les performances globales. Toutefois, une certaine signification sémantique peut être perdue , par exemple, considérer la phrase "Mr Banks has worked in many banks.". Vous souhaiterez peut-être que votre analyse différencie la personne "Mr Banks" et celle "banks" dans laquelle il a travaillé. Vous pouvez également considérer "banks." comme un jeton distinct de "banks" car l’inclusion d’un point fournit l’information que le mot vient à la fin d’une phrase.
  • Supprimez les mots vides. Les mots vides sont des mots qui doivent être exclus de l’analyse. Par exemple, "the", "a"ou "it" rendre le texte plus facile pour les personnes à lire, mais ajouter peu de signification sémantique. En excluant ces mots, une solution d’analyse de texte peut être mieux en mesure d’identifier les mots importants.
  • les n-grammes sont des expressions à plusieurs termes telles que "I have" ou "he walked". Une expression d'un seul mot est un unigram, une expression de deux mots est un bi-gram, une expression de trois mots est un tri-gram, et ainsi de suite. En considérant les mots en tant que groupes, un modèle Machine Learning peut mieux comprendre le texte.
  • Le stemming est une technique dans laquelle les algorithmes sont appliqués pour consolider les mots avant de les compter, pour que les mots ayant la même racine, comme "power", "powered", et "powerful", soient interprétés comme étant le même jeton.

Analyse de la fréquence

Après avoir tokenisé les mots, vous pouvez effectuer une analyse pour compter le nombre d’occurrences de chaque jeton. Les mots les plus couramment utilisés (autres que les mots vides tels que "a", "the"et ainsi de suite) peuvent souvent fournir un indice sur le sujet principal d’un corpus de texte. Par exemple, les mots les plus courants dans le texte entier du "go to the moon" discours que nous avons considéré précédemment incluent "new", "go", "space"et "moon". Si nous devions tokeniser le texte en tant que bi-grams (paires de mots), la plus courante bi-gram dans le discours est "the moon". À partir de ces informations, nous pouvons facilement supposer que le texte est principalement préoccupé par le voyage spatial et aller vers la lune.

Conseil / Astuce

L’analyse de fréquence simple dans laquelle vous comptez simplement le nombre d’occurrences de chaque jeton peut être un moyen efficace d’analyser un document unique, mais lorsque vous devez différencier plusieurs documents au sein du même corpus, vous avez besoin d’un moyen de déterminer quels jetons sont les plus pertinents dans chaque document. Fréquence de terme : fréquence de document inverse (TF-IDF) est une technique courante dans laquelle un score est calculé en fonction de la fréquence à laquelle un mot ou un terme apparaît dans un document par rapport à sa fréquence plus générale dans l’ensemble de la collection de documents. À l’aide de cette technique, un degré élevé de pertinence est supposé pour les mots qui apparaissent fréquemment dans un document particulier, mais relativement peu souvent dans un large éventail d’autres documents.

Machine Learning pour la classification de texte

Une autre technique d’analyse de texte utile consiste à utiliser un algorithme de classification, tel que la régression logistique, pour entraîner un modèle Machine Learning qui classifie le texte en fonction d’un ensemble connu de catégorisations. Une application courante de cette technique consiste à entraîner un modèle qui classifie le texte comme positif ou négatif afin d’effectuer l’analyse des sentiments ou l’exploration de l’opinion.

Par exemple, considérez les avis de restaurant suivants, qui sont déjà étiquetés comme 0 (négatif) ou 1 (positif) :

- *The food and service were both great*: 1
- *A really terrible experience*: 0
- *Mmm! tasty food and a fun vibe*: 1
- *Slow service and substandard food*: 0

Avec suffisamment d’avis étiquetés, vous pouvez entraîner un modèle de classification à l’aide du texte tokenisé en tant que caractéristiques et du sentiment (0 ou 1) une étiquette. Le modèle encapsule une relation entre les jetons et les sentiments , par exemple, les révisions avec des jetons pour des mots tels que "great", "tasty"ou "fun" sont plus susceptibles de retourner un sentiment de 1 (positif), tandis que les révisions avec des mots tels que "terrible", "slow"et "substandard" sont plus susceptibles de retourner 0 (négatif).

Modèles de langage sémantique

Comme l’état de l’art pour NLP a avancé, la possibilité d’entraîner des modèles qui encapsulent la relation sémantique entre les jetons a conduit à l’émergence de modèles de langage puissants. Au cœur de ces modèles, il s’agit de l’encodage des jetons de langage en tant que vecteurs (tableaux à valeurs multiples de nombres) appelés incorporations.

Il peut être utile de considérer les éléments d’un vecteur d’incorporation de jeton comme des coordonnées dans l’espace multidimensionnel, afin que chaque jeton occupe un « emplacement » spécifique. Les jetons plus proches sont les uns aux autres le long d’une dimension particulière, plus ils sont liés sémantiquement. En d’autres termes, les mots connexes sont regroupés de plus près. En guise d’exemple simple, supposons que les incorporations pour nos jetons se composent de vecteurs avec trois éléments, par exemple :

- 4 ("dog"): [10.3.2]
- 5 ("bark"): [10,2,2]
- 8 ("cat"): [10,3,1]
- 9 ("meow"): [10,2,1]
- 10 ("skateboard"): [3,3,1]

Nous pouvons tracer l’emplacement des jetons en fonction de ces vecteurs dans un espace tridimensionnel, comme suit :

Diagramme des jetons tracés sur un espace tridimensionnel.

Les emplacements des jetons dans l’espace d’incorporation incluent des informations sur la façon dont les jetons sont liés les uns aux autres. Par exemple, le jeton pour "dog" est proche de "cat" et aussi de "bark". Les jetons pour "cat" et "bark" sont proches de "meow". Le jeton pour "skateboard" est plus éloigné des autres jetons.

Les modèles linguistiques que nous utilisons dans l’industrie sont basés sur ces principes, mais ont une plus grande complexité. Par exemple, les vecteurs utilisés ont généralement de nombreuses dimensions supplémentaires. Il existe également plusieurs façons de calculer les incorporations appropriées pour un ensemble donné de jetons. Différentes méthodes entraînent des prédictions différentes des modèles de traitement du langage naturel.

Une vue généralisée de la plupart des solutions de traitement en langage naturel modernes est illustrée dans le diagramme suivant. Un grand corpus de texte brut est tokenisé et utilisé pour entraîner des modèles linguistiques, qui peuvent prendre en charge de nombreux types différents de tâches de traitement du langage naturel.

Diagramme du processus permettant de tokeniser du texte et d’entraîner un modèle de langage qui prend en charge les tâches de traitement du langage naturel.

Les tâches courantes NLP prises en charge par les modèles de langage sont les suivantes :

  • Analyse de texte, telle que l’extraction de termes clés ou l’identification d’entités nommées dans du texte.
  • Analyse des sentiments et exploration des opinions pour catégoriser le texte comme positif ou négatif.
  • Traduction automatique, dans laquelle le texte est automatiquement traduit d’une langue à une autre.
  • Résumé, dans lequel les points principaux d’un grand corps de texte sont résumés.
  • Les solutions IA conversationnelles telles que les bots ou les assistants numériques dans lesquels le modèle de langage peut interpréter l’entrée en langage naturel et retourner une réponse appropriée.

Ces fonctionnalités et d’autres sont prises en charge par les modèles dans le service Azure AI Language, que nous explorerons ensuite.