<that>标签无法使用标点符号?

时间:2016-03-08 09:10:36

标签: aiml

添加'!'后,我无法找到解决方法在它的中频

<category>
      <pattern>test</pattern>
      <template>testing stuff.</template>
  </category>
  <category>
        <pattern>gg</pattern>
        <that> testing stuff </that>
        <template>works</template>
  </category> 

上面的代码工作得很好,但是当你把它改成:

<category>
      <pattern>test</pattern>
      <template>testing! stuff.</template>
  </category>
  <category>
        <pattern>gg</pattern>
        <that> testing stuff </that>
        <template>works</template>
  </category> 

它停止工作。

如何让第二段代码工作呢?机器人说什么包括这个'!'在它的中间

编辑:

我通过以下方式找到了解决方法:

<category>
      <pattern>test</pattern>
      <template>testing! stuff.</template>
  </category>
  <category>
        <pattern>gg</pattern>
        <that> stuff </that>
        <template>works</template>
  </category> 

它起作用,因为在属性文件中它被配置为看到'!'作为一个分线器,但似乎有点无意......有没有正确的方法来处理这个问题?

1 个答案:

答案 0 :(得分:0)

这是AIML <that>标记的工作方式。如果机器人的最后一个响应由多个句子组成,则该标签仅匹配机器人的最后一个句子。完全停止和感叹号是句子终止符,因此<that>STUFF</that>的作用原因是因为你的机器人的最后一个回答是两句话(测试!东西。 )。检查匹配时会删除标点符号,因此&#39; stuff&#39;匹配。

https://pandorabots.com/docs/aiml-reference/#that

<that>有一个很好的解释