【问题标题】:aiml - last occurrence of a word目标 - 单词的最后一次出现
【发布时间】: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


    【解决方案1】:

    好吧,我没花太长时间就找到 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,并添加替换(我->你、他->她等等)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-11-24
      • 1970-01-01
      • 1970-01-01
      • 2011-11-26
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多