État de l'Intelligence Artificielle appliquée à l'Ingénierie de la Qualité 2021-2022
Section 3.2 : Traitement du langage

Chapitre 1 by Capgemini

L'intérêt du NLP et du NLU

Métier ●○○○○
Technique ●●●●○

Download the "Section 3.2: Inform & Interpret" as a PDF

Use the site navigation to visit other sections and download further PDF content

By submitting this form, I understand that my data will be processed by Sogeti as described in the Privacy Policy.*

Le véritable succès du NLP (Traitement du Langage Naturel) réside dans le fait que les humains pensent communiquer avec d'autres humains plutôt qu'avec des machines.

Le traitement du langage naturel (NLP) est un sous-domaine de la linguistique, de l'informatique et de l'intelligence artificielle qui étudie les interactions entre les ordinateurs et le langage humain, et plus particulièrement la manière de former les ordinateurs à traiter et à analyser des volumes massifs de données en langage naturel. L'une des applications consiste à permettre à un ordinateur de "comprendre" le contenu des documents, y compris les nuances contextuelles du langage qu'ils contiennent. La technologie peut alors extraire des informations et des idées précises des documents, ainsi que les classer et les organiser.

Le traitement du langage naturel peut être défini comme "la capacité des machines à comprendre et à interpréter le langage humain tel qu'il est écrit ou parlé".

Le NLP traite de différents aspects du langage tels que :

  • La phonologie est l'organisation systématique des sons dans le langage.
  • La morphologie est l'étude de la formation des mots et de leur relation les uns avec les autres.

Les approches du NLP pour comprendre l'analyse sémantique :

  1. Distributionnelle : elle emploie des tactiques statistiques à grande échelle du Machine Learning et du Deep Learning.
  2. Frame-Based : les phrases syntaxiquement distinctes mais sémantiquement équivalentes sont représentées dans une structure de données (frame) pour la situation stéréotypée.
  3. Théorique : cette technique repose sur le principe que les phrases font référence au monde réel (le ciel est bleu) et que des fragments de phrases peuvent être fusionnés pour exprimer le sens de la phrase entière.
  4. Apprentissage interactif : Il s'agit d'une approche pragmatique, l'utilisateur donnant des instructions à l'ordinateur étape par étape dans un environnement d'apprentissage interactif.

NLP: définition, techniques et modèles

 

Il existe trois niveaux différents d'analyse linguistique avant d'effectuer le traitement automatique des langues :

  1. La syntaxe : Quelle partie du texte donné est grammaticalement correcte ?
  2. La sémantique : Quel est le sens du texte donné ?
  3. Le pragmatisme : Quel est l'objectif du texte ?


Le mécanisme du traitement du langage naturel implique deux processus successifs :

  • La compréhension du langage naturel
  • La génération du langage naturel

Compréhension du langage naturel

La compréhension du langage naturel (en anglais : Natural Language Understanding ou NLU) vise à comprendre le sens d'un texte donné. La compréhension du langage naturel nécessite la connaissance de la nature et de la structure de chaque mot contenu dans un texte. Pour comprendre la structure, la NLU tente de résoudre les ambiguïtés suivantes dans le langage naturel :

  • Ambiguïté lexicale : les mots ont plusieurs significations,
  • Ambiguïté syntaxique : une phrase a plusieurs arbres d'analyse,
  • Ambiguïté sémantique : une phrase a plusieurs significations,
  • Ambiguïté anaphorique : une phrase ou un mot qui est mentionné précédemment mais qui a un sens différent.

Ensuite, le sens de chaque mot est compris en utilisant des lexiques (vocabulaire) et un ensemble de règles grammaticales. Cependant, certains mots différents ont un sens similaire (synonymes) et des mots ayant plus d'un sens (polysémie).

Comme nous l'avons vu dans les cas d'utilisation ci-dessus, plusieurs attributs/artifacts sont exprimés en langage naturel à chaque étape du cycle de vie du génie logiciel, tels que les commentaires de commit, les commentaires de revue de code, les remarques dans les outils de gestion des tâches et de gestion des défauts, les exigences et la description des cas de test. Les attributs/artifacts en langage naturel ont un potentiel énorme si l'information est évaluée et utilisée correctement en utilisant NLU. Par exemple, les commentaires de validation en langage naturel créés par les développeurs lors de la vérification du code peuvent être utilisés pour indiquer le type de travail effectué par le développeur.

Génération de langage naturel

Il s'agit du processus de production automatique de texte à partir de données structurées dans un format lisible avec des phrases et des expressions significatives. La génération de langage naturel est un problème difficile à résoudre. La génération de langage naturel se divise en trois étapes proposées :

  • Planification du texte : le classement du contenu primaire dans les données structurées est effectué.
  • Planification des phrases : les phrases sont combinées avec les données structurées pour représenter le flux d'informations.
  • Réalisation : enfin, des phrases grammaticalement exactes sont générées pour représenter le matériel.

Aperçu des techniques de NLP

  • Reconnaissance des configurations : Dans le domaine de l'ingénierie de la qualité, la reconnaissance des configurations et des environnements peut aider à détecter des modèles de systèmes défaillants, qui peuvent ensuite être considérés comme des candidats à l'autodiagnostic et à la récupération, via la mise en place de solution.


  • Normalisation du texte : la normalisation des messages textuels est le processus de conversion de messages disparates en un format commun. Cette opération est effectuée lorsque des messages de journal séparés utilisent des terminologies distinctes mais proviennent de la même source, comme des programmes ou des systèmes d'exploitation. En normalisant le texte, nous cherchons à réduire sa variabilité et à le rapprocher d'une "norme" prédéfinie. Cela nous permet de limiter la quantité de données variées que l'ordinateur doit traiter, d'où une efficacité accrue. L'objectif des techniques de normalisation telles que la déformation et la lemmatisation est de réduire les formes flexionnelles et parfois dérivées d'un mot à une seule forme de base. La normalisation de texte peut aider à rationaliser l'analyse effectuée sur des sources de langage naturel telles que des commentaires, des descriptions, etc. afin d'effectuer des analyses pour la recherche d'informations.

  • Classification et balisage automatisés de textes : les classificateurs de textes peuvent être utilisés pour organiser, classer et catégoriser pratiquement tout type de texte, qu'il s'agisse de documents, d'études, de fichiers ou de textes trouvés sur le Web. La classification et le balisage de textes sont des processus qui consistent à ordonner et à baliser des textes à l'aide de divers mots-clés en vue d'une analyse ultérieure. Dans le domaine de l'ingénierie logicielle, la classification de textes peut être utilisée pour structurer rapidement et de manière rentable une variété de textes pertinents, de documents, de médias sociaux, de robots de discussion et d'enquêtes. Cela permet de gagner du temps lors de l'évaluation des données textuelles, d'automatiser les processus d'entreprise et de prendre des décisions sur la base des données.

  • Ignorance artificielle : C'est une technique qui fait appel à des algorithmes de Machine Learning pour éliminer les messages de log non pertinents. Elle est également utilisée pour détecter les anomalies dans les fonctionnalités du système et les opérations logicielles, ce qui permet aux ingénieurs de générer des alertes adaptées en temps réel en cas de dysfonctionnement du serveur/système ou de violation de la sécurité.


Méthodologie du traitement du langage naturel

L'utilisation du NLP implique quelques opérations de base énumérées ci-dessous :

  1. Collecte de données : Collecter des données pertinentes.
  2. Segmentation et tokenisation : Segmentation du texte en composants. Le processus de décomposition d'un paragraphe de texte en plus petits morceaux tels que des mots ou des phrases.
  3. Nettoyage du texte : Suppression des éléments inutiles.
  4. Vectorisation et ingénierie des caractéristiques : Transformation du texte en vecteurs numériques.
  5. Lemmatisation et vaporisation du texte : La lemmatisation prend en compte le contexte et convertit le mot en sa forme de base significative, le stemming supprime les derniers caractères, ce qui conduit souvent à des significations incorrectes et à des erreurs d'orthographe pour réduire les inflexions des mots.
  6. Formation du modèle : Former un modèle en utilisant des algorithmes ML pour résoudre un problème NLP.
  7. Interprétation du résultat : Interpréter et valider les résultats du modèle formé.

Bibliothèques NLP largement utilisées

Il existe de nombreuses bibliothèques, paquets et outils disponibles sur le marché. Chacun d'entre eux a ses propres avantages et inconvénients. Selon la tendance du marché, Python est le langage qui possède le plus de bibliothèques compatibles. Le tableau ci-dessous donne une vue résumée des caractéristiques de certaines des bibliothèques les plus utilisées. La plupart d'entre elles fournissent les fonctionnalités NLP de base mentionnées précédemment. Chaque bibliothèque NLP a été construite avec certains objectifs ; on peut donc dire qu'une seule bibliothèque ne fournit pas forcément des solutions pour tout.

Bibliothèques NLP
Outils Fonctionnalités
NLTK
  • Bien connu et robuste
  • Couverture élevée d'une variété de tâches NLP
  • Supporte plusieurs langues
  • Pas de vecteurs de mots intégrés
spaCy
  • Cadre de travail NLP très rapide
  • Fonctions optimisées pour diverses tâches NLP
  • Support des réseaux neuronaux pour la formation des modèles NLP
  • Support d'une faible quantité de langue
Scikit-learn NLP toolkit
  • Très efficace et largement utilisé
  • Bien documenté
  • Pas de support pour les réseaux neuronaux
Gensim
  • Utilisation principale pour la modélisation de texte non supervisée
  • Supporte le deep learning
  • Traitement d'ensembles de données volumineux et en continu

Défis du traitement du langage naturel

Dans le domaine de l'ingénierie de la qualité, l'application de techniques de traitement du langage naturel à des données en langage naturel dépend de multiples facteurs, qui doivent être examinés et évalués avant la mise en œuvre. Certains des principaux défis rencontrés lors de la mise en œuvre peuvent être énumérés ci-dessous :

Défis liés aux données :

  • Le principal défi est la surcharge d'informations, qui pose un gros problème pour accéder à un élément d'information spécifique et important à partir de vastes ensembles de données. La compréhension sémantique et contextuelle est à la fois essentielle et difficile pour les systèmes de résumé en raison des problèmes de qualité et de convivialité. De plus, l'identification du contexte d'interaction entre les entités et les objets est une tâche cruciale, surtout avec des données de haute dimension, hétérogènes, complexes et de mauvaise qualité.
  • Les ambiguïtés des données ajoutent des défis à la compréhension contextuelle. La sémantique est importante pour trouver la relation entre les entités et les objets. L'extraction d'entités et d'objets à partir de données textuelles et visuelles ne peut fournir des informations précises que si le contexte et la sémantique de l'interaction sont identifiés.
  • Le défi suivant consiste à extraire des informations pertinentes et correctes de données non structurées ou semi-structurées en utilisant des techniques d'extraction d'informations (IE). Il est nécessaire de comprendre les compétences et les limites des techniques d'IE existantes liées au prétraitement des données, à l'extraction et à la transformation des données, ainsi qu'aux représentations de vastes volumes de données non structurées multidimensionnelles. Une efficacité et une précision accrues de ces systèmes d'IE sont très importantes. Cependant, la complexité des données volumineuses et en temps réel pose des défis aux approches basées sur l'apprentissage automatique, à savoir la dimensionnalité des données, l'évolutivité, l'informatique distribuée, l'adaptabilité et la convivialité. Le traitement efficace des ensembles de données éparses, déséquilibrées et de haute dimension est complexe.

Défis liés au texte :

  • De grands volumes de données textuelles sont générés à partir de sources diverses. Bien que le ML et le NLP soient apparus comme les technologies les plus puissantes et les plus utilisées pour l'analyse des textes, la classification des textes reste la technique la plus populaire et la plus utilisée. La classification des textes peut être multi-niveaux (MLC) ou multi-classes (MCC). Dans la MCC, chaque instance ne peut être affectée qu'à une seule étiquette de classe, alors que la MLC est une classification qui affecte plusieurs étiquettes à une seule instance.
  • La résolution des problèmes MLC nécessite une compréhension du prétraitement des données multi-labels pour l'analyse des big data. MLC peut devenir très compliqué en raison des caractéristiques des données du monde réel telles que l'espace d'étiquettes à haute dimension, la dépendance des étiquettes et l'incertitude, la dérive, l'incomplétude et le déséquilibre. La réduction des données pour les ensembles de données de grande dimension et la classification des données multi-instances sont également des tâches difficiles.
  • Viennent ensuite les problèmes posés par la traduction d'une langue. Le principal défi de la traduction linguistique ne consiste pas à traduire des mots, mais à comprendre le sens des phrases afin de fournir une traduction précise. Chaque texte comporte des mots différents et requiert des compétences linguistiques spécifiques. Il est plus compliqué de choisir les bons mots en fonction du contexte et de l'objectif du contenu.
  • Une langue peut ne pas avoir de correspondance exacte pour une certaine action ou un certain objet qui existe dans une autre langue. Les expressions idiomatiques expliquent quelque chose au moyen d'exemples uniques ou de figures de style. Plus important encore, le sens de certaines expressions ne peut être prédit par les définitions littérales des mots qu'elles contiennent.
  • Le défi standard pour tous les nouveaux outils, est le processus, le stockage et la maintenance. La construction de pipelines de traitement automatique des langues est un processus complexe : prétraitement, découpage des phrases, tokenisation, marquage des parties du discours (POS), déracinement et lemmatisation, et représentation numérique des mots. Le traitement automatique des langues nécessite des machines haut de gamme pour construire des modèles à partir de sources de données importantes et hétérogènes.

Example: NLP for Log Analysis & Mining

Un journal (log) est une collection de messages provenant de divers périphériques et matériels du réseau, classés par ordre chronologique. Ils sont générés automatiquement en réponse à l'occurrence d'événements et comprennent des notes en langage naturel. Les journaux peuvent être acheminés vers des fichiers sur des disques durs ou envoyés sous forme de flux de messages sur le réseau vers un collecteur de journaux. Les journaux permettent de surveiller et de maintenir les performances du matériel et des logiciels, de régler les paramètres, d'effectuer des opérations de secours et de récupération des logiciels et des systèmes, et d'optimiser les applications et les infrastructures. 

Les techniques de traitement du langage naturel sont largement utilisées dans l'analyse et l'exploration des journaux : 

  • L'analyse des journaux est le processus d'extraction d'informations à partir des journaux en tenant compte des différentes syntaxes et sémantiques des messages dans les fichiers journaux et en interprétant le contexte avec l'application pour avoir une analyse comparative des fichiers journaux provenant de diverses sources pour la détection des anomalies et la recherche de corrélations. 
  • Le Log Mining, également connu sous le nom de Log Knowledge Discovery, est le processus d'extraction de modèles et de corrélations à partir des journaux afin de découvrir des connaissances et de prévoir la détection d'anomalies si elles sont contenues dans les messages des journaux. 

Pour convertir les messages des journaux en une forme structurée, de nombreuses techniques telles que la tokénisation, la déformation, la lemmatisation et l'analyse syntaxique sont utilisées. Une fois que les journaux bien documentés sont accessibles, l'analyse et l'exploration des journaux sont utilisées pour extraire des informations et des connaissances pertinentes des données. 

About the authors

Vivek Sejpal

Vivek Sejpal

Vivek is an passionate data scientist with more than five years of experience in analytics and machine learning. He is currently engaged in the design and development of intelligent data-driven assets for quality engineering applications. Vivek works with customers on end-to-end engagements to demonstrate the value of various Intelligent asset offerings across domains/industries. Additionally, Vivek contributes to the research and development of new intelligent assets for the purpose of resolving critical business problems through a data-driven approach that is consistent with business requirements.

Vivek Jaykrishnan

Vivek Jaykrishnan

Vivek Jaykrishnan is an enterprise test consultant and architect with extensive experience. He has over 22 years of experience leading Verification and Validation functions, including functional, system, integration, and performance testing, in leadership positions with reputable organizations. Vivek has demonstrated success working across a variety of engagement models, including outsourced product verification and validation in service organizations, independent product verification and validation in captive units, and globally distributed development in a product company. Additionally, Vivek has extensive experience developing and implementing test strategies and driving testing in accordance with a variety of development methodologies, including continuous delivery, agile, iterative development, and the waterfall model. Vivek is passionate about incorporating cognitive intelligence into testing and is also interested in exploring the frontiers of IoT testing.

About Capgemini

Capgemini is a global leader in partnering with companies to transform and manage their business by harnessing the power of technology. The Group is guided everyday by its purpose of unleashing human energy through technology for an inclusive and sustainable future. It is a responsible and diverse organisation of 270,000 team members in nearly 50 countries. With its strong 50 year heritage and deep industry expertise, Capgemini is trusted by its clients to address the entire breadth of their business needs, from strategy and design to operations, fueled by the fast evolving and innovative world of cloud, data, AI, connectivity, software, digital engineering and platforms. The Group reported in 2020 global revenues of €16 billion.

Get the Future You Want  I  www.capgemini.com

 

 

 

Capgemini logo