开发者

AIML pattern matching - howto?

I'm having a problem trying to understand how does AIML pattern matching works. What's the difference between _ and *? And how I should use them to get the best match?

I have this docume开发者_如何学Gont only, but it lacks some good examples.


A * will match anything unless a pattern of a word or several words are matched

A _ will match anything even if a pattern of a word or several words could match

<pattern>BYE _</pattern> does not make sense since <pattern>BYE *</pattern> matches the same patterns but <pattern>BYE _</pattern> will shadow <pattern>BYE * SEE YOU</pattern> whereas BYE * won't.

Use _ carefully, for example _ would match anything and your bot will give the same answer every times.

<pattern>_ A COUPLE OF WORDS *</pattern> and <pattern>_ A COUPLE OF WORDS</pattern> is the proper way to use _ if you want to catch every times A COUPLE OF WORDS is inside or at the end of a sentence.


_ and * are both wildcards, the difference is where they should be used in pattern matching.

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

See: AIML spec

To understand this better it may be worth looking at examples in the existing AIML bots.

See: Downloads, this one Saluations.aiml has examples

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜