Соответствие шаблону AIML - как? - PullRequest
5 голосов
/ 03 декабря 2009

У меня проблема с попыткой понять, как работает сопоставление с шаблоном AIML. В чем разница между _ и *? И как мне их использовать, чтобы получить лучший матч?

У меня есть только этот документ , но в нем нет хороших примеров.

Ответы [ 2 ]

4 голосов
/ 17 декабря 2009

A * будет соответствовать чему-либо, если только образец слова или несколько слов не совпадают

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> - это правильный способ использования _, если вы хотите отлавливать каждый раз, когда ПАР СЛОВ находится внутри или в конце предложения.

0 голосов
/ 03 декабря 2009

_ и * оба являются подстановочными знаками, разница в том, где они должны использоваться при сопоставлении с образцом.

_ 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 содержит примеры

...