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

Smartly.ai est un logiciel d’automatisation de la Relation Client.
Nos chatbots soulagent vos équipes, réduisent le temps de réponse et améliorent la satisfaction client.

© 2012-2022 Smartly.AI