Blog ENI : Toute la veille numérique !
Accès illimité 24h/24 à tous nos livres & vidéos ! 
Découvrez la Bibliothèque Numérique ENI. Cliquez ici
Accès illimité 24h/24 à tous nos livres & vidéos ! 
Découvrez la Bibliothèque Numérique ENI. Cliquez ici
  1. Livres et vidéos
  2. Intelligence artificielle vulgarisée
  3. Hommage au premier ChatBot
Extrait - Intelligence artificielle vulgarisée Le Machine Learning et le Deep Learning par la pratique
Extraits du livre
Intelligence artificielle vulgarisée Le Machine Learning et le Deep Learning par la pratique
2 avis
Revenir à la page d'achat du livre

Hommage au premier ChatBot

Introduction

Dans le chapitre précédent, nous avons vu comment il nous était possible de créer une interaction entre l’Homme et la machine à l’aide de moyens sophistiqués que sont la détection de formes et la reconnaissance de lettres à l’aide de réseaux de neurones convolutifs.

Cependant, nous ne pouvions nous quitter sans avoir rendu hommage au premier ChatBot qui rendit possible également cette rencontre entre l’Homme et la machine avec des moyens techniques beaucoup plus simples. C’est également ce ChatBot qui, il y a dix ans environ, et par un hasard de lecture, nous a personnellement donné l’envie de découvrir ce qu’était l’intelligence artificielle. Nous avons donc souhaité partager avec vous, ce qui pour nous, fut le point de départ d’une belle aventure.

Eliza

Écrit par Joseph Weizenbaum (Allemagne) entre 1964 et 1966, le programme Eliza est le premier ChatBot jouant le rôle d’un psychiatre où l’utilisateur du programme n’est autre que le patient.

Comparé aux ChatBots actuels, Eliza fait pâle figure. Malgré son fonctionnement simple basé sur de la substitution de mot-clé, de nombreux utilisateurs ont cru qu’ils conversaient avec un vrai docteur !

1. Comment fonctionne Eliza ?

Lorsqu’une phrase est proposée à Eliza, l’algorithme recherche dans cette phrase un mot-clé dont il a connaissance et propose alors une réponse en fonction de ce mot-clé. Cette réponse étant dans la majeure partie des cas une question ouverte pour susciter l’utilisateur à poursuivre la conversation.

Par exemple :

  • Soit l’affirmation donnée par l’utilisateur : "Je voudrais une voiture."

L’algorithme a pour information que lorsqu’il reconnaît le mot-clé "Je voudrais", il doit extraire le texte situé après ce mot-clé et l’utiliser dans une phrase de réponse :

( 
   r'Je voudrais (.*)', 
   ( 
       "Peux tu  m'expliquer pourquoi tu as choisi %1 ?", 
       "Pourquoi veux-tu %1 ?", 
       "Pourquoi %1 ?", 
       "Qui d'autre sait que tu voudrais 1 % ?", 
   ), 
), 

La réponse devant être choisie au hasard parmi les quatre possible, les réponses émises par Eliza pouvant alors être :

  • Peux-tu m’expliquer pourquoi tu as choisi une voiture ?

  • Pourquoi veux-tu une voiture ?

  • Pourquoi une voiture ?

  • Qui d’autre sait que tu voudrais une voiture 

Nous vous invitons à remplacer le mot "voiture" par la phrase "savoir comment tu fonctionnes" pour vous rendre compte de la limite de ce fonctionnement :

  • Peux-tu m’expliquer pourquoi tu as choisi savoir comment tu fonctionnes

La complexité de ce ChatBot ne réside pas dans son codage ou bien encore sa compréhension de fonctionnement, mais dans la création des différents mots-clés...

D’autres ChatBots !

Le sous-module Chat du module NLTK (Natural Language Toolkit) offre l’implémentation de différents ChatBots tels qu’Eliza, Rude… fonctionnant sur le principe de la réflexion, c’est-à-dire la recherche de mot-clé et la construction d’une réponse à partir de ce mot-clé.

Si vous le souhaitez, vous pouvez saisir ces quelques lignes de code dans un nouveau fichier Python afin de les tester. Attention, le ChatBot Rude risque de quelque peu vous agacer dans ses réponses.

Les conversations réalisées avec ces ChatBots doivent nécessairement se faire en anglais.

from __future__ import print_function 
 
from nltk.chat.util import Chat 
from nltk.chat.eliza import eliza_chat 
from nltk.chat.iesha import iesha_chat 
from nltk.chat.rude import rude_chat 
from nltk.chat.suntsu import suntsu_chat 
from nltk.chat.zen import zen_chat 
 
bots = [ 
   (eliza_chat, 'Eliza (Pyschiatre)'), 
   (iesha_chat, 'Iesha (Adolescent junky)'), 
   (rude_chat, 'Rude (ChatBot abusif)'), 
   (suntsu_chat, 'Suntsu (Proverbes chinois)'), 
   (zen_chat, 'Zen (Perles de sagesses)'), 
] 
 
 
def chatbots(): 
   import sys 
 
   print('Quel ChatBot souhaitez...

C’est déjà la fin !

Ce cas pratique sonne également la fin de cet ouvrage. Au fur et à mesure de votre lecture et à travers des cas concrets, vous avez pu découvrir les aspects du Machine Learning et du Deep Learning. Nous avons essayé de rendre simples des concepts complexes et espérons y être parvenus.

Comme nous l’avons évoqué dans la présentation de cet ouvrage, celui-ci doit avant tout être considéré comme un point d’entrée à la compréhension et la mise en œuvre de projets gravitant autour de l’intelligence artificielle. N’en déplaise aux spécialistes, beaucoup de concepts ont été abordés de façon succincte, mais cette approche vous permet à présent de poursuivre votre aventure en ayant en tête les principes fondamentaux qui vous permettront entre autres de comprendre les différents articles et tutoriels que vous serez amené à lire sur Internet ou dans des ouvrages spécialisés.

Quelle suite à donner ? Il faut à présent vous lancer dans la réalisation de projets de Machine Learning et de Deep learning. Pour cela, nous vous invitons à réaliser les challenges présents sur le site Kaggle. Ceux-ci vous permettront d’asseoir vos compétences et d’en acquérir...