Базовые элементы паттернов
*
* — любая последовательность символов произвольной длины, возможно пустое поле.
Использование в сценарии
state: catchAll
q!: *
a: Я Вас не понял.state: start
q!: *
a: Начинаем работу!
go!: /SecondStepслово
слово — указанное слово: проверяет полное посимвольное соответствие слова и его позицию во фразе.
Использование в сценарии
state:
q!: привет
a: Привет! Как дела?* корень *
*корень* — стемма: проверяет наличие в слове заданного текста.
Звёздочки могут находиться:
- В начале, обозначает вариативный префикс: в паттерн
*ходпопадут словавход,выход,ход. - В конце, обозначает вариативный суффикс: в паттерн
ход*попадут словаходить,ходунки,ход. - В начале и конце, обозначает вариативные префикс и суффикс: в паттерн
*ход*попадут словавыходить,ход.
Использование в сценарии
state:
q: * *подроб* * //будет ловить: поподробнее, подробности, подробнее
a: Подробнее на сайте example.cn(слово1|слово2|или целая фраза)
(слово1|слово2|или целая фраза) — альтернативы: проверяет наличие одного из альтернативных вариантов правила.
Варианты разделяются |. Внутри каждого из них могут содержаться любые другие вложенные элементы паттерна.
Варианты можно разделать также /.
Использование в сценарии
state:
q: (привет | добр* (утро/день/вечер) | здравствуй* )
a: Привет-привет![опциональное слово|или другая фраза]
[опциональное слово|или другая фраза] — опции: приведенные в квадратных скобках элементы не являются обязательными.
У паттерна увеличивается вес, если правило сработало.
Внутри опций поддерживаются альтернативы.
Использование в сценарии
state: How many players
q: * {(сколько|как много|насколько много) (игроков|плееров|человек) [могут] [играть]} *
q: * [игра] для одного * [или] [нескольких] *
q: * {([игра]|в игре) [есть] (мультиплеер*|многопользовательск* [режим]|для нескольких пользовател*)} *
a: Это приключение для одного. {слово1 слово2 (1|2)}
{слово1 слово2 (1|2)} — перестановки: проверяется соответствие заданных правил в любой последовательности.
Правила, которые могут быть перемешаны, разделяются пробелом.
Каждое правило может быть любым другим элементом паттерна с любой степенью вложенности.
Использование в сценарии
state: How much gameplay
q: * {(сколько|(как|насколько) много|много) геймпле*} *
q: * {[насколько] (большая|велика) [ли] [эта] [игра]} *
a: Сюжет игры занял 2 тысячи страниц сценария! Ограничения
В перестановках допустимо использовать не более 5–6 правил. Использование большего числа элементов перестановок существенно замедляет работу бота.
Если вы хотите учесть вариативный порядок слов, рекомендуется использовать группировки для объединения словосочетаний, где порядок слов фиксирован, а также разбивать паттерн на несколько отдельных паттернов.
Например, паттерн * {какое * ты * к этому имеешь отношение} * можно переписать с использованием паттернов следующего вида:
* {какое * ты} * {(к этому) имеешь отношение} *
* какое * {(к этому) имеешь отношение} * ты *