Intelligence artificielle sous SPIP ?

All contributions published for previous SPIP versions

Je viens de voir que cet article était validé et donc accessible dans la partie publique. Initialement mon but était de récupérer des avis sur le projet pour voir s’il avait un réel intérêt. Depuis pas mal de choses ont été modifiée.

Je n’avais pas pris le temps de mettre à jour les informations et je vais me rattraper...

Le projet a donc avancé, mais il est en “sommeil” depuis un petit moment. Voici l’état d’avancement :
-  Modification graphique du bot
-  Simplification des tables MySQL, le nombre est réduit à 2
-  Base de connaissance plus conséquente (sur le site de test)
-  et quelques petites fonctions...

Pour faire simple, vous trouverez ci-joint un zip avec les sources et quelques infos...

Les mises à jour et infos supplementaires seront disponibles à l’adresse suivante :

http://www.free.knet.fr/rubrique.php?id_rubrique=8

PS : vous y trouverez aussi le bot...

*******************************************************
Ci-dessous, l’article d’origine...
*******************************************************

Tout est parti d’une phrase de ma femme :

“C’est nul ton truc, il ne cause même pas !”

Cette critique se portait sur des lignes de code PHP. Piqué au vif, j’ai relevé le défi.

J’ai sorti un script PHP basé sur le principe du Stimulus/Réponses avec analyse de la pertinence. Mais une simple page avec un encart de saisie et une simple réponse texte sur un fond de page blanche ne lui suffisait pas. Alors je lui est donné vie grâce à flash et je l’ai domicilié sur un site SPIP.

Il s’appelle Lili_Bot ...

Plus sérieusement, j’y ai ajouté une interface d’administration qui :

-  recense toutes les questions posées par les utilisateurs auxquelles le script n’a pu trouver de correspondance, afin de pouvoir améliorer son comportement
-  gère la liste des couples stimulus /réponses
-  permet d’attribuer une “expression faciale” aux réponses

Le script permet aussi d’effectuer une recherche sur un site SPIP (le nombre de réponses trouvées est pris en compte dans la phrase du bot.

Une version de demo en ligne à l’adresse suivante :

http://free.knet.fr

Il reste encore un bugs et quelques imperfections :
-  Au premier chargement celà ne fonctionne pas toujours, après actualisation plus de pb (bug du code ActionScript dans le swf)
-  Pas de travail graphique (ce n’est pas mon fort...)
-  La base de connaissance est réduite par manque de temps pour la compléter.

Voici quelques expressions enregistrées pour les tests :

-  “bonjour” ou “salut”
-  “qui est tu ?”
-  Quelques insultes (histoire qu’il puisse se défendre)
-  et d’autres à découvrir ...


petite doc sommaire

J’utilise 3 tables mySQL principales :

-  Tables des stimulus (phrase envoyée par l’utilisateur). Un stimulus est un ensemble de mot clef mis en majuscule, sans accents, sans caractère spécial. C’est avec les enregistrements de cette table que la phrase transmise est comparée. Les résultats sont classés par ordre de pertinence. S’il n’y a aucun résultat trouvé, la phrase transmise par l’utilisateur est “nettoyée”, puis enregistrée dans cette table. Ceci permet au bot de “savoir” que cette phrase lui a déjà été soumise et cela permet surtout à son administrateur de lui “apprendre” à répondre et ainsi d’affiner la base de connaissance en fonction des sujets abordés sur le site.

-   Tables des réponses C’est ici que l’on liste les réponses disponibles avec l’expression façiale correspondante.

-  Tables des correspondances On fait le lien entre les stimuli et les réponses. Un stimulus peut avoir plusieures réponses et inversement. Plusieures réponses pour un seul stimulus permet de donner plus de vie au bot (pas toujours la même réponse) et plusieurs stimulus pour une réponse permet au bot de mieux “comprendre” les différentes façon de dire la même chose.

-  Il existe une table additionnelle pour les utilisateurs, mais je compte utiliser celle de spip, pour pouvoir accueillir les visiteurs avec leur pseudo, s’ils sont enregistrés...

Bien sûr, tout cela est géré par une interface (Qui est d’ailleurs à améliorer au niveau de l’ergonomie).


Pièce jointe

Description du fichier lili_bot.zip :

Ensemble des swf et fla utilisés par lili_bot.

Un fichier text.php est fourni et permet de simuler une réponse. Pour l’utiliser il faut modifier la ligne 5. Il y a 3 éléments à renseigner :

&flash_reponse= (texte de la réponse)
&flash_image= (expression façiale à charger)
&flash_mot= (nombre de syllabe à prononcer)

Le pack est prêt à être utilisé en local, sans l’installer sur un serveur. Il suffit de lancer lilibot_v0_1.swf après décompression.

Toute proposition d’amélioration du code est plus que la bienvenue.


J’ai rédigé cet article (avec l’aide d’un bienfaiteur anonyme qui a refait la mise en page) afin de recueillir des avis pour savoir s’il est utile de finaliser ce script et d’en faire une contribution...
Merci de me faire part de vos commentaires

updated on 21 January 2007

Discussion

2 discussions

  • 2
    marabbeh

    Je suis très intéressé par l’IA. C’est pour ça que j’ai lu ta contrib. Mais je ne sais toujours pas ce qu’elle est censée faire. Et qu’elle est son but...

    • En fait ce bot a plusieures fonctions :

      -  Récupération du système d’authentification de spip, ce qui permet d’accueillir les utilisateurs par leur nom et leur permettre l’accès aux fonctions d’apprentissages.

      -  Intégration du bot dans le moteur de recherche spip (réponses composées avec les résultats de recherches)

      -  Discution basique

      -  Enregistrement des phrases ou mots sans correspondance dans le moteur de recherche Spip et dans la base de connaissance

      En ce qui concerne son but, c’est à chacun de voir ce qu’il souhaite en faire. Pour moi, c’était juste pour faire plaisir à ma femme ;-)

    • Jean-Marie

      Ca ressemble en effet au projet ALICE mais on est encore loin dans la création d’un web sémantique avec SPIP ou même d’un brin d’IA ...

    Reply to this message

  • 1

    Intéressant, mais n’est-ce pas avec toi que ta femme a envie de causer en fait?

    Amitiés.

    Reply to this message

Comment on this article

Who are you?
  • [Log in]

To show your avatar with your message, register it first on gravatar.com (free et painless) and don’t forget to indicate your Email addresse here.

Enter your comment here

This form accepts SPIP shortcuts {{bold}} {italic} -*list [text->url] <quote> <code> and HTML code <q> <del> <ins>. To create paragraphs, just leave empty lines.

Add a document

Follow the comments: RSS 2.0 | Atom