Перейти к основному содержимому

Сущности

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

Сущности бывают пользовательские и системные. Все активные сущности можно использовать при разработке сценария.

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

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

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

Вкладка с пользовательскими сущностями

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

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

предупреждение

Название сущности не должно совпадать с названием паттерна, если он был создан с помощью $entity<> и converter. Например, если в проекте есть сущность Example и паттерн $Example, то это может привести к ошибкам при выполнении сценария.

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

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

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

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

Клиентская​

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Справочник​

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

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

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

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

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

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

Вкладка с системными сущностями

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

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