4 votes

PyAIML ne se charge pas au démarrage

Je commence un projet sur Python qui implémente PyAIML et j'ai écrit le code suivant pour créer un cerveau pour mon projet :

import aiml

k=aiml.Kernel()
k.learn("std-startup.xml")
k.respond("LOAD AIML B")
k.saveBrain("jarvis.brn")

Lorsque je lance le programme, j'obtiens cette erreur : WARNING: No match found for input: LOAD AIML B

Je comprends que j'ai dû télécharger un AIML dont le développement va commencer. C'est ce que j'ai fait, mais je suis bloqué.

Aidez-moi, s'il vous plaît. Je suis un programmeur novice, alors ne soyez pas trop dur avec moi pour cette erreur stupide.

Merci d'avance !

4voto

Matthew Mellott Points 164

El .learn() ne lancera pas d'erreur si le fichier que vous lui passez n'existe pas, et je suppose que vous essayez d'apprendre des modèles de la méthode "std-startup.xml" sans avoir ce fichier dans votre répertoire.

Assurez-vous que le fichier std-startup.xml se trouve dans le répertoire à partir duquel vous exécutez votre script. Vous devriez également avoir un répertoire appelé standard dans votre répertoire de travail qui contient l'ensemble standard de fichiers aiml. En gros, votre répertoire devrait ressembler à ceci :

 mydir/my_script.py
 mydir/std-startup.xml
 mydir/standard/a-bunch-of-std-aiml-files.aiml

Ces fichiers se trouvent dans le dossier "Other Files/Standard AIML Set/" sur le site Web de la Commission européenne. site de forge de la source pyaiml . Allez dans ce dossier et téléchargez l'un des fichiers tarballs ou zip.

3voto

ruzel Points 118

Quelques trucs :

  1. Si votre AIML se charge correctement, pyAIML répondra avec une ligne qui se lira comme suit : Loading std-startup.aiml... done (1.00 seconds) Il ne lancera pas nécessairement une erreur s'il ne trouve pas de fichier à charger, donc si vous ne voyez pas cette ligne, pyAIML n'a pas chargé le fichier AIML.

  2. Je ne vois pas non plus 'std-startup.xml' dans le répertoire sourceforge, mais cela ne devrait pas avoir d'importance. Tout ce que vous devez charger est un fichier AIML qui vous permettra de tester le noyau. Essayez de charger le fichier 'self-test.aiml' dans le répertoire /aiml à la place. (Vérifiez que le suffixe du fichier dans votre code est .aiml et non .xml).

  3. k.respond() sert à donner des informations au robot et "LOAD AIML B" est juste une phrase de test. Une fois que vous avez chargé 'self-test.aiml', essayez k.respond('test date') et vous devriez obtenir

The date is Wed Mar 13 01:37:07 2013 en réponse.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X