aiml文件中* *的含义

Meaning of * * in aiml file

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

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

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

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

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

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

不太确定它是否有意义,因为我不知道你想要顶部的内容和位置,但作为一个起点它可以工作。