PyAIML没有加载启动

时间:2013-03-12 00:57:28

标签: python-2.7 aiml

我正在开始实现 PyAIML 的Python项目,我编写了以下代码来为我的项目创建一个大脑:

import aiml

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

当我运行该程序时,我收到此错误:WARNING: No match found for input: LOAD AIML B

我知道我需要下载 AIML 设置才能开始开发。所以我做到了,但我被困在那里。

请帮忙。我是一个菜鸟程序员,所以不要因为这个愚蠢的错误而对我粗暴。

提前致谢!

2 个答案:

答案 0 :(得分:4)

如果你传递的文件不存在,.learn()方法不会抛出错误,我猜你正试图从"std-startup.xml"学习模式,而你的目录中没有这个文件。

确保文件 std-startup.xml 位于您运行脚本的目录中。您还应该在工作目录中有一个名为 standard 的目录,其中包含标准的aiml文件集。基本上你的目录应如下所示:

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

可以在pyaiml source forge site上的“其他文件/标准AIML集/”文件夹中找到这些文件。转到该文件夹​​并下载其中一个tarball或zip。

答案 1 :(得分:2)

一些事情:

  1. 如果你的AIML正确加载,pyAIML会回复一行,其内容如下: Loading std-startup.aiml... done (1.00 seconds) 如果找不到要加载的文件,则不一定会抛出错误,因此如果您没有看到此行,则pyAIML尚未加载AIML文件。

  2. 我也没有在sourceforge目录中看到'std-startup.xml',但这不重要。您加载的所有内容都是允许您测试内核的任何AIML文件。尝试在/ aiml目录中加载'self-test.aiml'文件。 (仔细检查以确保代码中的文件后缀是.aiml而不是.xml)

  3. k.respond()用于给机器人一些输入,'LOAD AIML B'只是一个测试用语。一旦你加载'self-test.aiml',试试k.respond('测试日期'),你应该得到

  4. The date is Wed Mar 13 01:37:07 2013作为回应。