NLP & NLU : comment extraire le sens des énoncés ?
Un chatbot peut parfois impressionner par sa capacité à comprendre les demandes des utilisateurs. Cette faculté s’appuie en réalité principalement sur le NLP et le NLU. Deux sigles qui cachent un traitement statistique du langage naturel, faisant appel à divers champs d’étude scientifiques.
Le NLP, ou TALN (Traitement Automatique du Langage Naturel), c’est quoi ?
Le NLP (Natural Language Processing), ou TALN (Traitement Automatique du Langage Naturel), est une technologie à la confluence de l’intelligence artificielle et de la linguistique. Il consiste à analyser automatiquement des phrases formulées par un humain, afin de prendre ensuite les décisions adéquates.
Ensuite, le traitement opéré par le NLP peut être complété par le NLU (Natural Language Understanding). Le but de cette technique est d’aller au-delà de la “simple” compréhension littérale des mots. Il s’agit de replacer les éléments dans le contexte de l’utilisateur et d’associer des intentions à la requête formulée. Une manière donc d’approfondir la compréhension du langage humain.
Enfin, mentionnons l’existence d’une autre application complémentaire au NLP : le NLG (Natural Language Generation). Celui-ci doit permettre de créer automatiquement des phrases en langage humain. Mais dans les faits, ce domaine reste encore peu développé.
Où se cache vraiment la compréhension ?
Alors comment un programme informatique peut-il comprendre une phrase ? Le procédé se déroule en réalité en plusieurs étapes.
Analyse syntaxique
Le premier enjeu consiste à délimiter les différents mots, en repérant notamment les espaces et les signes de ponctuation. Puis à se concentrer sur les éléments porteurs de sens, en éliminant les autres (articles définis, conjonctions, etc.). Ensuite, chaque mot identifié se verra attribuer une fonction. Prenons l’exemple de la phrase « J’ai perdu mon mot de passe ». L’algorithme sera en mesure de repérer le verbe « perdre » au passé composé, le sujet « je », ainsi que le COD « mot de passe », accompagné de l’adjectif possessif « mon ».
Traitement sémantique
Après cette première étape, nommée analyse syntaxique, il faut passer à la partie sémantique. Il s’agit d’associer un sens à chacun des mots, séparément. On pourra alors les rapprocher de concepts, par exemple « mot de passe » et « identifiant ».
Traitement pragmatique
Enfin, il convient de procéder à un traitement pragmatique. C’est-à-dire replacer les éléments dans leur contexte, pour déterminer le sens général de la phrase. Ce qui peut s’avérer complexe… Examinons le texte : « J’ai perdu mon mot de passe. Je voudrais le changer. » Une des difficultés pour un programme peut être de comprendre le sens du mot « le ». Le traitement pragmatique doit lui permettre de déterminer qu’il se rapporte en réalité au mot de passe.
Une clé : le traitement des données
Il faut toutefois noter que même les chatbots les plus sophistiqués ne comprennent pas toujours ce qu’on leur dit. En réalité, en l’état actuel, l’IA n’a pas encore pour but de cerner le sens précis de la demande de son interlocuteur. Sa priorité est plutôt de comprendre l’usage auquel elle se rapporte. Car cela suffit à lui apporter une réponse satisfaisante, sans forcément instaurer un dialogue totalement naturel. Mais à terme, le NLP et le NLU devraient permettre d’aboutir à une faculté de communication complète.
Heureusement, un agent conversationnel est capable “d’apprendre” au fur et à mesure. Ainsi, avec la solution Clevy, chaque fois qu’une question jusqu’alors inconnue est posée, elle remonte directement au support interne. Celui-ci peut alors ajouter la réponse, ce qui permet d’alimenter la base de connaissance, et l’envoyer automatiquement à l’utilisateur à l’origine de la requête.
Pour “apprendre”, un chatbot comme Clevy a également recours à une technique appelée “deep learning”. Celle-ci repose sur des réseaux neuronaux et permet de simuler un comportement se rapprochant d’un cerveau d’enfant. C’est notamment en s’appuyant sur ce procédé que le NLP parvient à interpréter des données textuelles. Nous reviendrons un peu plus en détail sur le deep learning et les réseaux neuronaux dans de prochains articles.
Les données sont donc cruciales pour un chatbot. Elles permettent premièrement d’enrichir le vocabulaire compris par l’outil. En incluant les termes spécifiques à une entreprise, comme l’acronyme DIF (Droit Individuel à la Formation) pour un chatbot RH. Mais surtout, l’apprentissage, via les jeux de données, fournit davantage d’éléments de contexte au programme. Ce qui améliore son traitement statistique, et donc sa capacité à déduire le sens d’une phrase.