begin process at 2012 02 09 02:05:18
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

ActionScripts

 > CHATBOT, BASE D'UN AGENT VIRTUEL PAR ANALYSE SYNTAXIQUE

CHATBOT, BASE D'UN AGENT VIRTUEL PAR ANALYSE SYNTAXIQUE


 Information sur la source

Note :
8,25 / 10 - par 12 personnes
8,25 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10
Catégorie :ActionScripts Niveau :Initié Date de création :01/10/2003 Vu / téléchargé :17 422 / 1 913

Auteur : BlackWizzard

Ecrire un message privé
Site perso
Ce membre participe au partage de revenus publicitaires
Commentaire sur cette source (22)
Ajouter un commentaire et/ou une note


 Description

Voici une source qui sert de base.

realisé sous forme de chat avec un personnage virtuel,
le programme recupere le texte, decompose la phrase, et compare a l'aide d'operations logiques les mot afin de les comparer a un index sous forme de xml.
il repond ensuite a une phrase pre-ecrite parmis les reponses possibles.

Le plus gros du travail consiste a creer l'index XML.



Source

  • Voici comment il fonctionne ::
  • voici un exemple de noeud XML:
  • <test>
  • <wordlist>
  • <word op='and' value='tu' />
  • <word op='and' value='bien' />
  • <word op='and' value='?' />
  • <word op='not' value='fuck' />
  • </wordlist>
  • <answerlist>
  • <answer value='ça va bien, et toi?' />
  • <answer value='ça px aller, et toi, tu va bien?' />
  • <answer value='super, et toi?' />
  • <answer value='hyper bien! et toi?' />
  • </answerlist>
  • </test>
  • <test></test> delimite le noeud analysé.
  • <worldlist> delimite la liste des mots clés dans la phrase analysé.
  • <word op='OPERATOR' value='STRING'> est la balise qui indique le mot clé (type string) et op est l'operateur de ce mot, qui pourra etre :
  • - AND: le mot doit se trouver dans la phrase (sinon on passe direct au noeud suivant)
  • - OR: l'un des mot en OR doit se trouver dans la phrase. si il n'y a qu'un seul OR dans la liste de mots, alors il sera considéré comme un AND.
  • - NOT: Le mot NE DOIT PAS se trouver dans la phrase. si ce mot est trouvé, on passe au noeud suivant.
  • avec l'exemple ci-dessus, si dans la phrase il y a le mot 'tu' ET le mot 'va' ET le mot 'bien' MAIS PAS le mot 'fuck', alors le programme va retournée en Random l'une des phrases du noeud <answerlist>.
Voici comment il fonctionne ::
voici un exemple de noeud XML:

<test> 
      <wordlist> 
         <word op='and' value='tu' /> 
         <word op='and' value='bien' /> 
         <word op='and' value='?' /> 
         <word op='not' value='fuck' /> 
      </wordlist> 
      <answerlist> 
         <answer value='ça va bien, et toi?' /> 
         <answer value='ça px aller, et toi, tu va bien?' /> 
         <answer value='super, et toi?' /> 
         <answer value='hyper bien! et toi?' /> 
      </answerlist> 
</test> 

<test></test> delimite le noeud analysé.
<worldlist> delimite la liste des mots clés dans la phrase analysé.
<word op='OPERATOR' value='STRING'> est la balise qui indique le mot clé (type string) et op est l'operateur de ce mot, qui pourra etre :
- AND: le mot doit se trouver dans la phrase (sinon on passe direct au noeud suivant)
- OR: l'un des mot en OR doit se trouver dans la phrase. si il n'y a qu'un seul OR dans la liste de mots, alors il sera considéré comme un AND.
- NOT: Le mot NE DOIT PAS se trouver dans la phrase. si ce mot est trouvé, on passe au noeud suivant.

avec l'exemple ci-dessus, si dans la phrase il y a le mot 'tu' ET le mot 'va' ET le mot 'bien' MAIS PAS le mot 'fuck', alors le programme va retournée en Random l'une des phrases du noeud <answerlist>.

 Conclusion


En passant par une page php qui genere un xml deja indexé, il est tres facile de creer un moteur de recherche du style ask jeeves (www.ask.com).

Vous pouvez aussi en faire un bot de moderation en le connectant, via un server socket et les XMLSocket, a un server irc, ou meme le conencter tres facilement a mon austre source, le chat XML via server php.

Bref, les possibilités sont ennormes avec un index xml bien géré, et le sont encore plus si cette index est relié dynamiquement a un base de donnée.

Ce qui est dans la source n'est qu'un squelette, a vous de construire le reste selon vos envies ;)

Si vous utilisez ce moteur, merci de preciser sur le visuel, ou de me prevenir, pour que je vois si ça vous est utile ou non :)

 Fichier Zip

Les Membres Club peuvent télécharger directement un fichier contenu dans le zip sans télécharger le zip en entier !
  • ai.swfTélécharger ce fichier [Réservé aux membres club]Voir ce fichier12 971 octets
  • ai_mx.flaTélécharger ce fichier [Réservé aux membres club]143 872 octets
  • ai_mx2004.flaTélécharger ce fichier [Réservé aux membres club]217 600 octets
  • alien.xmlTélécharger ce fichier [Réservé aux membres club]Voir ce fichier4 822 octets

Télécharger le zip


 Sources du même auteur

Source avec Zip Source avec une capture SPORE-LIKE DEMO
Source avec Zip Source avec une capture LINECHART / AREACHART : COMPOSANT AS2, SOURCE XML, STYLE PAR...
Source avec Zip COURS FLASH: COMMUNICATION FLASH/PHP
Source avec Zip 3D TEMPS REEL EN AS2
Source avec Zip Source avec une capture CLASS PIECHART: CODE ET COURS (8 PAGES FLASHPAPER/WORD)

 Sources de la même categorie

Source avec Zip ZOOM SUR UNE IMAGE par yasdar
Source avec Zip Source avec une capture UN PEU DE MATH par yasdar
Source avec Zip Source avec une capture PARTICULE SYSTEM par yasdar
Source avec Zip Source avec une capture GALLERIE PHOTO AVEC XML par yasdar
Source avec Zip Source avec une capture MP3 LAYER NICE &SMALL par yasdar

Commentaires et avis

Commentaire de zappan le 01/10/2003 22:19:08

C'est génial :) ça me rappelle un peu le principe d'Alice bot, merci pour cette contrib' :)

Commentaire de tom le 02/10/2003 12:02:26 administrateur CS

il manque de discution, ton bot, mais c'est une super source!

Commentaire de BlackWizzard le 02/10/2003 17:47:25 administrateur CS

il manque de discution car G tjour eu la flemme de creer l'index xml...
mais je pense qu'en tant que moteur de recherche, ça px faire original...

Commentaire de tom le 02/10/2003 20:20:16 administrateur CS

J'ai vu le xml, c'est sur qu'apres il faut se creuser les meninges un max pour rediger un xml avec du poil au pattes... Mais ca peut etre marrant, tu peux creer apres des 'personnages' differents...

Commentaire de mdog le 05/10/2003 09:00:05

exelent, tres bon travail, on voit que tu a du y passer du temp, ta source est BLINDEE !

Commentaire de BlackWizzard le 05/10/2003 12:51:05 administrateur CS

le code C pas encore trop long.
Pour cette source, ya le compo, que G codé pour une autre appli, mon chat avec smileyx, donc ça compte pas vraiment,
mais cette source, c pour moi uniquement la fonction de parsing.

et pour la coder, C assez rapide, le plus compliké, CT trouver une structure du xml qui permet de bien preciser les operateurs des mots, et la liste de reponses.

Commentaire de dafunker le 20/12/2003 19:26:03

C genial, bravo :D
Merci pour les commentaires :)

Commentaire de bechirmat le 02/01/2004 14:42:48

c bien mais il te reste de boulot a faire

Commentaire de x0x le 08/06/2004 18:31:12

Salut, jvoudrais ajouté plus de mots sur ton IA mais je sais pas comment peut tu meclaircir stp ?

Commentaire de BlackWizzard le 08/06/2004 18:54:02 administrateur CS

avant de poser ce genre de question, li le texte du post stp...

Voici comment il fonctionne ::
voici un exemple de noeud XML:

&lt;test&gt;
      &lt;wordlist&gt;
         &lt;word op='and' value='tu' /&gt;
         &lt;word op='and' value='bien' /&gt;
         &lt;word op='and' value='?' /&gt;
         &lt;word op='not' value='fuck' /&gt;
      &lt;/wordlist&gt;
      &lt;answerlist&gt;
         &lt;answer value='ça va bien, et toi?' /&gt;
         &lt;answer value='ça px aller, et toi, tu va bien?' /&gt;
         &lt;answer value='super, et toi?' /&gt;
         &lt;answer value='hyper bien! et toi?' /&gt;
      &lt;/answerlist&gt;
&lt;/test&gt;

&lt;test&gt;&lt;/test&gt; delimite le noeud analysé.
&lt;worldlist&gt; delimite la liste des mots clés dans la phrase analysé.
&lt;word op='OPERATOR' value='STRING'&gt; est la balise qui indique le mot clé (type string) et op est l'operateur de ce mot, qui pourra etre :
- AND: le mot doit se trouver dans la phrase (sinon on passe direct au noeud suivant)
- OR: l'un des mot en OR doit se trouver dans la phrase. si il n'y a qu'un seul OR dans la liste de mots, alors il sera considéré comme un AND.
- NOT: Le mot NE DOIT PAS se trouver dans la phrase. si ce mot est trouvé, on passe au noeud suivant.

avec l'exemple ci-dessus, si dans la phrase il y a le mot 'tu' ET le mot 'va' ET le mot 'bien' MAIS PAS le mot 'fuck', alors le programme va retournée en Random l'une des phrases du noeud &lt;answerlist&gt;.

Commentaire de masterpingouin le 10/01/2005 21:18:44

Génial ton code mais ya une couille dans tes noeuds, j'ai l'impression que le swf analyse trop vite la phrase tapé car il est incapable de faire la différence entre: "how do you do," et "Can you tell me how it work?

EX:
<test desc='Hello'>
   <wordlist>
<word op='and'>how</word>
<word op='and'>do</word>
<word op='and'>you</word>
<word op='and'>do</word>
   </wordlist>
   <answerlist>
   <answer>je vais bien, et toi?</answer>
   <answer>ca peut aller, et toi, tu vas bien?</answer>
   <answer>super, et toi?</answer>
   <answer>hyper bien! Et toi?</answer>
   <answer>ca va tres bien, je te remercie ! Et toi?</answer>
   </answerlist>
   <anim value='smile' />
   <awaiting value='0' />
   <waitfor value='0' />
</test>
<test desc='Explaination'>
   <wordlist>
<word op='and'>how</word>
<word op='and'>work</word>
   </wordlist>
   <answerlist>
   <answer>balblabalbla?</answer>

   </answerlist>
   <anim value='smile' />
   <awaiting value='0' />
   <waitfor value='0' />
</test>

Commentaire de BlackWizzard le 10/01/2005 22:46:46 administrateur CS

je sais pas trop... c'est possible, le code est pas terrible, ça meriterai une reecriture pour bien fonctionner...

Commentaire de MATHIS49 le 11/05/2005 12:49:09

hello
ya t'il une animation d'un personnage virtuel ?
cf : <anim value='colere' />
Si oui je ne vois rien :(, comment faire ?
Merci

Commentaire de chanelone le 21/05/2005 13:42:40

ouais.. Sérieux beau boulot mais ya des putains de bugs dans tes noeuds, je vais voir si je peux trouve un moyen d'arranger ça...

Commentaire de iseb le 24/08/2005 04:01:50

hello, le script semble ne plus marcher quand il y a des "and" dans le xml. quelqu'un a t il reussi a le faire fonctionner correctement :) ?

Commentaire de mirabo le 26/08/2005 10:19:25

Source bien pensée pour des non experts Flash comme moi.
Toutefois, qqun saurait-il implémenter cette fonction dans le .fla :
- écrire la réponse du bot avec un délai randomisé de 2 à 8 sec ?

Autres questions :
- Comment fixer la couleur du texte du bot ?
- Chanelone, as-tu réglé qques bugs des noeuds XML ?
- Comment supprimer les bords solides du calque défilant contenant la discussion ?
- Avez-vous remarqué que ces bords solides s'épaississent lorsque la "discussion" est longue ?
- Peut-on rendre cliquables des liens http dans la fenêtre de discussion ?
- Comment afficher un message de bienvenue dans la fenêtre de discussion ?

ID Dvpt ultérieurs :
- réinjection par le bot d'éléments antérieurs dans la discussion (tester : www.panoplie.org), du pseudo, de la ville, du sexe.
- affichage d'éléments temps réel : date, heure, news AFP ...

De mon côté, j'ai habillé mon chat avec l'interface de talk.google, je laisserai l'url ici...

Commentaire de Brendarth le 02/12/2005 12:57:15

Très bonne source.

Au passage : Pour les amateurs de RPG, le système est facilement réutilisable pour envisager des discussion par mots-clés avec des PNJ importants (mais attention au temps de travail necessaire pour faire les fichier XML !!!) ;)

Commentaire de Fantole le 07/05/2007 19:36:44

Pfiouuuuu la source date à ce que je vois.
Je suis tombé dessus et je dois dire que c'est pas mal du tout.

J'ai pas testé en approfondie encore mais c'est la classe.
Sa peux permettre de faire du support de premier degré ou de présenter des produits, etc...

Franchement j'adopte

Bon boulot ;)

Commentaire de zenwebeur le 26/05/2007 22:40:53

J'approuve à 500 % ce type de code.

Je recherchais exactement ça mais si quelqun a reussi à debuggé le code xml ??????? je suis preneur.

Il mérite qu'on y bosse un peu ce code (génialissime)

Commentaire de JCpp le 17/07/2007 20:01:37

Bonjour
Mon projet est de refaire Jenny en Flash.
Je reprend se code pour l’améliorer et j’aurai besoin d’aide.
http://ia.jenny.free.fr/Charger%20source.htm
Merci
@+

Commentaire de jcvar83 le 02/08/2009 19:34:34

Salut,

Perso j'ai trouvé mon bonheur avec ce code. Vraiment extra !
Par contre, est il possible de marquer une pause avant les réponses, histoire de faire un peu plus naturel ?

Merci à blackwizzard....
JC

Commentaire de golgothe le 24/11/2009 16:08:17

Bonjour, le fichier zip semble endommagé et je ne parviens pas à le décompresser. J'ai essayé avec winzip, 7zip et izarc.

Es ce que quelqu'un pourrait me dire comment faire ?

Merci

 Ajouter un commentaire




Nos sponsors


Sondage...

CalendriCode

Février 2012
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
272829    

Consulter la suite du CalendriCode

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 2,933 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales