Сопоставление шаблонов AIML – как?
-
11-09-2019 - |
Вопрос
У меня возникла проблема с попыткой понять, как работает сопоставление шаблонов 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 есть примеры