CHIMROD

PyBorg

Le projet PyBorg

    PyBorg est un bot parlant écrit en python. Il s'agit d'un programme capable de se connecter sur IRC, qui enregistre les phrases et les structures qu'il peut lire, et se sert de ces données pour générer des réponses quand on lui parle. Il utilise le principe des chaînes de Markov pour générer les réponses.

Le principe :

    De la même manière que Megahal[1], PyBorg est un bot qui "apprend" la langue au fur et à mesure que l'on lui parle. Il n'est pas programmé pour répondre selon une langue particulière, mais peut répondre dans toutes les langues, si sa base de donnée le lui permet. A chaque fois que l'on lui présente une phrase, il enregistre le contenu de la phrase, ainsi que les relations entre les mots. Au moment de générer une réponse, il va se servir de ces informations pour contruire la réponse, mot par mot.

    Par exemple, les mots "ça" et "va" sont la plupart du temps suivi par le mot "bien", "pas" mais jamais du mot "maison". Lorsque le programme aura choisi de répondre en commençant sa réponse par le mot "ça", il y a de forte chance pour qu'il continue avec les mots "va" et "bien".

    Pour amorcer la réponse, le programme choisi un mot dans la phrase qu'il reçoit en entrée. L'idéal serait d'identifier le prédicat de la phrase, mais devant la difficulté de gérer les variantes des verbes conjugués ( et cela serait propre à chaque langue et contraire à l'esprit du programme ), le programme choisi le mot qu'il connaît le moins bien, ce qui permet de mettre de côté tout les mots grammaticaux, ainsi que les mots qui n'apportent aucun sens à la phrase. Ensuite, il génère la phrase à reculons pour tout ce qui précède le mot choisi, puis, il génère la réponse à partir du mot retenu.

    Exemple, en demandant "Es tu un robot, oui ou non ?", le programme retient le mot "robot" puis génère sa réponse :
    "robot" est précédé de "un" et "un robot" est souvent précédé de "t".
    Puis,
"un robot" est suivi de "," "c" puis "," "c" est suivi de "est" et enfin "c est" sera suivi de "ça"Réponse : "T un robot, c'est ça"

    Cela permet de générer des réponses, qui, si l'interlocuteur ne sait pas avec qui il parle, permettent de mener une conversation.

Le fonctionnement :

    Pour lancer le programme, selon que l'on veut le tester en ligne ou hors-ligne, il faut lancer `pyborg-irc.py` ou `pyborg-linein.py`. En fonctionnement hors-ligne, il suffit de taper sa phrase, puis de presser <ENTRÉE> pour que le programme génère sa réponse. Lors du premier lancement, le programme reste silencieux jusqu'à ce qu'un certain nombre de phrases lui aient été données afin qu'il puisse faire sa réponse.
    Lors du fonctionnement en ligne, le programme se connecte à IRC, en fonction des informations données dans le fichier 'pyborg-irc.cfg' ( serveur, canal, pseudo etc ), répond automatiquement à tout ceux qui viennent l'aborder en privé, et répond de temps à autre sur les canaux où il est connecté. Un paramètre ( owner ) permet de définir quel pseudo peut contrôler le bot.

Les commandes :

Toutes les commandes commencent par un '!'. Selon que le bot est connecté à IRC ou non, la liste des commande n'est pas la même. Voici la liste des commandes qui sont utilisable tout le temps :

Les commandes suivantes ne sont disponibles que sur IRC :

Les fichiers :

La dernière version de PyBorg ( actuellement la version 1.1.0 )

Pour ceux qui ne veullent pas s'embêter avec l'apprentissage, voici un dictionnaire déjà construit. ( Il suffit de copier le fichier zip dans le même répertoire que celui de PyBorg, inutile de le dézipper ) .

Les liens :

[1] : Megahal, un autre bot parlant.