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

Сущности

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

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

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

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

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

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

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

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

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

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

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

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

Клиентская

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Справочник

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

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

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

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

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

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

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

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

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