Search code examples
artificial-intelligencepattern-matchingneural-networkaiml

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 document only, but it lacks some good examples.


Solution

  • 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.