1. Qu’est-ce que le traitement du langage naturel pour un chatbot ?

Pour pouvoir « converser » avec un humain, un chatbot doit être capable de comprendre les requêtes utilisateur, pour répondre de manière pertinente.

Le traitement du langage naturel (ou NLP en anglais) désigne la capacité d’un programme informatique à comprendre le langage humain.  Cette discipline est une composante de l’intelligence artificielle, qui connait une forte accélération ces dernières années.

2. Le NLP, une discipline complexe

Le langage humain est par définition complexe. En effet, nous pouvons combiner les mots comme il nous semble – dans la limite de l’intelligibilité de la phrase par nos congénères – pour en faire des phrases, des expressions…etc.

Par ailleurs, le même mot peut avoir des significations différentes suivant le contexte.

Une machine peut difficilement détecter l’ironie (ex : « Quelle sacré journée » peut avoir une signification différente suivant que vous ayez passé une bonne ou mauvaise journée).

Pour ne rien arranger, chaque langue a ses spécificités, et potentiellement un alphabet différent.

Les défis du NLP sont donc nombreux, et nécessite des expertises pointues en informatique, mais aussi en linguistique.

3. Comment fonctionne le NLP pour le chatbot ?

Pour construire un chatbot à base de NLP, il faut à minima :

  • Un jeu de données : on enrichit le chatbot à l’aide de phrases, qui vont constituer la base de connaissances du chatbot. On définit ce que l’on appelle des « intentions », c’est-à-dire un ensemble de phrases ayant la même signification sémantique (ex : « j’ai faim », « je suis mort de faim », « j’ai la dalle » peuvent constituer une même intention)
  • Des algorithmes de traitement du langage naturel : ils auront pour fonction principale de comparer les requêtes des utilisateurs aux jeux de données présents dans la base de connaissance.

S’il y’a « match », le chatbot déclarera avoir compris l’intention de la phrase utilisateur et apportera une réponse de circonstance. Ce calcul de matching sera assuré par une succession d’algorithmes (on parlera de « pipeline » NLP) que l’on vous décrit dans le paragraphe suivant.

4. Les algorithmes constitutifs d’une chaine NLP

La suite d’algorithme permettant de « matcher » un jeu de données avec une requête utilisateur est décrite par le graphe suivant :

Une courte définition de chacun de ces algorithmes :

  1.  Tokénisation

La tokénisation consiste à scinder une chaîne d’entrée en différentes parties atomiques, généralement des mots. L’une des formes les plus simples de tokénisation peut être définie comme une séparation par des espaces: “C’est simple.” -> [“Ceci”, “est”, “simple”]. Cette tâche peut être assez complexe avec des langues où les espaces arrières ne sont pas là pour vous aider:
は 簡 で す

  • Correction orthographique

La correction typographique est le processus de détection et de suggestion de mots mal orthographiés dans un texte. Cela consiste à gérer cela de manière proactive en ajoutant des fautes de frappe simulées dans l’ensemble de données formé pour enseigner aux bots certaines erreurs courantes et prévisibles que vos utilisateurs peuvent rencontrer.

  •  Extraction d’entité

L’extraction d’entités utilise deux approches différentes :

a) Extraction d’entité personnalisée : extrait une information pertinente d’un texte, cette information étant transmise au bot par une liste d’éléments et leurs synonymes.

b) Extraction d’entité système : extrait l’heure, les nombres, etc.

  • Vectorisation

Le traitement automatique du langage naturel faisant appel à beaucoup de mathématiques, nous utilisons la vectorisation pour transformer la demande de l’utilisateur en objet mathématique.
Par exemple, si notre dictionnaire contient les mots {Smartly.AI, is, the, not, great}, et que nous souhaitons vectoriser le texte «Smartly.AI is great», nous aurions le vecteur suivant: (1, 1, 0, 0, 1).
C’est un peu plus complexe, mais vous avez eu l’idée

  • Détection de l’intention

Fondamentalement, il compare le vecteur d’entrée à un ensemble de vecteurs préformés (intentions) pour trouver celui qui est le plus similaire. Le résultat de cette opération est le meilleur candidat d’intention et un score de confiance.

  • Analyse des sentiments

Cet algorithme extrait la polarité des sentiments (positive ou négative) de la requête utilisateur. Cela peut être utile si vous souhaitez détecter la colère/frustration chez votre prospect/client, qui peut être synonyme de « churn ».

Pour plus de précision et pertinence, vous pouvez également ajouter les algorithmes suivants :

  • Le stemming : consiste en la suppression des préfixes/suffixes
  • La lemmatisation : consiste à réduire le mot à sa racine, sa forme la plus primaire
  • Suppression des stop words : consiste à supprimer les articles, les pronoms et les propositions.

3. Les réponses du chatbot

Une fois que le chatbot a « compris » l’intention de l’utilisateur, il va alors générer une réponse.

La génération de la réponse consiste en une chaine de traitement qui va inclure notamment :

  • La prise en compte du contexte de la conversation
  • La connexion à un système d’information tiers pour aller chercher des éléments de réponse

Une chaine de traitement est généralement nécessaire afin que le chatbot puisse apporter une réponse. Elle est décrite dans le schéma suivant :

Sélection du bot : Les chatbots élaborés sont souvent le résultat de plusieurs chatbots orchestrés par un master bot. Cette étape va donc consister à sélectionner le chatbot spécialisé le plus à même de répondre à la requête de l’utilisateur.

Contextualisation : Le contexte est clé pour déterminer la réponse à apporter à une requête utilisateur. Dans cette étape, on vérifie quel est le contexte de la requête utilisateur, et quelle est la meilleure réponse que le chatbot peut apporter.

Code : le chatbot doit pouvoir se connecter à des systèmes tiers (Systèmes d’information, bases de données…etc.) pour pouvoir apporter une réponse. (Ex : « quel sera la météo demain » amènera une réponse du type « Il fera 10 degrés demain matin à Cognac », qui nécessite une connexion à une API)

Génération de la réponse : Cette étape va consister à aller chercher dans la base de connaissances les verbatims de réponses. Cela peut être du texte, mais également des réponses enrichies telles que des boutons, des images, des carrousels…etc.

Si l’on combine tous les briques, nous arrivons donc au schéma suivant :

4. Autres notions

A/ Message de reformulation

Le chatbot doit être capable de signifier à un utilisateur qu’il n’a pas ou peu compris une requête.

On parlera alors de message de reformulation. Voici quelques messages de reformulation type :

  • Désolé, je n’ai pas compris votre message. Pourriez-vous reformuler ?
  • Navré, mais je suis en phase d’apprentissage. Pourriez-vous reformuler votre requête ?
  • Je suis navré. J’attendais que vous communiquiez votre date de naissance au format JJ/MM/AAAA. Pourriez-vous svp me la répéter ?
  • Je n’ai pas tout à faire compris votre message. Pourriez-vous svp me poser une question en rapport avec nos produits et services bancaires ?
  • Désolé, je n’ai pas compris votre message. Souhaitez-vous que je vous mette en relation avec un de nos conseillers ?

B. Désambiguïsation

Comme pour une conversation avec un humain, un chatbot peut considérer une requête comme était ambigu et demander à l’utilisateur de lui fournir plus d’informations.

Exemple, dans un contexte bancaire :

Utilisateur : « j’ai perdu ma carte »

Chatbot : « De quel type de carte s’agit-il : Visa, Mastercard ou American Express ?

Utilisateur : « ma carte Visa »

C. Taux de compréhension

Il s’agit de l’indicateur numéro 1 pour mesurer la performance du chatbot, sa bonne compréhension des requêtes utilisateurs.

Taux de compréhension = (Nombre de requêtes comprises par le chatbot / Nombre total de requêtes utilisateurs) *100

Qui détermine qu’une requête est correctement comprise par le chatbot ? Le chatbot lui-même.

Il dispose en effet d’un algorithme lui permettant de comparer les requêtes de l’utilisateur aux connaissances qu’on lui aura appris.

Si la requête de l’utilisateur présente une similarité sémantique avec le jeu de données appris au chatbot, celui va considérer qu’il a compris la requête, avec un certain % de confiance.

D. Apprentissage supervisé

Certaines requêtes ne seront pas comprises par le chatbot (non présente dans le modèle de données du chatbot, trop complexe…etc.)

Le concepteur du chatbot pourra à postériori utiliser ces requêtes pour améliorer les performances du chatbot.

Vous souhaitez en discuter ? Contactez-nous https://smartly.ai/contact

WordPress » Erreur

Il y a eu une erreur critique sur ce site.

En apprendre plus sur le débogage de WordPress.