Сущности
Сущность — единица NLU-ядра CAILA. Представляет собой последовательность слов, объединенных некоторым смыслом или правилом. Например: имена, дата и время, местоположение и пр.
Подробнее о работе с сущностями в сценарии
Пользовательские сущности
Пользовательские сущности — сущности, которые разработчик заполняет и настраивает в редакторе сущностей самостоятельно.
Войдите в проект, на панели управления нажмите CAILA > Сущности. Вы перешили в справочник сущностей проекта.
Настройка сущности
Нажмите Создать сущность > укажите название сущности.
Распознается
Нажмите кнопку распознается
под названием сущности для того, чтобы она распознавалась в диалоге. Для отключения распознавания нажмите на кнопку повторно.
Рассмотрим поведение сценария при различных настройках:
Состояние | Поведение |
---|---|
Включено | Сущность распознаётся в диалоге. Ссылающийся на сущность интент сработает, слот заполнится, в сценарии появятся метаданные по этой сущности. |
Выключено | Сущность не распознаётся в диалоге. Ссылающий на сущность интент не сработает, слот не заполнится, в сценарии не появятся метаданные по этой сущности. |
Клиентская
Нажмите клиентская
под названием сущности для того, чтобы её значения были уникальны для каждого клиента. Для отключения нажмите на кнопку повторно.
Рассмотрим поведение сценария при различных настройках:
Состояние | Поведение |
---|---|
Включено | Значения и метаданные сущности уникальны для каждого клиента бота. Заполнение происходит полученными от клиентов данными через API или в ходе диалога. |
Выключено | Значения и метаданные сущности заданы при разработке бота и являются общими для всех клиентов бота. |
Подробнее о работе с клиентскими сущностями
Исправление орфографии
Функция Исправление орфографии позволяет исправлять орфографические ошибки в запросах клиентов. При активной функции распознавание сущностей будет проводиться с учетом возможных опечаток.
Функция доступна только для проектов на русском и украинском языках.
Рассмотрим поведение сценария при различных настройках:
Настройка | Поведение | Пример |
---|---|---|
Исправлять опечатки | Поиск сущностей будет выполняться после исправления опечаток системным способом и клиентским словарем. | Например, исправление орфографии в проекте включено, а для сущности со списком городов @City включено исправление опечаток. Фраза Масква моя столица будет исправлена на Москва моя столица . Затем исправленная фраза будет направлена на поиск сущностей. |
Не исправлять опечатки | Поиск сущностей выполняется в исходной фразе без исправления опечаток, независимо от настроек проекта. | Например, исправление орфографии в проекте включено, а для сущности со списком городов @City исправление опечаток выключено. Для фразы Масква моя столица сущность @City не будет обнаружена. |
Дополнительные настройки
Приведение к нормальной форме
Если параметр Приводить к нормальной форме активен, то перед началом поиска сущностей все слова в запросе будут приведены к нормальной форме.
Нормализация поддерживается только для русского, украинского и английского языков.
Обратите внимание, что слова, внесенные в справочник сущности, не приводятся к нормальной форме вне зависимости от значения параметра. Поэтому для оптимальной работы сущностей необходимо, чтобы они изначально были внесены в справочник в нормальной форме.
Например, задана сущность @Region
для обозначения регионов Российской Федерации. Если в записи для сущности задан синоним Курганская область, область будет распознаваться только в именительном падеже. Чтобы она распознавалась во всех формах, синоним должен иметь вид Курганский область.
Нечеткий поиск
По умолчанию поиск сущностей в запросе происходит в «строгом» режиме: если наименование сущности состоит из нескольких слов, требуется, чтобы в запросе присутствовали все эти слова и шли подряд.
Если же активен параметр Использовать нечеткий поиск/поиск по подстроке, то при поиске сущностей в запросе допускается большая вариативность:
- Допустимы вставки посторонних слов между словами, составляющими название сущности.
- Допустимо, если часть слов, составляющих название сущности, в запросе опущена.
Рассмотрим пример: задана сущность @City
для обозначения городов мира. В записи для города Санкт-Петербурга имеется только синоним санкт петербург. Однако если для сущности включен нечеткий поиск, то сущность будет найдена и в запросе петербург, и в санкт блин петербург.
Расширение интентов
Механизм работы параметра Автоматически расширять интенты удобнее всего проиллюстрировать на примере:
- Задана сущность
@agent
с рядом синонимов: например, оператор, сотрудник, специалист. - Задан интент
/Switch
, обученный на одной тренировочной фразе переведи на оператора. - При запросе переведи на специалиста в нем будет обнаружен интент
/Switch
.
Таким образом, если для сущности включен этот параметр, то в обучающих фразах ее синонимы автоматически расширяются до всех слов, которые распознает данная сущность. Это позволяет существенно упростить формирование обучающей выборки.
Параметр доступен только для STS-классификатора.
Справочник
Сущность описывается через набор значений, которые она может принимать. В окне справочник нажмите Добавить запись. Укажите здесь один из способов, которым задаются значения:
- Синонимы — укажите набор синонимов: все варианты написания, которые считаются эквивалентными данному значению.
- Паттерны — укажите паттерн: формальное правило, описывающее ключевые слова и выражения. Используйте базовые элементы паттернов.
Также дополнительно в качестве справочных данных вы можете указать DATA
— значение сущности, в формате string
или JSON
.
Системные сущности
Системные сущности — встроенные сущности, которые разработчик может активировать в редакторе сущностей.
Вы можете активировать распознавание системных сущностей. Войдите в проект, на панели управления нажмите Редактор > Сущности > Системные.
Нажмите на название сущности, чтобы просмотреть описание и распознаваемые форматы.
Для подключения системной сущности установите напротив названия переключатель в активное положение. С момента изменения статуса, платформа начинает распознавать данную сущность в сообщениях к чат-боту.