Chatbot, base d'un agent virtuel par analyse syntaxique

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 / Exemple :


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 :)

Codes Sources

A voir également

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.