Traitement du langage naturel

Traitement du langage naturel (NLP)

3 choses à savoir

Le traitement du langage naturel (Natural Language Processing ou NLP) est une branche de l'intelligence artificielle (IA) qui apprend aux ordinateurs à comprendre le langage humain aussi bien sous forme orale qu'écrite. Le traitement du langage naturel combine la linguistique informatique avec le Machine Learning et le Deep Learning pour traiter des données vocales et textuelles, qui peuvent également être utilisées avec d'autres types de données dans le but de développer des systèmes techniques intelligents.

Fonctionnement du traitement du langage naturel

Le traitement du langage naturel vise à transformer des données linguistiques non structurées en un format structuré utilisable par des machines pour interpréter des données vocales et textuelles, découvrir et visualiser des relations complexes dans de grands jeux de données, et générer de nouvelles données linguistiques.

Les données brutes du langage humain peuvent provenir de diverses sources, notamment de signaux audio, de contenus web et des réseaux sociaux, de documents, ou encore de bases de données. Les données contiennent des informations précieuses telles que des commandes vocales, les sentiments du public sur certains sujets, des données opérationnelles et des rapports de maintenance. Le traitement du langage naturel permet de combiner et de simplifier ces sources de données volumineuses pour les transformer en informations significatives grâce à des visualisations et des modèles thématiques.

Les données vocales et textuelles sont transmises à un modèle d'IA pour le traitement du langage naturel.

Le traitement du langage naturel associe la linguistique informatique à la modélisation de l'IA pour interpréter les données vocales et textuelles.

Pour effectuer le traitement du langage naturel à des données vocales, vous devez détecter la présence de la parole humaine dans un segment audio, effectuer la transcription de la parole en texte, puis appliquer des techniques de text mining et de Machine Learning sur le texte dérivé.

Préparation des données pour le traitement du langage naturel

Parmi les techniques utilisées en traitement du langage naturel pour convertir un texte d'un format non structuré vers un format structuré, on peut par exemple citer :

Analyse lexicale : il s'agit généralement de la première étape de traitement du texte pour le traitement du langage naturel. C'est le processus de découpage du texte en phrases ou en mots.

Racinisation : cette technique de normalisation de texte réduit les mots à leur forme racine en supprimant les affixes qui leur sont appliqués. Elle utilise des règles heuristiques simples et peut aboutir à des mots invalides dans le dictionnaire.

Lemmatisation : cette technique sophistiquée de normalisation de texte utilise le vocabulaire et l'analyse morphologique pour supprimer les affixes des mots. Par exemple, « building has floors » est réduit à « build have floor ».

Word2vec : parmi les techniques de word embedding, l'implémentation la plus populaire est Word2vec. Cette technique crée une représentation distribuée des mots sous forme de vecteurs numériques, qui capturent la sémantique et les relations entre les mots.

Modélisation n-gramme : un n-gramme est un ensemble de n éléments successifs dans un document texte pouvant comprendre des mots, des nombres, des symboles et de la ponctuation. Les modèles n-gramme peuvent être utiles dans de nombreuses applications de traitement du langage naturel, dans lesquelles les séquences de mots sont pertinentes, comme l'analyse de sentiments, la classification de texte et la génération de texte.

Traitement du langage naturel avec l'IA

Les modèles d'IA entraînés sur des données linguistiques peuvent reconnaître des patterns et prédire les caractères ou les mots à venir dans une phrase. Pour construire des modèles de traitement du langage naturel, vous pouvez utiliser des algorithmes de Machine Learning classiques, tels que la régression logistique ou les arbres de décision, ou utiliser des architectures de Deep Learning, telles que les réseaux de neurones à convolution (CNN), les réseaux de neurones récurrents (RNN) et les autoencoders. Par exemple, vous pouvez utiliser des CNN pour classifier du texte et des RNN pour générer une séquence de caractères.

Les modèles de type Transformer (un type de modèle de Deep Learning) ont révolutionné le traitement du langage naturel et constituent la base des grands modèles de langage (LLM) tels que BERT et ChatGPT™. Les transformateurs sont conçus pour détecter des relations dans les données séquentielles. Ils s'appuient sur un mécanisme d'auto-attention pour saisir les dépendances globales entre les entrées et les sorties.

Dans le contexte du traitement du langage naturel, cela permet aux LLM de capturer les dépendances long terme, les relations complexes entre les mots, ainsi que les nuances présentes dans le langage naturel. Les LLM peuvent traiter tous les mots en parallèle, ce qui accélère l'apprentissage et l'inférence.

À l'instar d'autres modèles de Deep Learning pré-entraînés, vous pouvez effectuer l'apprentissage par transfert avec des LLM pré-entraînés pour résoudre un problème donné de traitement du langage naturel. Vous pouvez par exemple affiner un modèle BERT pour du texte en japonais.

Importance du traitement du langage naturel

Le traitement du langage naturel apprend aux machines à comprendre et à générer du langage humain. Les applications sont vastes et, à mesure que la technologie de l'IA évolue, l'utilisation du traitement du langage naturel, des tâches quotidiennes aux workflows d'ingénierie avancés, continuera de se développer.

Parmi les tâches courantes en traitement du langage naturel, on peut citer la reconnaissance vocale, la reconnaissance des locuteurs, l'amélioration de la qualité de la parole et la reconnaissance d'entités nommées. Un sous-domaine du traitement du langage naturel, appelé compréhension du langage naturel (Natural Language Understanding ou NLU), permet d'utiliser l'analyse syntaxique et sémantique de la parole et du texte afin d'extraire le sens d'une phrase. Les tâches de NLU comprennent la classification de documents et l'analyse de sentiments.

Illustration du résultat de tâches de NLP. À gauche, cinq locuteurs différents sont reconnus dans un signal audio. À droite, les mots sont classés en mots positifs et négatifs dans des nuages de mots-clés.

La reconnaissance de locuteurs et l'analyse de sentiments sont des tâches courantes du traitement du langage naturel.

Un autre sous-domaine du traitement du langage naturel, appelé génération de langage naturel (Natural Language Generation ou NLG), englobe les méthodes utilisées par les ordinateurs pour produire une réponse textuelle à partir de données d'entrée. Si la génération de langage naturel a commencé avec la génération de texte basé sur des modèles, les techniques d'IA permettent aujourd'hui de générer des textes de manière dynamique en temps réel. Les tâches de NLG incluent la génération de résumés de texte et la traduction automatique.

Les deux principaux domaines du traitement du langage naturel (NLP) sont la compréhension du langage naturel (NLU) et la génération de langage naturel (NLG).

Le traitement du langage naturel et ses sous-domaines.

Le traitement du langage naturel est utilisé dans les secteurs de la finance, de la fabrication, de l'électronique, des logiciels, des technologies de l'information et d'autres industries, notamment pour les applications suivantes :

  • Automatisation de la classification des avis basée sur le sentiment, positif ou négatif
  • Décompte de la fréquence des mots ou des phrases dans des documents et modélisation thématique
  • Automatisation de la labellisation et de l'ajout de tags sur des enregistrements vocaux
  • Développement de programmes de maintenance prédictive basés sur des données issues de capteurs et de journaux texte
  • Automatisation de la formalisation des exigences et de la vérification de la conformité

Traitement du langage naturel avec MATLAB

MATLAB vous permet de créer des pipelines de traitement du langage naturel, de la préparation des données au déploiement. En utilisant Deep Learning Toolbox™ ou Statistics and Machine Learning Toolbox™ avec Text Analytics Toolbox™, vous pouvez effectuer un traitement du langage naturel sur des données textuelles. En utilisant également Audio Toolbox™, vous pouvez effectuer un traitement du langage naturel sur des données vocales.

Le workflow de NLP complet comprend l'accès et l'exploration des données textuelles, le prétraitement des données, le développement de modèles prédictifs, ainsi que le partage des informations et des modèles.

Workflow étendu pour le traitement du langage naturel.

Préparation des données

Vous pouvez utiliser des applications low-code afin de prétraiter les données vocales pour le traitement du langage naturel. L'application Signal Analyzer vous permet d'explorer et d'analyser vos données, et l'application Signal Labeler labellise automatiquement la vérité terrain. Vous pouvez utiliser Extract Audio Features pour extraire des caractéristiques spécifiques à un domaine et effectuer des transformations temps-fréquence. Vous pouvez ensuite transcrire la parole en texte en utilisant la fonction speech2text.

Une fois que vous disposez de données textuelles pour appliquer le traitement du langage naturel, vous pouvez transformer les données linguistiques non structurées en un format structuré de manière interactive, et préparer vos données grâce à la tâche Preprocess Text Data du Live Editor. Vous pouvez également préparer vos données NLP de manière programmatique avec les fonctions prédéfinies.

Les nuages de mots-clés et diagrammes de dispersion vous permettent aussi de visualiser les données textuelles et les modèles de traitement du langage naturel.

 Illustration de la préparation de données textuelles en vue du traitement du langage naturel. À gauche : nuage de mots-clés des données brutes. À droite : nuage de mots-clés des données préparées.

Nuages de mots-clés illustrant l'analyse de la fréquence des mots appliquée aux données textuelles brutes et préparées provenant de rapports d'usine.

Modélisation de l'IA

Vous pouvez entraîner de nombreux types de modèles de Machine Learning pour la classification ou la régression. Par exemple, vous pouvez créer et entraîner des réseaux Long Short-Term Memory (LSTM) avec quelques lignes de code MATLAB. Vous pouvez également créer et entraîner des modèles de Deep Learning avec l'application Deep Network Designer et surveiller l'apprentissage du modèle avec des graphiques représentant les métriques de précision, de perte et de validation.

Capture d'écran de l'application Deep Network Designer montrant un réseau BiLSTM simple qui peut être utilisé pour le traitement du langage naturel.

L'application Deep Network Designer permet de créer, visualiser, éditer et entraîner de manière interactive des réseaux de NLP.

Au lieu de créer un modèle de Deep Learning en partant de zéro, vous pouvez obtenir un modèle pré-entraîné, que vous appliquez directement ou que vous adaptez à votre tâche de traitement du langage naturel. Avec MATLAB, vous pouvez accéder à des réseaux pré-entraînés à partir du MATLAB Deep Learning Model Hub. Par exemple, vous pouvez utiliser le modèle VGGish pour extraire des embeddings de caractéristiques à partir de signaux audio, le modèle wav2vec pour la transcription de parole en texte, et le modèle BERT pour la classification de documents. Vous pouvez également importer des modèles depuis TensorFlow™ ou PyTorch™ en utilisant les fonctions importNetworkFromTensorFlow ou importNetworkFromPyTorch.

Sujets connexes