JAICP

Сущности


Сущность — единица NLU-ядра CAILA. Представляет собой последовательность слов, объединенных некоторым смыслом или правилом. Например: имена, дата и время, местоположение и пр.

Подробнее о работе с сущностями в сценарии

Пользовательские сущности

Пользовательские сущности — сущности, которые разработчик заполняет и настраивает в редакторе сущностей самостоятельно.

Войдите в проект, на панели управления нажмите CAILA > Сущности. Вы перешили в справочник сущностей проекта.

Перейдите на вкладку CAILA > сущности из панели управления

Настройка сущности

Нажмите Создать сущность > укажите название сущности.

Распознается

Нажмите кнопку распознается под названием сущности для того, чтобы она распознавалась в диалоге. Для отключения распознавания нажмите на кнопку повторно.

Рассмотрим поведение сценария при различных настройках:

Состояние Поведение
Включено Сущность распознаётся в диалоге. Ссылающийся на сущность интент сработает, слот заполнится, в сценарии появятся метаданные по этой сущности.
Выключено Сущность не распознаётся в диалоге. Ссылающий на сущность интент не сработает, слот не заполнится, в сценарии не появятся метаданные по этой сущности.

Клиентская

Нажмите клиентская под названием сущности для того, чтобы её значения были уникальны для каждого клиента. Для отключения нажмите на кнопку повторно.

Рассмотрим поведение сценария при различных настройках:

Состояние Поведение
Включено Значения и метаданные сущности уникальны для каждого клиента бота.

Заполнение происходит полученными от клиентов данными через API или в ходе диалога.
Выключено Значения и метаданные сущности заданы при разработке бота и являются общими для всех клиентов бота.

Подробнее о работе с клиентскими сущностями

Исправление орфографии

Функция Исправление орфографии позволяет исправлять орфографические ошибки в запросах клиентов. При активной функции распознавание сущностей будет проводиться с учетом возможных опечаток.

Функция доступна только для проектов на русском и украинском языках.

Рассмотрим поведение сценария при различных настройках:

Настройка Поведение Пример
Исправлять опечатки Поиск сущностей будет выполняться после исправления опечаток системным способом и клиентским словарем. Например, исправление орфографии в проекте включено, а для сущности со списком городов @City включено исправление опечаток.

Фраза Масква моя столица будет исправлена на Москва моя столица.

Затем исправленная фраза будет направлена на поиск сущностей.
Не исправлять опечатки Поиск сущностей выполняется в исходной фразе без исправления опечаток, независимо от настроек проекта. Например, исправление орфографии в проекте включено, а для сущности со списком городов @City исправление опечаток выключено.

Для фразы Масква моя столица сущность @City не будет обнаружена.

Дополнительные настройки

Приведение к нормальной форме

Если параметр Приводить к нормальной форме активен, то перед началом поиска сущностей все слова в запросе будут приведены к нормальной форме.

Нормализация поддерживается только для русского, украинского и английского языков.

Обратите внимание, что слова, внесенные в справочник сущности, не приводятся к нормальной форме вне зависимости от значения параметра. Поэтому для оптимальной работы сущностей необходимо, чтобы они изначально были внесены в справочник в нормальной форме.

Например, задана сущность @Region для обозначения регионов Российской Федерации. Если в записи для сущности задан синоним Курганская область, область будет распознаваться только в именительном падеже. Чтобы она распознавалась во всех формах, синоним должен иметь вид Курганский область.

Нечеткий поиск

По умолчанию поиск сущностей в запросе происходит в «строгом» режиме: если наименование сущности состоит из нескольких слов, требуется, чтобы в запросе присутствовали все эти слова и шли подряд.

Если же активен параметр Использовать нечеткий поиск/поиск по подстроке, то при поиске сущностей в запросе допускается большая вариативность:

  • Допустимы вставки посторонних слов между словами, составляющими название сущности.
  • Допустимо, если часть слов, составляющих название сущности, в запросе опущена.

Рассмотрим пример: задана сущность @City для обозначения городов мира. В записи для города Санкт-Петербурга имеется только синоним санкт петербург. Однако если для сущности включен нечеткий поиск, то сущность будет найдена и в запросе петербург, и в санкт блин петербург.

Расширение интентов

Механизм работы параметра Автоматически расширять интенты удобнее всего проиллюстрировать на примере:

  1. Задана сущность @agent с рядом синонимов: например, оператор, сотрудник, специалист.
  2. Задан интент /Switch, обученный на одной тренировочной фразе переведи на оператора.
  3. При запросе переведи на специалиста в нем будет обнаружен интент /Switch.

Таким образом, если для сущности включен этот параметр, то в обучающих фразах ее синонимы автоматически расширяются до всех слов, которые распознает данная сущность. Это позволяет существенно упростить формирование обучающей выборки.

Параметр доступен только для STS-классификатора.

Справочник

Сущность описывается через набор значений, которые она может принимать. В окне справочник нажмите Добавить запись. Укажите здесь один из способов, которым задаются значения:

  • Синонимы — укажите набор синонимов: все варианты написания, которые считаются эквивалентными данному значению.
  • Паттерны — укажите паттерн: формальное правило, описывающее ключевые слова и выражения. Используйте базовые элементы паттернов.

Также дополнительно в качестве справочных данных вы можете указать DATA — значение сущности, в формате string или JSON.

Системные сущности

Системные сущности — встроенные сущности, которые разработчик может активировать в редакторе сущностей.

Вы можете активировать распознавание системных сущностей. Войдите в проект, на панели управления нажмите Редактор > Сущности > Системные.

Активируйте распознавание системных сущностей

Нажмите на название сущности, чтобы просмотреть описание и распознаваемые форматы.

Для подключения системной сущности установите напротив названия переключатель в активное положение. С момента изменения статуса, платформа начинает распознавать данную сущность в сообщениях к чат-боту.