Перейти к содержанию

Выделение сущностей

Понятие Сущности (Entities)

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

Если намерение несет общий смысл высказывания пользователя, иногда требуется дополнительная информация. Рассмотрим следующие примеры:

  • Я хочу купить синюю рубашку
  • Я хочу купить красную короткую

В обоих случаях намерение состоит в покупке чего-либо. Цвет является полезной информацией, но мы не хотим иметь разные намерения для каждого цвета.

Цвет — это дополнительная информация для извлечения и идеальный кандидат для сущности.

Сущности — это элементы, которые вы хотите извлечь из высказывания пользователя, такие как даты, места, время, описания, имена, предметы или цифры.

Фильтрация нежелательных сущностей

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

- name: "rasa_addons.components.entities_filter.EntitiesFilter"
   entities:
      buy_shirt: ["color", "size"]
      chitchat.greet: []

Пример:

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

Обучаемые сущности

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

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

Цели:

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

Замечание: Сущность не привязана к намерению и может использоваться в разных намерениях.

Обработка сущностей через интерфейс Wisebot

Чтобы добавить сущность:

Шаг 1: Перейдите в интерфейс Wisebot и выберите нужного бота в меню слева (например, Bot1).

Шаг 2: В разделе NLU перейдите в поле «Пользователь говорит…».

Шаг 2

Шаг 3: Введите тренировочную фразу, например, “Я хочу купить синюю рубашку”.

Шаг 4: Нажмите ENTER, чтобы добавить или отредактировать пример.

Шаг 4

Шаг 5: Если намерение распознано неправильно, нажмите на «никакого намерения» и выберите «Фильтровать или создать».

Шаг 5

Шаг 6: Введите новое намерение «Купить» и нажмите «Создать новое намерение».

Шаг 6

Шаг 7: Фраза перешла в намерение "Купить".

Шаг 7

Шаг 8: Выделите слово "синий" в тренировочной фразе, введите название сущности color (на английском) и нажмите ENTER.

Шаг 8

Шаг 9: Сущность успешно создана.

Шаг 9

Пример списка сущностей:

Список сущностей

Для выделения сущности необходимо выделить слово и добавить сущность:

Выделение сущности

Параметры сущностей

Расширенный синтаксис:

Параметры сущностей

Свойства:

  • value: Отождествляет одинаковые значения сущности.

Пример:

[две пиццы](NUMBER:2)
  • role: Уточняет роль сущности в тексте.

Пример:

[Днепр](CITY:from) → [Париж](CITY:to)
  • group: Указывает номер группы цепочки сущностей. Пример:
    [example](ENTITY_NAME:group=1)
    

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

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

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