2. Qui suis-je
• ingénieur INSA IF 2003
• co fondateur et directeur technique d’Yseop
• à présent CTO d’Addventa
Passions :
• NLP (Natural Language Processing)
• IA symbolique, Prolog, moteurs d’inférences…
Page 1/15
3. Document écrit en AsciiDoc et transformé avec Asciidoctor PDF.
Page 2/15
4. Les chatbots : pourquoi
Des faits :
• Succès des applications de messagerie : Facebook Messenger est l’app la plus téléchargée en 2016,
avec 1,2 milliard d’utilisateurs.
• "App Fatigue"
• Les chatbots sont un succès énorme en Asie :
◦ WeChat, 600 millions de membres
◦ tickets de cinéma, lotterie, voyages, virements
Une vision :
• Le langage est universel.
• "Bots are the new apps" - Satya Nadella, Microsoft.
• Les chatbots sont la première étape. Des interfaces purement vocales suivront.
• Parfois en remplacement d’applications mobiles simples.
• Approche Graphical UI (GUI) → Conversational UI (CUI)
• Les applications de messagerie sont les plates-formes (OS) de ces chatbots.
Page 3/15
5. Comment marche un chatbot
Fonctionnalités
Un chatbot doit savoir dialoguer, càd :
1. répondre à un énoncé (un message entrant)
2. gérer une conversation
Page 4/15
6. Répondre à un message entrant
Un chatbot reçoit un message et doit y répondre. Comment ?
• Comprendre ce que dit l’utilisateur
◦ Intention et Entités : "je veux manger une pizza ce soir" → intention ="recherche restau" + entité
type = "italien" + entité quand = "ce soir"
◦ Approche par patterns ou par apprentissage (ML) pour trouver Intentions et Entités
• Répondre à l’utilisateur : via des conditions et des phrases à trous
Patterns, ML :
• pattern : on écrit explicitement des patterns qui vont matcher des énoncés
je veux manger une pizza ce soir => (~manger ~type ~quand)
~quand: [demain "ce soir" "maintenant" ~date]
~type: [~italien thaï chinois]
~italien: ["pizza" "pizzeria"]
• ML : exemples classés
intention: "recherche restau"
je veux manger une *pizza* *ce soir*
*pizza* *ce soir*
réserver restau *thaï* *demain*
Page 5/15
7. Gérer une conversation
• Les enchaînements sont le souvent gérés via des arbres de dialogue :
• Gérer une conversation c’est aussi savoir passer d’un sujet de conversation à un autre.
Page 6/15
8. Et l’IA dans tout cela ?
Un chatbot n’a pas d’intelligence en dehors de la gestion des conversations.
Un moteur de chatbot se combine avec :
• un accès à des données intéressantes :
◦ compte client
◦ bases de données, moteurs de recherche, simulateurs…
• d’autres technologies :
◦ moteur de règles
◦
BPM
◦ analyse de sentiments
◦ génération de textes
◦ réseaux de neurones
La combinaison de quelques composants "intelligents" donne une impression globale d’IA.
Page 7/15
9. Les technologies de chatbot
Aperçu des technologies
Il existe plus d’une centaine de plate-formes pour construire des chatbots.
Certaines sont très simples, sans programmation. Votre chatbot en 1h (ou 30 min, ou 5 min, etc.).
Les GAFA construisent des stacks et API orientées IA et NLP, avec une brique chatbot :
• IBM Watson : Conversation, NLU, Classifier, Tone Analyzer, Retrieve and Rank…
• Microsoft Cognitive Services: LUIS, Bing Spell Check, Language Understanding, Text Analytics…
• Amazon AI : Alexa, NLU, ML, Deep Learning…
• Google : Api.ai, Cloud Natural Language API…
• Facebook : Wit.ai, DeepText…
Points d’attention :
• Scalabilité lorsque la complexité augmente.
• Versioning.
• NLU, support réel des langues : correction orthographique, gestion des formes fléchies.
• Cloud uniquement ou on premise.
Page 8/15
10. Il y a des alternatives open-source
Entre autres :
• ChatScript : moteur de chatbot
• rasa.ai / MITIE : intent classification and entity extraction
Page 9/15
11. ChatScript
Test de Turing et Prix Loebner
Le test de Turing est un test d’intelligence artificielle fondé sur la faculté d’une machine à imiter la
conversation humaine. Décrit par Alan Turing en 1950, ce test consiste à mettre un humain en
confrontation verbale à l’aveugle avec un ordinateur et un autre humain.
Le Prix Loebner est une compétition annuelle qui couronne les agents conversationnels satisfaisant le
mieux les critères du test de Turing. Cette compétition a été créée en 1990.
Depuis quelques années, ce sont les chatbots développés avec ChatScript qui gagnent : 2010 gagnant,
2011 gagnant, 2012 2ème, 2013 3ème, 2014 gagnant, 2015 gagnant, 2016 3ème.
Page 10/15
12. ChatScript - le language
ChatScript est un langage dédié à l’écriture de chatbots.
C’est un langage complet, avec un compilateur, un interpréteur, un débogueur etc. Développé depuis
2010.
Taille du code des chatbots Loebner :
• gagnants d’ancienne génération (AIML) : 200 000 règles (en XML…)
• ChatScript : 15 000 règles
Du code :
u: ( !~negativeWords I * ~like * _~meat )
You like _0.
Page 11/15
13. Zoom sur les couches de NLU de ChatScript
Composant Description Exemple
tokenizer Découpage en mots (token). j’y vais aujourd’hui → j' + y + vais
+ aujourd’hui
dictionnaire Permet la correction
orthographique.
imobilier → immobilier
immobiliere → immobilière
lemmatiseur Trouve les formes canoniques :
"belles" = "beau" au féminin
pluriel.
elle est belle / elle était belle →
être beau
j’annualise / j’ai annualisé → je
annualiser
ontologies "choux fleur" est un "légume" je mange des légumes / j’ai
mangé des légumes / je mange
des carottes / je consomme du
choux-fleur → je * ~manger *
~légume
Page 12/15
14. ChatScript - Eléments techniques
• écrit en C++ ; Linux ou Windows ; open source (MIT)
• indépendant de tout canal
• Sait s’inscrire dans une chaîne d’intégration continue :
◦ de vraies sources : gestion de configuration (Git, SVN etc.) pour faire du travail collaboratif
◦ automate de non régression
◦ outils de trace, de debug
• 10 000 conversations simultanées sur un 8 cœurs.
• Capacité à faire fonctionner de très gros chatbots (Loebner : 15 000 règles).
• Pas d’interface graphique pour gérer les règles
Page 13/15