0

我正在尝试将一些文件添加到 ALICE AIML 聊天机器人(我目前正在为 AIML v1.0.0 使用 Python 解释器)。现在我遇到了一个问题:我在一个模式上使用了两个通配符,并用 TO 来分隔它们。现在的重点是第一个通配符也可以包含单词 TO,所以它会导致我出错:

<category>
    <pattern>SAY * TO *</pattern>
    <template>Ok, I will say "<star />" to "<star index="2" />"</template>
</category>

正常的对话可能是:

-Client: Say Hi to mom
-Bot: Ok, I will say "Hi" to "mom"

但是这个其他对话给我一个错误:

-Client: Say I have to go shopping to mom
-Bot: Ok, I will say "I have" to "go shopping to mom"

(请注意,机器人答案中没有引号,我只是把它们放在这里,这样你就可以确切地看到我的意思)
写完这篇文章后,我意识到我可以用一些标志来标记那个 TO 来识别它。我尝试了这些模式:

<pattern>SAY * "TO *</pattern>
<pattern>SAY * "TO" *</pattern>
<pattern>SAY * TO" *</pattern>
<pattern>SAY * -TO *</pattern>
<pattern>SAY * -TO- *</pattern>
<pattern>SAY * TO- *</pattern>

但是它们都不起作用,解释器或目标本身都无法识别字符。

有没有办法正确匹配这些通配符?有什么建议么?
非常感谢。

4

1 回答 1

0

好吧,我很快就找到了 XSPLITTER 标签,所以我不得不像这样修复它

<category>
    <pattern>SAY * XSPLITTER TO *</pattern>
    <template>Ok, I will say <star/ > to <star index="2" /></template>
</category>

现在,输入必须有点奇怪:

-Client: say I have to go shopping xsplitter to mom
-Bot: Ok, I will say I have to go shopping to mom

我想我需要过滤输入,以便我可以编辑它以自己添加 xsplitter,并添加替换(我->你,他->她等等)

于 2017-03-03T19:13:02.750 回答