HugoBOTT

Un bot avec qui converser. 

Codé entièrement en Python, ce bot, ce bot permet de converser de façon basique, avec une mémorisationd des données entrées. N'hésitez pas à l'étendre et à me faire part de vos commentaires/améliorations par email (mon addresse gmail est tout simplement pythonrouge).

Exemple de conversation

H>Bonjour
Salut.
H>Qui es tu ?
R> je suis Hugo BOTT.
H>Comment suis je ?
R> tu es intelligent, puissant, beau et humain.
H>Je suis génial.
C'est noté.
H>Je ne suis pas humain.
C'est noté.
H>Comment suis je ?
R> tu es intelligent, puissant, beau et génial.
H>Paul a une voiture.
C'est noté.
H>Que a Paul ?
R> Paul a une voiture.

Le dialogue se fait par décomposition de la phrase, envoi des données à un objet de type verbe et composition d'une réponse à partir des éléments retournés. Le système est donc très flexible et permettrait, par exemple, une réponse dans une autre langue que la question. 

Modifier et améliorer 

Voici un exemple de défition de verbe:

class Verbe_S_appeler(Verbe):
    nom = "s'appeler"
    conjug = {'présent': {'je': "appelle",
                          'tu': "appelles",
                          'il': "appelle",
                          'nous': 'appelons',
                          'vous': 'appelez',
                          'ils': "appellent",
                          },
              }
    def affirmation(self, sujet, attributs):
        if not sujets.has_key(sujet): sujets[sujet] = {}
        sujets[sujet][self.nom] = attributs
        save()
        return "C'est noté."
   
    def question(self, sujet):
        return sujets[sujet][self.nom]

Notez qu'il est possible d'utiliser l'héritage de classes:

class Verbe_Etre(Verbe_S_appeler):
    nom = 'être'
    conjug = {'présent': {'je': 'suis',
                          'tu': 'es',
                          'il': 'est',
                          'nous': 'sommes',
                          'vous': 'êtes',
                          'ils': 'sont',
                          },
              } 

Futur   

Mots

Les mots devraient être définis comme des objets, dont les attributs s'étendraient au fur et à mesure de l'apprentissage du bot. Ces attributs seraient des références vers d'autres objets/mots.

Prenons par exemple la phrase "J'ai mangé des bonnes carottes ce matin". (à suivre...)

Verbes 

Le niveau suivant d'évolution consiste à pouvoir définir des verbes, utilisables par le bot, depuis le dialogue. Pour celà, je pense utiliser un système de génération de code Python correspondant aux nouveaux verbes à partir des données de l'utilsiateur.

D'autre part, je vais mettre au point des classes de conjugaison des verbes réguliers afin d'en faciliter la définition. 

Echanges

Un autre sujet d'évolution concerne la mise au point d'un standart d'échange des données qui concernent les IA, afin de permettre d'échanger ces données entre différents projets.

Télécharger

Four.tar.gz 

Four.zip  

L'utilisation nécessite uniquement la présence d'un interpréteur Python sur votre machine (par défaut sous Unix, Mac OS X et sur http://www.python.org pour Windows).