1

我在 AIML 中获得了以下代码:

<category>
 <pattern>TOP * *</pattern>
 <template><star index="1"/></template>
</category>

应该返回单词列表的第一个元素。我知道 * 应该捕获一个或多个单词。是什么意思 * *?

4

2 回答 2

3

正如您提到的 * 捕获一个或多个单词。第一颗星将捕获一个单词,其余的将由第二个单词捕获。您的模板仅使用第一个星号,因此是列表的第一个元素。

于 2016-03-26T19:22:53.147 回答
2

我知道你问这个已经有一段时间了。我遇到了类似的问题并找到了 XSPLITTER 词(与其他词一样,但用作标志),您可以做的(我现在正在做的工作)是过滤输入并添加与正则表达式匹配的 XSPLITTER 词你的翻译。或者,更简单的是,在您的情况下,您只需编辑 AIML 文件并将您的模式替换为:

<category>
    <pattern>TOP * IN *</pattern>
    <template><star index="1"/></template>
</category>

不太确定这是否有意义,因为我不知道你想在哪里设置什么,但作为一个起点,它可以工作。

于 2017-03-03T19:20:58.633 回答