Alexandre Mascellino


Projet ChatBot

Projet universitaire de création d'un ChatBot répondant à des questions de culture générale.

Présentation

Pour un projet universitaire, nous devions réaliser un ChatBot permettant de répondre à des questions de culture générale.
Ces questions, ainsi que leur(s) réponses(s), sont stockées dans des fichiers textes accessibles par le ChatBot.

Dans les questions que posait l’utilisateur, nous devions coder le mécanisme qui permet au ChatBot de découper cette question en mots clés et mots outils. (Ex: Qui a peint la Joconde ? Ici, "Qui a", "la" sont des mots clé, "peint" et "Joconde" sont des mots outils).

Le ChatBot devait reconnaître le même pattern dans le fichier des réponses et ainsi répondre à la question. Parfois une même question avait plusieurs réponses pour diversifier les réponses du ChatBot.

Thésaurus

De cette manière, lorsque l'utilisateur posait la question "Qui a peint la Joconde ?", la réponse associée "La Joconde a été peinte par Léonard De Vinci" ne pouvait pas sortir car "peint" et "peinte" ne sont pas les mêmes mots. De même pour "Comment se nomment les habitants de Grenoble" et "Les habitants de Grenoble s'appellent les Grenoblois".

Pour régler ce problème, nous avons créé un Thésaurus permettant d'associer des synonymes. Par exemple "peint" avec "peinte" et "nomment" et "appellent".

Apprentissage

Nous avons aussi permis au ChatBot d'apprendre la réponse à une question. Lorsqu'il ne sait pas répondre, nous pouvions lui dire "Je vais te l'apprendre." et le ChatBot récupère la réponse donnée pour l'associer avec la question posée précédemment. La question et la réponse sont écrites dans le fichier, ce qui lui permet de ne pas les oublier lorsqu'il redémarre.

Sur l'image, la saisie utilisateur est en vert.

Réponse en contexte

Et pour terminer, nous avons aussi donné la capacité au ChatBot de répondre en contexte. Lorsqu’une question est posée (comme "Qui a peint la Joconde ?") nous pouvions simplement dire "Quand ?" et le ChatBot répond "La Joconde a vraisemblablement été peinte entre 1503 et 1507.". Ensuite nous pouvions simplement demander Où ? et il répond "La Joconde aurait été peinte sur les bords du lac de Côme en Lombardie."

Rendu final

Nous devions pour terminer le projet en lui-même, rédiger un rapport en anglais décrivant ce que nous avions fait ainsi qu’une évaluation du coût algorithmique du fonctionnement du ChatBot.

Ce projet m’a appris à travailler en binôme avec une contrainte de temps assez forte (1 semaine) et des consignes assez précises et strictes. Malgré le stress et les contraintes, je suis très fière du résultat que nous avons obtenu.