Cet article fait partie de notre guide: NLP : des attentes fortes, une réalité contrastée

NLP : les techniques et les algorithmes préférés des data scientists

Quels sont les algorithmes et les techniques d’entraînement les plus populaires dans le traitement du langage naturel ? Cet article revient sur les outils d’entraînement les plus appréciés des data scientists spécialistes du NLP.

Aujourd’hui, l’une des tâches les plus populaires en data science, c’est le traitement des informations présentées sous forme de texte. Précisément, il s’agit de représenter du texte sous forme d’équations mathématiques, de formules, de paradigmes, de modèles afin de comprendre la sémantique (le contenu) du texte pour son traitement ultérieur : classification, fragmentation, etc. De manière générale, l’ensemble de ces pratiques sont réunies dans le domaine du traitement du langage naturel.

Le traitement du langage naturel résout un certain nombre de tâches comme la traduction automatique, la vérification orthographique ou grammaticale, la classification de texte, la reconnaissance d’entités nommées, leur sélection, la production de résumé, etc.

En général, le fonctionnement des systèmes utilisant le NLP peut être décrit en quelques étapes successives :

  1. Saisir le texte (ou le son converti en texte)
  2. Segmentation du texte en composantes (segmentation et tokenisation).
  3. Nettoyage du texte (filtrage de la « corbeille ») – suppression des éléments inutiles.
  4. Vectorisation du texte et ingénierie des éléments.
  5. Lemmatisation et racinisation – réduction des inflexions pour les mots.
  6. Utilisation d’algorithmes et de méthodes d’apprentissage automatique pour les modèles d’entraînement.
  7. Interprétation du résultat.

Dans cet article, nous revenons sur les techniques, les méthodes et les algorithmes les plus utilisés dans la pratique du NLP.

Les métriques les plus simples

La distance d’édition ou distance de Levenshtein

Une étape importante du NLP consiste à transformer différents mots et formes de mots en une seule forme de discours. De plus, il est souvent nécessaire de mesurer la similarité ou la différence des chaînes de caractères. Habituellement, dans ce cas, nous utilisons diverses mesures montrant la distinction entre les mots.

Pour ce faire, la distance d’édition (Edit Distance en VO ou distance de Levenshtein) est une des métriques à la fois simple et populaire. Cet algorithme permet d’estimer la similarité de deux valeurs d’une chaîne de caractères (mot, forme de mot, composition de mots), en comparant le nombre minimum d’opérations pour convertir une valeur en une autre.

Voici un exemple en anglais des capacités de la distance de Levenshtein :

One operation - Edit distance : 1

str1 = « string », str2 = « strong »

Several operations - Edit distance : 3

str1 : « sunday », str2 = « saturday »

Ainsi, il ne faut qu’une opération – un changement de lettre ou une distance mathématique de 1 – pour passer de « string » à « strong » contre trois pour passer de « Sunday » à « Saturday ». Concrètement, l’algorithme insère un caractère dans une chaîne, supprime ou remplace un caractère par un autre pour proposer un résultat : une substitution.

Les applications les plus populaires de cette technique sont la correction automatique de l’orthographe ou encore la quantification de séquences ADN similaires exprimées en lettres. Dans le traitement de texte, la distance d’édition permet de définir toutes les similarités entre les différents objets du texte.

Similarité cosinus

En NLP, la similarité cosinus est une métrique utilisée pour mesurer la ressemblance entre divers documents. Les calculs de cette métrique sont basés sur les mesures de la similarité du vecteur par la formule des vecteurs cosinus. Soit deux vecteurs A et B, l’angle 0 s’obtient par le produit scalaire et la norme des vecteurs. On cherche ici à obtenir la valeur cos 0 qui est comprise dans l’intervalle [-1,1].

Vous pouvez utiliser diverses fonctions ou caractéristiques du texte en utilisant des méthodes de vectorisation du texte. Ces similitudes ou ces différences sont représentées sous forme de valeurs de cosinus ou d’angles. La valeur -1 représente des vecteurs totalement opposés, 0 des vecteurs orthogonaux et 1 des vecteurs similaires. Les valeurs intermédiaires doivent faciliter l’évaluation du degré de similarité. Cette métrique est idéale pour classifier des textes.

Vectorisation

La similarité cosinus nécessite de vectoriser les documents à analyser. Cette étape consiste à convertir des mots en chiffre pour extraire des attributs dans un texte (fonctionnalités). En d’autres termes, il faut transformer le contenu d’un texte en vecteurs numériques. Les méthodes de vectorisation les plus populaires sont « Bag of words » et « TF-IDF ».

Sac de mots ou « Bag of words »

La manière la plus intuitive et la plus simple de vectoriser les informations textuelles est la suivante :

  • attribuer à chaque mot un index entier unique pour construire un dictionnaire de mots ;
  • compter le nombre d’occurrences de chaque mot et faire correspondre cette valeur à l’index correspondant.

On obtient ainsi un vecteur avec une valeur d’index unique et les fréquences de répétition pour chacun des mots du texte.

La représentation du texte sous forme de vecteur - « sac de mots », signifie que nous avons quelques mots uniques (n_fonctionnalités) dans l’ensemble de mots (corpus).

Les algorithmes TF-IDF

TF-IDF signifie Term Frequency et Inverse Document Frequency. Il s’agit d’une des techniques de traitement du langage naturel les plus populaires et les plus efficaces. Cette technique vous permet d’estimer l’importance d’un mot par rapport à tous les autres termes dans un texte ou dans une collection de textes.

TF et IDF sont en réalité deux algorithmes distincts. Comme son nom l’indique, Term Frequency calcule le nombre d’occurrences d’un terme en comparaison avec le nombre total de mots dans un texte. Inverse document Frequency, lui, mesure l’importance d’un terme dans un texte ou une collection de texte. Il est calculé comme un logarithme du nombre de documents divisé par le nombre de documents contenant ce terme.

Appliquer la technique TF-IDF revient à évaluer les valeurs TF pour chaque mot, extraire les valeurs IDF pour ces termes pour enfin obtenir les quotients TF-IDF en multipliant les résultats de TF par IDF. Cela forme un dictionnaire de classification pour chaque mot utilisé, suivant leur importance.

Normalisation du texte

Les méthodes de normalisation de texte dans le traitement du langage naturel sont utilisées pour le prétraitement des mots et des documents. Ces procédures sont généralement utilisées afin d’obtenir des modèles NLP plus précis qui interprètent correctement les entrées.

Parmi ces méthodes on peut citer :

  • la normalisation indépendante du contexte : suppression des symboles textuels non alphanumériques.
  • la canonicalisation : conversion des données sous forme « standard », « normale » ou canonique.
  • la racinisation : pour extraire la racine du mot.
  • la lemmatisation : transforme le mot dans une forme neutre.

Revenons plus en détail sur la racinisation et la lemmatisation.
L’objectif de la lemmatisation est de convertir différentes formes de mots, et parfois des mots dérivés, en une forme basique commune. Cela demande d’utiliser une analyse du vocabulaire et de la morphologie, ainsi qu’une définition des parties pour indiquer le contexte.

La racinisation consiste à réduire les mots à leurs formes canoniques. Cette technique nécessite généralement d’utiliser une procédure heuristique qui coupe les extrémités des mots. Par exemple les mots « affection, affecter, affectionné » ont tous pour racine affect.

Le découpage est utile pour normaliser les processus de vocabulaire. En même temps, il convient de noter qu’il s’agit d’une procédure assez rudimentaire qui devrait être utilisée avec d’autres méthodes de traitement de texte. Utilisée seule, cette technique conduit souvent à des erreurs d’interprétation et à des fautes d’orthographe.

Ainsi, les procédures de lemmatisation permettent une meilleure adaptation au contexte que la racinisation de base.

L’algorithme bayésien naïf

L’analyse bayésienne naïve (NBA) est un algorithme de classification basé sur le théorème bayésien, avec l’hypothèse de l’indépendance de la caractéristique.

En d’autres termes, l’analyse bayésienne naïve suppose que l’existence d’une caractéristique dans la classe n’est pas en corrélation avec une autre caractéristique. C’est pourquoi une telle approche est appelée « Naïve ». L’avantage de ce classificateur ? Un faible volume de données suffit pour l’entraînement du modèle, l’estimation des paramètres et la classification.

Dans la plupart des cas, la NBA est utilisée pour la classification des textes (clustering) et de tonalité d’un texte. Le cas d’usage le plus connu n’est autre que la constitution d’un filtre de détection de spam. La plupart des solutions NLP utilisent la méthode du maximum de vraisemblance pour estimer les paramètres des modèles bayésiens naïfs.

Avec la NBA, la classification et la classification multiclasse, sont rapides et simples. En supposant l’indépendance des mots, cet algorithme est plus performant que d’autres méthodes plus simples.

Enfin la NBA fonctionne mieux avec les caractéristiques nominales qu’avec ses homologues continues.

Plongement lexical ou word embedding

Le plongement lexical fait référence à un ensemble de méthodes, techniques et approches pour créer des modèles de traitement du langage naturel qui associent des mots, des phrases à des vecteurs de nombres réels. Cela permet d’effectuer une analyse de texte.

Avec cette approche, les mots situés dans un même contexte disposent de vecteurs proches. Par exemple, les mots « vache » et « cochon » appartiennent à un même ensemble : animaux d’élevage. Ces termes ont une signification générale similaire.

Par exemple, les modèles Word2vec sont utilisés pour reconstruire le contexte linguistique des mots. Ces réseaux de neurones à deux couches visent à prédire un terme suivant un contexte donné, c’est-à-dire les autres mots qui l’entourent.

Généralement, la tâche de classification est calculée avec la formule softmax. Ceci est nécessaire pour entraîner le modèle NLP avec la technique de rétropropagation, c’est-à-dire le processus de propagation d’erreur à rebours.

D’autres techniques de plongement lexical existent. On peut penser à GloVe qui utilise une combinaison de vecteurs de mots décrivant la probabilité de leur co-occurrence dans un texte. FastText, lui, utilise un principe similaire à Word2vec, mais utilise des sous-chaînes de caractères et des symboles et, par conséquent, le mot devient son contexte.

Réseau récurrent à mémoire court ou Long short-term memory

réseau de neurones artificiel

Un Long short-term memory (LSTM) est un réseau de neurones récurrent spécifique capable d’entraîner des dépendances à long terme.

Un LSTM comprend plusieurs couches en interaction pour ajouter des données (Inpute Gate), oublier de l’information (Forgate Gate) et la couche Output Gate donne l’état d’une cellule du réseau à un instant T.

A contrario d’un RNN classique, les cellules d’un LSTM peuvent avoir plusieurs états puisqu’elles ne possèdent plus seulement un vecteur ht (l’état de la cellule), mais le vecteur c qui se comporte comme une mémoire. Les cellules peuvent ainsi écrire des données en mémoire sur leur état à l’instant T.

L’état de la cellule est semblable à celui d’un tapis roulant. L’information passe directement à travers toute la chaîne, ne participant qu’à quelques transformations linéaires. L’information peut circuler sans aucune modification ou être effacée si elle n’est pas nécessaire au cours de l’apprentissage. En résulte, un modèle d’entraînement plus rapide et plus simple qu’un RNN classique dont les procédures de conservations des états sont plus complexes.

Un LSTM peut faciliter les tâches d’analyse des sentiments, de reconnaissance de la parole, d’association de légende à des images, de reconnaissance d’entités nommées ou pour répondre à des questions.

Traduit, adapté et augmenté par Gaétan Raoul

Pour approfondir sur Intelligence Artificielle et Data Science