Notice: Undefined index: extension in /home/hubiaiqdxo/www/wp-content/themes/Divi/epanel/custom_functions.php on line 1473
Les capacités des chatbots sont limitées par leur nature même : ils ne sont pas toujours à la hauteur lorsqu’il s’agit de reconnaître les flux de conversation humains. Cela conduit à des situations très courantes du type « Je ne comprends pas votre demande, veuillez reformuler ». Frustrant, n’est-ce pas ? Cela se produit car le langage « naturel » ne peut pas toujours rester aussi naturel en programmation : nous pouvons alimenter le bot avec toutes les règles de grammaire possibles mais dans les conversations humaines réelles, il y aura toujours quelques (voire de nombreuses) nuances linguistiques et diverses dérivations des standards. Un chatbot qui ne s’appuie que sur la logique des mots-clés ne pourra pas reconnaître ces petits détails. La question est donc de savoir comment développer un chatbot qui sera capable de comprendre nos demandes dans toute leur diversité.
L’illusion de la compréhension
Pour « comprendre » un interlocuteur humain, un bot typique comparera ce qui a été dit avec de nombreuses phrases sur lesquelles il a été entraîné. Il trouve des similitudes avec les modèles de phrases, détermine le sujet de la question et exécute l’action programmée pour ce type de question. L’interlocuteur a alors l’illusion que le bot le comprend : il agit logiquement, réagit de manière humaine et poursuit la conversation. Le fameux test de Turing est basé sur cette illusion : si l’évaluateur ne peut pas déterminer s’il parle à une machine ou à un vrai humain, le test est considéré comme réussi.
Les chatbots apprennent comme les enfants
Former un chatbot, c’est un peu comme éduquer un enfant. Nous devons l’instruire sur ce qu’il peut ou ne peut pas dire dans différents contextes. Nous devrions également lui dire comment comprendre et réagir correctement aux demandes et lui donner quelques notions rudimentaires sur la façon de prendre des décisions concernant les points mentionnés ci-dessus. Dès la petite enfance, les humains savent comment séparer les informations importantes du discours, prendre en compte le contexte du dialogue et comprendre qu’une même idée peut être exprimée de nombreuses manières différentes. Malheureusement, lorsqu’il s’agit de chatbots, nous ne pouvons pas vraiment attendre qu’il termine tout le cursus de l’enseignement secondaire : il faut qu’il apprenne tout ce que nous avons appris en grandissant dans un laps de temps ridiculement court.
Alors, comment entraîne-t-on un chatbot?
Il existe deux principaux modes d’apprentissage des robots : supervisé et non-supervisé. Nous avons déjà expliqué dans notre article précédent, Chatbots professionnels : mythes et réalités décortiqués, pourquoi l’apprentissage non-supervisé n’est pas encore adapté au niveau actuel de développement de l’IA (après tout, on ne laisse pas un enfant apprendre tout seul, n’est-ce pas ?). Cela nous laisse l’apprentissage supervisé. Comment préparer le terrain pour l’apprentissage supervisé ?
Pour aller au bout des choses, un assistant « intelligent » doit :
- Comprendre correctement le sens de la question
- Considérez le contexte de la conversation
- Être en mesure d’apporter une réponse adéquate
Creusons un peu le sujet.
1. Comprendre l’apprentissage.
La principale technologie utilisée par les bots modernes est le NLU (Natural Language Understanding – pour en savoir plus, cliquez ici Comment choisir entre NLP et NLU pour un chatbot ?). Elle permet à la machine de comprendre les utilisateurs et d’exécuter les paramètres nécessaires au traitement des demandes. La requête principale doit être séparée des éléments « inutiles », puis le moteur doit reconnaître les homonymes (« livre » comme l’objet et « livre » comme dans « livre-moi des fleurs »), choisir la plus appropriée parmi plusieurs options et être capable de traiter les erreurs grammaticales dans les phrases. Vous devez apprendre aux bots à comprendre les chiffres écrits dans un texte, à reconnaître le sens d’une phrase avec des fautes d’orthographe, d’argot ou un ordre de mots inexact. Je vais passer les choses moins évidentes, mais il y a des milliers de règles à prendre en compte.
Le plus souvent, les assistants virtuels, ainsi que les chatbots, utilisent des méthodes de traitement de texte assez superficielles. L’algorithme se concentre sur la détection des principaux « faits » ou mots clés utilisés dans la demande qu’il a reçue. Si ces faits sont détectés avec un certain degré de probabilité, le reste du texte est généralement ignoré. Cela peut être suffisant pour des tâches commerciales simples.
Le modèle de l’analyse texte « surfaciel » le plus courant est le « sac de mots ». Ce modèle crée un ensemble de vecteurs contenant le nombre d’occurrences de mots, sans tenir compte de la position des mots les uns par rapport aux autres : par exemple, la phrase « Je n’aime pas beaucoup dessiner » sera présentée comme {« aime », « pas », « dessiner », « beaucoup », « je »}. Dans les domaines où l’analyse du texte intégral et la prise en compte de nuances sémantiques subtiles sont nécessaires, cette approche semble trop légère. Des méthodes de traitement linguistique approfondi basées sur des approches fondamentales de l’analyse de texte seront plus adéquates. En règle générale, les textes de cette approche passeront par une série de systèmes d’analyse :
– Graphique (traitement des caractères)
– Lexical (identification des mots)
– Morphologique (analyse de la forme des mots)
– Syntaxique (évaluation de la position mutuelle des mots et de leurs rôles)
– Sémantique (révéler le sens des mots et les liens entre eux)
Grâce à cette analyse, le moteur peut prendre d’autres mesures : saut de mots, lemmatisation, radicalisation (« stemming »), singularisation, analyse des erreurs de grammaire, et même de la correspondance des synonymes, entre autres.
2. Apprentissage du contexte.
3. Donner une réponse adéquate.
Voyez un chatbot comme une pastèque en remplaçant l’eau par des informations : 80% des informations, si elle consiste en des réponses toutes faites, ont été remplies par des humains. Sans exemples, même le plus intelligent des réseaux de neurones ne comprendra pas entièrement les demandes. Le contenu utile est la règle d’or. Mieux une entreprise connaît ses clients, mieux elle pourra fournir d’informations sur leurs demandes, et plus le bot sera intelligent.
Les développeurs doivent tenir compte de tous les détails lorsqu’ils travaillent avec le contenu : chaque demande doit être traitée correctement, en extrayant et en fournissant les bonnes données. La formation continue du chatbot doit également rester simple : les questions des clients changent tout le temps et le bot ne doit pas perdre sa pertinence. N’oubliez pas que les chatbots sont aussi intelligents qu’ils sont conçus pour l’être.
Et pour Hubi ?