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

我有 这个文件 只是,但缺乏一些好的例子。

有帮助吗?

解决方案

除非一个字或多个字的图案匹配A *将匹配任何

一个_将匹配任何即使一个字或多个字的图案可以匹配

<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>是使用_如果你想抓住每一个时间词,一对夫妇在里面或在句末。

的正确方法

其他提示

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

_ 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.aml 有例子

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top