EmarocBot : une intelligence artificielle sur twitter


     9


Alaa-eddine

Il y a quelque temps j’avais mis en place un tchatbot intelligent sur un forum PHPBB2, avec la migration vers PHPBB3 et faute de temps je n’ai pu porté ce code …
à l’époque je m’était basé sur ALICEBOT, une intelligence artificielle alimentée avec des bases de connaissance au format AIML.

le projet alicebot semble aujourd’hui au point mort … très peu d’implémentations ont vu le jour depuis …

dernièrement j’ai décidé de faire un petit clein d’oeil à ALICEBOT en lui offrant une réincarnation 2.0 … j’ai décidé d’implémenter un nouveau ALICEBOT sur twitter que j’ai baptisé @EmarocBot

Après avoir parcouru quelques projets de bots AIML, j’ai fini par revenir à l’une des première implémentations en PHP, il s’agit de program-E, une implémentation PHP qui n’est plus mise à jour depuis 2006 mais très efficace, puisqu’elle ne contient aucune couche superflue (interface utilisateurs, graphique …ou autre) juste des tables MySQL, plus l’implémentation du “cerveau” du bot interprétant l’AIML.

J’ai repris donc ce code, et avec quelques ajouts mineurs, j’ai pu intégrer ce dernier à Twitter.

pour celà, j’ai mis en place deux modules qui se lancent périodiquement avec un cron job.

  • Le premier module  cherche les derniers tweets publiques dans les quels on pose des questions, avec une préférence des sujets traitant de l’intelligence artificielle.
  • Le deuxième module parcours tout les messages envoyés au bot et y répond.

Ce qui est interessant avec les bots AIML, c’est qu’ils apprennent au fur et à mesure de leurs conversations : par exemple  si le bot vous demande votre vrai nom et que vous le lui donnez, il y a de fortes chances qu’il s’en souvienne et vous appel avec lors de votre prochaine conversation.

 

L’intelligence du bot est déterminée par sa base de connaissance, qui est un ensemble de fichiers AIML, j’ai comparé beaucoup de bases de connaissances diffusées sur le web, et malheureusement celles en Français ne permettent pas d’avoir des conversations interessantes, j’ai donc alimenté le bot avec une base en Anglais.

Ensuite, j’ai définit la personnalité du robot : nom, couleurs préfféres, date et lieu de naissance …etc , le bot peut faire référence à ces informations lors de ses conversations ; exemple :  si vous lui demandez son nom il va répondre EmarocBot.

Quelques limitations imposées par twitter peuvent interrompre le fonctionnement du bot de temps à autre, si vous essayer de parler à @EmarocBot et qu’il ne répond pas essayer quelques heures plustards.

Après quelques jours de tests, j’ai constaté quelques comportements interessants entre les utilisateurs de twitter et EmarocBot ; en effet, même si les internautes savent qu’ils ont à faire à un bot, qui n’a ni sentiments ni cerveau, ils ont parfois un comportement “humain” avec : en le remerciant par exemple de leur avoir tenu companie alors qu’ils s’ennuyaient, en le considérant comme un vrai ami, en lui demandant de les follower (ce qu’il fait d’ailleurs) … il y en a même qui souhaitent une bonne nuit à EmarocBot 🙂 …

 

Si vous aussi vous voulez parler à EmarocBot il suffit d’envoyer un tweet à @EmarocBot, le bot va vous répondre et vous pourrez engager la discussion. notez bien qu’il ne parle et ne répond qu’en anglais 😉

 

 

 

 



 

A lire également

 
  • Pub

    Merci pour l’article c’est vraiment intéressant…merci pour l’info…

  • Laurent j

    Le projet php a été repris, il s’appelle program-o est-ce que je pourrais en savoir plus sur ton implémentation? Je voudrais faire revivre johnny5 (short circuit)

  • Alaa-eddine

    Bonjour,
    en effet program-o est parmis les implémentations que j’ai testé et j’ai le plus aprécié, mais j’ai noté certaons bugs, parfois sans raison le bot n’arrivait plus à répondre.
    et puis program-o aussi m’a semblé abandonné, j’ai donc pris la plus light des implémentations, sans interface utilisateur sans rien.

    en ce qui est de mon implémentation j’ai simplement ajouté les module twitter, mais actuellement le compte twitter du bot a été suspendu (suspition de spam probablement), je suis en contact avec le support twitter pour le réactiver 🙂

  • Laurent J

    Bonjour Alaa-eddine

    Pour program-o faut que je le réinstalle. Je crois qu’ils ont eu des problèmes d’hébergement, la dernière mise à jour est de février 2011

    Y’a un module twitter pour program E ? si oui, je veux bien l’adresse du code 🙂

    “Le premier module cherche les derniers tweets publiques dans les quels on pose des questions, avec une préférence des sujets traitant de l’intelligence artificielle”

    c’est peut être ce module qui pose problème, ça doit être interprété comme du spam non ?

    laurent

  • Alaa-eddine

    Le module twitter pour program E dont je parle c’est juste un bout de code que j’ai écris, j’attend justement de mettre le code au propre pour le publier.

    sinon en ce qui concerne le blocage du compte de mon bot, j’ai une la confirmation de suspension définitive. je vais donc créer un nouveau compte.

    tu as peut être raison pour le comportement “spameux”, même si j’ai bien expliqué ce fonctionnement au support de twitter auparavant et un membre du support l’a approuvé…

  • Laurent J

    J’espère que tu vas vite le laver 🙂

    Une idée comme ça, peut être que tu pourrais t’en servir pour amorcer la conversation et renvoyer sur une page web pour continuer la conversation, ça limiterait le nombre d’envoi de tweet et de ne pas passer pour un comportement spammeux. (j’avoue que c’est moins fun comme interaction)

    Pour les intelligence en français, y’en a qu’un que je trouvais bien abouti, mais malheureusement a disparu de la circulation, elle s’appellait opale.

    Les dernier fichiers modifié par Siewlan Tan sont complètement erronnée et ne veulent plus rien dire comparé a ceux de campion (le père d’opale)

    La difficulté de trouver une AI en français réside dans le fait que la construction sémantique des phrases en français est plus compliquée qu’en anglais, et que souvent on est obligé de créer des pattern plus précis et ensuite faire des réductions.

    D’un autre coté en partant d’une AI vierge, on part sur des bases plus saines, en parlant certes de moins de sujet, mais en donnant des réponses de meilleure qualité, et les fichiers des bots en général sont trop empreint de la personnalité qu’a donné le botmaster.

    Y’a une société en france qui s’est spécialisée et a bien développé l’AI mais ils veulent sûrement pas partager leur code.

  • laurent J

    Bonjour alaa-eddine,

    J’ai voté pour le golden blog award 😉

    Apparemment emarocbot ne répond plus, j’imagine que tu n’as pas réussi à éviter la suspension du compte.

    Je sèche toujours sur la connexion entre l’AI et twitter, j’ai pas trouvé de ressources

    j’ai commencé à remplir mon ai avec les paroles du film short-circuit (via pandorabot) link to pandorabots.com

    Si tu as un petit bout de code à me dépatouiller, je suis preneur

    Merci

    laurent

  • Alaa-eddine

    Salut Laurent,
    Merci pour ton vote 🙂
    concernant le bot, comme tu as pu le constater je n’ai pas pu le réactiver et depuis je n’ai pas eu le temps de revoir l’algo pour éviter un ban…
    vue que je n’ai pas encore mis le code au prore, je vais essayer de récupérer les bouts de code qui permettent l’envoi à twitter et te les enverrais directement par email.

    🙂

  • Alaa-eddine

    Désolé pour le retard laurent, je viens de t’envoyer une réponse par email