我正在尝试将一些文件添加到 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>
但是它们都不起作用,解释器或目标本身都无法识别字符。
有没有办法正确匹配这些通配符?有什么建议么?
非常感谢。