【问题标题】:Unable to load patterns in AIML via Python无法通过 Python 在 AIML 中加载模式
【发布时间】:2016-07-06 12:49:47
【问题描述】:

我已经通过 pip 安装了 AIML 并编写了文件 startup.py、std-startup.xml、basic.aiml 和 bot_brain.brn 在 core 文件夹中。当我尝试运行 startup.py 时,我收到以下警告:

Loading std-startup.xml... done (0.06 seconds)
WARNING: No match found for input: load aiml b

Kernel bootstrap completed in 0.10 seconds
Saving brain to core/bot_brain.brn... done (0.00 seconds)

这是std-startup.xml的内容:

<aiml version="1.0.1" encoding="UTF-8">
    <!-- std-startup.xml -->

    <category>
        <pattern>load aiml b</pattern>
        <template>
            <learn>basic.aiml</learn>
        </template>
    </category>

</aiml>

这是 Python 脚本:

import aiml
import os

kernel = aiml.Kernel()

if os.path.isfile("core/bot_brain.brn"):
    kernel.bootstrap(brainFile = "core/bot_brain.brn")
else:
    kernel.bootstrap(learnFiles = "std-startup.xml", commands = "load aiml b")
    kernel.saveBrain("core/bot_brain.brn")

while True:
    msg = raw_input(">")
    if msg == "exit":
        exit(0)
    elif msg == "save":
        kernel.saveBrain("core/bot_brain.brn")
    else:
        bot_response = kernel.respond(msg)
        print("bot: " + bot_response)

对于每个输入,我都会收到错误 No match found for input。我做错了什么?除了 bot_brain.brn 之外,所有内容都在同一个目录中。

【问题讨论】:

    标签: python aiml


    【解决方案1】:

    问题解决了;我必须用大写字母输入:

    <category>
        <pattern>LOAD AIML B</pattern>
        <template>
            <learn>basic.aiml</learn>
        </template>
    </category>
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-06-10
      • 2018-03-09
      • 1970-01-01
      • 2018-08-07
      • 2020-03-15
      • 1970-01-01
      相关资源
      最近更新 更多