Cet article n'engage que les convictions de son auteur. Le Blog Keyrus est une fenêtre d'expression pour nos collaborateurs. Article publié par Simon Tannai, Lead Tech chez Keyrus Bot Factory
Le moteur d’indexation, aussi appelé moteur de recherche, est une pièce maîtresse des systèmes d’information modernes. Que ce soit pour de la pure recherche, de l’analyse, une brique métier d’un PIM ou d’un CMS e-commerce, la valeur ajoutée est immense. Avec l’avènement récent des chatbots, beaucoup d’expérimentations et de projets ont vu le jour et certains ont été un échec. Chez Keyrus Bot Factory, nous avons pris le pari de mettre en œuvre un duo gagnant avec deux savoir-faire du groupe Keyrus : la mise en œuvre de solutions de chatbots basées sur la puissance d’un moteur d’indexation. Cela a pour objectif d’améliorer la reconnaissance d’entités et d’accélérer l’apprentissage de l’intelligence conversationnelle. Parmi les grands défis rencontrés lors d’un projet chatbot, la détection de l’entité est sans doute la clé de voûte qui calibrera la réussite du projet.
Dans l’univers du bot, une entité est la granularité la plus fine permettant de déterminer la réponse à constituer. Elle peut également constituer une donnée recueillie explicitement par le chatbot. Prenons le cas d’un chatbot de type « Product Finder » dans le monde de l’assurance. Un utilisateur va s’exprimer de la sorte : « Bonjour, je souhaite connaître vos tarifs pour une assurance voiture. » L’intention exprimée par l’utilisateur est une recherche de produit « search-product ». La phrase de l’utilisateur contient plusieurs entités importantes : . « Assurance » : le produit recherché . « Prix » : l’information produit recherchée . « Voiture » : le type d’assurance recherchée
Dans cet exemple, la combinaison de la détection de l’intention « search-product » avec l’extraction des entités permettra d’exécuter un scénario de devis. Les technologies de traitement du langage naturel, aussi appelé Natural Language Processing (NLP), permettent de détecter des entités génériques dans les phrases des utilisateurs (par exemple des pays, des villes, des devises, des notions de durée ou de mesure, etc.). Mais comment faire pour détecter des entités très spécifiques au métier d’un client ? Deux scénarios sont alors possibles. Le premier se présente lorsque les valeurs possibles pour une entité métier sont limitées. La solution la plus simple est alors de constituer une liste de ces possibilités et d’implémenter un extracteur d’entités qui se reposera sur cette liste. Si nous reprenons notre cas d’assurance, on pourrait par exemple constituer une liste des types d’assurances : auto, moto, habitation, vie. Pour notre second cas, et toujours avec le même exemple, après que l’utilisateur ait indiqué qu’il recherchait un tarif pour une assurance auto, le chatbot va récolter les informations puis lui proposer un tarif. Nous allons donc avoir besoin d’une marque et d’un modèle, et c’est dans ce type d’usage qu’entre en jeu le moteur d’indexation.
L’idée ici est de laisser s’exprimer librement l’utilisateur. Lorsque le chatbot va lui demander « Ok, quelle est la marque de la voiture que vous souhaitez assurer ? », l’utilisateur aura la possibilité de cliquer sur un choix de plusieurs boutons mais également de répondre directement : « C’est une Volkswagen Corrado VR6 de 1992. » À ce moment-là, la mission du bot sera de renseigner les entités « Brand », « Model » et « Date ». Pour la date c’est très simple : les extracteurs génériques des NLP le feront. Pour la marque et le modèle, ce sera au tour du moteur d’indexation d’entrer en scène. Pour ce faire, la phrase complète de l’utilisateur va être envoyée à travers une requête du moteur d’indexation construite autour d’une multitude de règles sémantiques afin d’en extraire uniquement le contenu qui nous intéresse. Une fois la réponse du moteur d’indexation obtenue, le bot demandera la confirmation à l’utilisateur qu’il a bien trouvé le bon véhicule. Pour agrémenter l’expérience de ce dernier, il est facilement imaginable de répondre avec la photo du modèle: « Afin d’être certain que nous parlons du même véhicule, pouvez-vous me confirmer qu’il s’agit de cette Volkswagen Corrado ? »
Exemple d’illustration
Ce modèle peut être repris pour n’importe quel type de recherche de produit : « Je cherche une perceuse à percussion à moins de 200€ », « Vous avez un T-shirt blanc tout simple ? », « Qu’est-ce que tu as comme TV 4K ? ».
La force du moteur de recherche au sein d’un projet de chatbot ne s’arrête pas là. Il a aussi un rôle important une fois que la conversation est terminée car il permet d’aider à comprendre comment les utilisateurs conversent avec le chatbot et comment améliorer son intelligence conversationnelle. Il existe différents outils sur le marché permettant d’obtenir des analyses de conversations (Dashbot par exemple). Mais ces solutions sont très génériques et ne permettent pas d’obtenir toujours la granularité nécessaire. Chaque métier est différent et nécessite donc des analyses spécifiques. C’est pourquoi l’usage d’un moteur d’indexation post-conversation est nécessaire. Ce dernier permet de collecter les données issues de la conversation et de les indexer.
Une fois sauvegardé dans le moteur de recherche, il devient facile de créer des indicateurs sur-mesure pour répondre à différentes questions : . Quels sont les sujets les plus abordés par les utilisateurs ? . Quel est le parcours qui a été le plus souvent effectué ? . Quelle est la marque de véhicule la plus demandée ? . Est-ce que le chatbot comprend bien les questions des utilisateurs ? . À quelles heures mon bot est le plus utilisé ?
Vous avez encore des questions ? Parlons-en très vite !