【发布时间】:2017-03-03 18:09:57
【问题描述】:
我正在尝试向 A.L.I.C.E 添加一些文件。 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>
但它们都不起作用,解释器或目标本身无法识别字符。
有没有办法正确匹配这些通配符?有什么建议吗?
非常感谢。
【问题讨论】:
标签: artificial-intelligence bots aiml