5

我在尝试了解 AIML 模式匹配的工作原理时遇到了问题。_和有什么区别*?以及我应该如何使用它们来获得最佳匹配?

我只有这个文件,但它缺少一些很好的例子。

4

2 回答 2

4

* 将匹配任何内容,除非匹配一个单词或多个单词的模式

_ 将匹配任何内容,即使一个单词或几个单词的模式可以匹配

<pattern>BYE _</pattern>没有意义,因为<pattern>BYE *</pattern>匹配相同的模式但<pattern>BYE _</pattern>会阴影<pattern>BYE * SEE YOU</pattern>,而 BYE * 不会。

小心使用 _,例如 _ 会匹配任何东西,你的机器人每次都会给出相同的答案。

<pattern>_ A COUPLE OF WORDS *</pattern>并且<pattern>_ A COUPLE OF WORDS</pattern>是使用 _ 的正确方法,如果您想在每次 A COUPLE OF WORDS 出现在句子内部或句子末尾时都可以使用它。

于 2009-12-17T01:53:23.080 回答
0

_ 和 * 都是通配符,不同之处在于它们应该在模式匹配中使用的位置。

_ should be used before the word or phrase you're matching on
* should be used after the word or phrase you're matching on.

参见:AIML 规范

为了更好地理解这一点,可能值得查看现有 AIML 机器人中的示例。

见:下载,这个Saluations.aiml有例子

于 2009-12-03T09:43:31.787 回答