Rechercher en langage naturel grâce à Elastic Search

Un chatbot Elastic Search est capable d’indexer et de rechercher dans une base de données textuelle. Nous l’utilisons dans nos chatbots pour augmenter la performance des usages FAQ

La puissance d'Elastic Search pour
les chatbots FAQ

Quand on travaille dans le monde du chatbot, on est toujours à l’affût des nouvelles technologies en termes de compréhension de langage naturel. 

Nous nous sommes concentrés au départ sur les algorithmes de machine learning capable de détecter des intentions et des entités. Ces algorithmes sont à la pointe de la technologie et marchent parfaitement. Mais ils atteignent leur limite lorsqu’on souhaite ajouter un nombre important de sujets FAQ dans un chatbot (trop long à entraîner, défaut de compréhension sur des sujets connexes et sur des mots-clés uniques). On pourrait vous en parler des heures. 

On s’est donc mis à tester une technologie moins nouvelle (bon ça a été créé en 2004, c’est pas non plus préhistorique) pour voir si on pouvait en tirer quelque chose. 

Notre approche a été assez unique dans le monde du chatbot. Accrochez-vous, on vous dit tout ! 

Tout savoir sur Elastic Search et les chatbots

Retrouvez notre documentation utilisateur qui explique comment et pourquoi paramétrer Elastic Search pour optimiser la NLU de votre chatbot.

Fonctionnement d'elastic search

Contrairement aux algorithmes de détection d’intention , Elastic Search n’utilise pas de machine learning et n’a donc pas besoin de phrases d’entraînement pour fonctionner. 

C’est donc très pratique pour des usages de type FAQ dans lesquels le chatbot doit comprendre beaucoup de sujets (plusieurs milliers parfois). Concrètement : cela vous fait gagner un temps conséquent sur le paramétrage. C’est aussi plus simple à administrer. 

Cet algorithme fonctionne comme suit : 

  1. Le chatbot va nettoyer la phrase de l’utilisateur : il va supprimer tous les mots inutiles (« de », « à », « et », « si », « que », etc…) et prendre la racine des autres mots principaux (ex: « téléchargements » devient « télécharger »),
  2. Il va ensuite comparer cette phrase nettoyée avec le contenu présent dans le chatbot, et notamment avec les  mots-clés associés, 
  3. S’il trouve un match, il renvoie la ressource associée

Et c’est tout. 

C’est notamment grâce à cette techno qu’on peut importer en masse des sujets via Excel.

elastic search chatbot

Natural language understanding + Elastic Search : duo gagnant

Une fois nos tests réalisés et concluant sur des compétences uniquement FAQ, nous avons rencontré un autre problème.

Les chatbots de nos clients sont d’abord orientés actions. C’est-à-dire que leur objectif premier est de réaliser des actions : envoyer un email, reboot un mot de passe, etc…

Ces compétences nécessitent une compréhension en mode NLU. C’est fait pour ça. 

Nous avions donc besoin d’avoir des chatbots avec de la NLU et de l’Elastic Search.

Donc on l’a fait. 

Et les résultats sont assez fous. Voici la structure de compréhension optimale : 

  1. L’utilisateur tape une phrase
  2. Le chatbot active d’abord la NLU et trouve une intention
    1. S’il s’agit d’une intention action, alors il détecte les entités et renvoies vers la compétence action associée
    2. S’il s’agit d’une intention FAQ, alors il renvoie vers la compétence FAQ associée puis recherche dans la-dite compétence pour trouver la ressource la plus proche

Vous vous retrouvez donc avec un chatbot capable de réaliser des actions complètes ET de répondre à des questions simples de façon performante !