Вопрос

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

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

Это было полезно?

Решение

Символ * будет соответствовать чему угодно, если не сопоставлен образец слова или нескольких слов.

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

<pattern>BYE _</pattern> не имеет смысла, поскольку <pattern>BYE *</pattern> соответствует тем же шаблонам, но <pattern>BYE _</pattern> будет тень <pattern>BYE * SEE YOU</pattern> тогда как ПОКА * не будет.

Используйте _ осторожно, например, _ будет соответствовать чему угодно, и ваш бот будет каждый раз давать один и тот же ответ.

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

Видеть: Загрузки, Вот этот Приветствия.aiml есть примеры

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top