Выделение сущностей#
Понятие Сущности (Entities)#
Основными моделями понимания естественного языка являются модели извлечения слотов (сущностей) и распознавание намерений пользователя. Для этого создаются обучающие выборки с примерами, размеченными классами намерений и выделенными сущностями. Для обучения модели также необходим конфигурационный файл с выбором и параметрами модели.
Если намерение несет общий смысл высказывания пользователя, иногда требуется дополнительная информация. Рассмотрим следующие примеры:
- Я хочу купить синюю рубашку
- Я хочу купить красную короткую
В обоих случаях намерение состоит в покупке чего-либо. Цвет является полезной информацией, но мы не хотим иметь разные намерения для каждого цвета.
Цвет — это дополнительная информация для извлечения и идеальный кандидат для сущности.
Сущности — это элементы, которые вы хотите извлечь из высказывания пользователя, такие как даты, места, время, описания, имена, предметы или цифры.
Фильтрация нежелательных сущностей#
Иногда NLU может захватить сущность, которую вы не ожидаете в своих историях, что может повлиять на прогнозы и управление диалогами. Можно добавить следующий компонент в конвейер NLU для большего контроля над полезной нагрузкой:
- name: "rasa_addons.components.entities_filter.EntitiesFilter"
entities:
buy_shirt: ["color", "size"]
chitchat.greet: []
Пример:
- Если намерение распознано, полезная нагрузка будет содержать только указанные сущности и удалить все остальные.
- Если намерение распознано, любые извлеченные сущности будут проигнорированы и удалены из полезной нагрузки.
Обучаемые сущности#
Обычно необходимо обучить помощника, как и где находить сущности в высказываниях. Это можно сделать, пометив сущности в пользовательских высказываниях предоставленных в качестве примеров.
Для повышения точности помощника добавьте несколько примеров высказываний с этими сущностями, обеспечивая разнообразие для обобщения.
Цели:
- Привести примеры с достаточным разнообразием для обобщения.
- Использовать различные слова для намерений.
- Научить помощника извлекать сущности в разных предложениях.
Замечание: Сущность не привязана к намерению и может использоваться в разных намерениях.
Обработка сущностей через интерфейс Wisebot#
Чтобы добавить сущность:
Шаг 1: Перейдите в интерфейс Wisebot и выберите нужного бота в меню слева (например, Bot1).
Шаг 2: В разделе NLU перейдите в поле «Пользователь говорит…».
Шаг 3: Введите тренировочную фразу, например, “Я хочу купить синюю рубашку”.
Шаг 4: Нажмите ENTER, чтобы добавить или отредактировать пример.
Шаг 5: Если намерение распознано неправильно, нажмите на «никакого намерения» и выберите «Фильтровать или создать».
Шаг 6: Введите новое намерение «Купить» и нажмите «Создать новое намерение».
Шаг 7: Фраза перешла в намерение "Купить".
Шаг 8: Выделите слово "синий" в тренировочной фразе, введите название сущности color (на английском) и нажмите ENTER.
Шаг 9: Сущность успешно создана.
Пример списка сущностей:
Для выделения сущности необходимо выделить слово и добавить сущность:
Параметры сущностей#
Расширенный синтаксис:
Свойства:
- value: Отождествляет одинаковые значения сущности.
Пример:
- role: Уточняет роль сущности в тексте.
Пример:
- group: Указывает номер группы цепочки сущностей. Пример:
Синонимы сущностей
Используйте синонимы для сокращений и аббревиатур.