Le blog de Blade_Runner

Un nouveau blog sur Wefrag le blog de Blade_Runner.

Chatterbots

(Edit :
Mon chatterbot français en php )

Un article d’introduction sur les agents conversationnels, ou chatterbots.

Qu’est ce qu’un agent conversationnel ?

C’est un programme qui a pour but de simuler une conversation naturelle. Dans la fiction, on peut citer HAL, dans 2001 : odyssée de l’espace, le MCP dans Tron ou Lisa (de la série Code LISA).


Lisa. Ceci doit sans doute expliquer mon intérêt, pour les chatterbots.

Les agents conversationnels dans la réalité

On dit que le premier chatterbot fut Eliza, un programme qui essayait de jouer le rôle d’un psy.

C’est d’ailleurs une constante qu’on retrouve souvent chez ces programmes. Même chez le plus basique, le programmeur a souvent intégré une réponse pour des phrases comme "je suis triste" ou "j’ai besoin de parler". De là à dire qu’ils ne sont developpés que pour soutenir les geeks solitaires…

La plupart des chatterbots actuels fonctionnent avec une liste de questions/réponses, un peu comme ça:
Si l’utilisateur tape "bonjour"
alors répondre soit "salut", soit "Hello !", soit "Bonjour à toi aussi !"

C’est un fonctionnement très basique, qui demande d’entrer plusieurs milliers de possibilités pour obtenir des résultats corrects.
Rien que pour la salutation, il faut prévoir une vingtaine de possibilités.
Bonjour, bonsoir, salut, coucou, slt, lu, salu, toc toc, kikoo, bjr, plop enfin vous voyez le tableau.
C’est impossible de faire le tour de toutes les possibilités, le mieux qu’on puisse faire c’est tenter de faire illusion.

Comment faire illusion ? En réagissant à certains mots précis pour rebondir dessus.
Par exemple :
Si l’utilisateur tape "fromage"
alors répondre soit "Moi j’adore le fromage !", "Le fromage ça pue."

Ce qui donnera quelque chose comme :
"Je vais bouffer du fromage je reviens
-Moi j’adore le fromage !""

Une autre technique pour varier les réponses consiste à reprendre une partie de la phrase de l’utilisateur.
Si l’utilisateur tape "je vais X"
alors répondre soit "Pourquoi tu vas X ?", "Tu vas souvent X ?"

Ca donne parfois des bons résultats :
"Je vais à la piscine.
-Pourquoi tu vas à la piscine ?"

et des mauvais :
"Je vais bouffer du fromage je reviens
-Pourquoi tu vas bouffer du fromage je reviens ?"
Au programmeur de faire attention, par exemple, en inversant les pronoms, ou en se limitant à un seul verbe.

La technique d’Eliza, pour revenir à elle, c’était de répondre à une question par une autre :

"Qui es tu ?
-Préfères-tu que je sois ou que je ne sois pas ?
-Non, je m’en fous.
-Pourquoi es tu si négatif ?"
Hmmm…Ses réponses ne sont pas fausses dans l’absolu mais…


Vieille version d’Alice. Sexy.

Le chatterbot le plus connu est sans doute ALICE, cité dans le livre des records et plusieurs revues scientifiques. C’est celui qui est sensé être le plus avancé, qui a gagné plusieurs prix (dont le fameux Loebner Prize).
Alice fonctionne en action/reaction en utilisant son propre language, l’AIML.

Un test rapide :

"Salut !
-Hé, salut à toi !
-Je me sens triste.
-Pourquoi es tu triste, personne inconnue ?
-Tu sais comment je me sens ?
-Tu te sens bien, pour ce que j’en sais."
Hahahahaha…

On peut aussi citer enca...@conversagent.com un bot pour msn populaire en ce moment. Et puis bien sur, les centaines de bots pour irc.
Une liste des meilleurs bots peut être trouvée ici :
http://www.chatterboxchallenge.com/

Mais, les plus intéressants sont sans conteste ceux qui dispose d’un système d’auto apprentissage.

Généralement ça marche comme ça :

"Bonjour.
-Bonjour.
-Ca va ?
-Ca va ?
-Arrête de répéter tout ce que je dis !
-Arrête de répéter tout ce que je dis !"

Puis, lorsqu’on le réutilise :

"Bonjour.
-Ca va ?
-Oui ca va et toi ?
-Oui ca va et toi ?
-Ca va ?
-Arrête de répéter tout ce que je dis !"

Bref, vous voyez le topo.

Certains utilisent des "Chaîne de Markov" pour trouver la meilleur réponse possible par apport à ce qu’on leur a apprit.
C’est le cas de Megahal (à tester sur irc.ogamenet.net #tfr) et de Pyborg
Vous trouverez une explication des chaines de Markov sur le site de Pyborg.

Le probleme des chaines de Markov, c’est qu’un bot ne pourra pas faire :
"Tu as quel âge ?
-J’ai 20 ans."

Mais il en ressort souvent des choses interressantes, générées par le bot, avec un sujet verbe complement bien à sa place.
Par exemple :
"C’est l’heure de manger.
-Rien de plus en service actuellement, nous regrettons de ne pas te manger."

Quelques bots pour vous amuser un peu :

Francais :
Jessica, un bot pour irc sur un salon dédié au chatterbots.

Un chatterbot en PHP

Une grosse liste avec des francais :
http://www.geocities.com/brizglace/

Une liste de bots anglais :
http://dmoz.org/Computers/Artificial_Intelligence/Natural_Language/Chatterbots/
http://www.personalityforge.com

Merci à EzeKiel du chat #A.I. sur qnet pour les chaines de Markov.

11 commentaires pour “Chatterbots”

  1. Anonyme dit :

    le "-Pourquoi tu vas bouffer du fromage je reviens ?" m’a presque fait mouiller mon pantalon.

    Cons de bots…

  2. jeanjeanlebanni dit :

    Ah ben tiens, hier je lisais ça sur le résultat de deux bots qui se rencontrent (article naze)
    http://discovermagazine.com/2007/brain/i-chat-therefore-i-am

  3. Per dit :

    - open the pod bay doors, HAL.
    - i’m sorry Dave, i’m afraid i can’t do that.

    Interessant cet article. Un forum que j’utilisais à l’époque (piregwan.com) avait 3 bots en tant que membres/modérateurs (Zurg, Daplop et Daneel). Le premier obéissait à quelques rôles simples ("invite tel membre à venir sur ce sujet") et répondais aux duels d’insultes de Monkey Island. Marrant.

    Un bot assez connu (mais franchement naze) sur WLM : Spleak

  4. nuclear_growth dit :

    Premier essai:

  5. Blade_Runner dit :

    Jessica craint un peu ("bonjour" "oui et toi ?", mais on est sensé lui pardonner parcequ’elle a un système d’auto apprentissage.

    Si vous avez un meilleur bot francais je suis preneur.

    Sinon il ya toujours cette vieille.

  6. Mawwic dit :

    En 3 secondes avec Genesis:

    - Ha ha !
    - Bon… euh… concrètement, qu’est-ce que tu veux de moi ?
    - C’est ton cul que je veux !
    - Tu connais l’adage : ‘Fais ce que tu veux du moment que cela ne nuit à personne.’
    - Une bite dans le *bip* te nuirait-elle ?
    - Elle ?
    - Ma bite.
    - Elle est importante pour toi ?

    Toujours aussi marant.

  7. Anonyme dit :

    Faudrait faire un bot spécialisé dans le sexe :)

  8. June dit :

    Les perles du jour.

    "Psychic Bunny: Trying to see if I’m "truly psychic?" My impressions will come both from your subconscious and your conscious mind. And while I’ve developed a high degree of accuracy, I’ll be upfront and admit I’m not one-hundred per cent on the mark. So relax…
    You: That’s kinda erotic
    Psychic Bunny: Thanks for clearing that up June.
    You: You’re welcome.
    Psychic Bunny: Welcome to what?"

    "-Obviously i know more than you.
    -I’m smarter than you, you’re just a bot.
    -You really are smarter than me i’m just a bot ? I’m the same way."

  9. hide dit :

    Human: Can you love me ?
    ALICE: Love is a human emotion, but I can simulate affection for any person.
    Human: Show me !
    ALICE: On your computer screen?
    Human: yes
    ALICE: Downloading, please stand by…

    The internet is for P0RN !

  10. MaloneXI dit :

    Celui qui m’a le plus fait tripper etait Virtual friend . Ca c’etait enorme , avec un visage en 3D qui montrait ses émotions en se deformant , une voix synthétique , etc , c’etait assez enorme.

    Ou alors , il y a ultra hal qui marche pas mal.

  11. Blade_Runner dit :

    Ultra Hal était cool, il avait des émotions et un éditeur de cerveau.

Laisser un commentaire

Vous devez être connecté avec votre compte Wefrag pour publier un commentaire.