Понимание естественного языка (NLU)
Это одна из ключевых функций, которой должны обладать чат-боты, чтобы правильно интерпретировать запросы и реагировать на них в соответствии с ожиданиями клиентов.
При помощи алгоритмов NLU боты решают две основные задачи: определение коммуникативного намерения (интента) говорящего и распознавание упоминаемых сущностей.
Возможности NLU
NLU-ядро имеет следующие возможности:
- Распознавание интентов пользователей. Интент — ключевая единица NLU-ядра, объединяющая в себе набор фраз, намерение пользователя и другую метаинформацию.
- Системные и пользовательские сущности. Сущность — единица NLU-ядра. Представляет собой последовательность слов, объединенных некоторым смыслом или правилом. Например: имена, дата и время, местоположение и пр.
- Клиентские сущности — сущности, которые может персонализировать сам клиент во время диалога с ботом. При этом содержание сущности будет доступно только для самого клиента. Клиентские сущности используются для решения задач, в которых необходима персонализация для распознавания интентов.
- Паттерны — формальные правила, описывающие ключевые слова и выражения. С помощью паттернов происходит отнесение реплики человека к одному из существующих в системе стейтов, чтобы затем выполнить соответствующие стейту реакции.
- Слот-филлинг (slot filling) — процесс дозапроса информации для выполнения запроса клиента. Полученные данные в ходе дозапроса доступны для использования в сценарии.
- Разметка логов (Data Labeling) — инструмент, позволяющий выявлять тематику сообщений из загруженных данных, на которые будет реагировать бот.
- NLP Direct API позволяет использовать обученный классификатор в сторонних приложениях.
- Расширенные настройки NLU. Вы можете задать новые параметры для настройки NLU, уникальные для отдельного проекта.
Языки NLU
Поддерживаемые языки
При создании проекта обязательный параметр Язык NLU определяет язык, который бот сможет понимать. Для каждого из доступных языков в платформе подключены:
- библиотека для токенизации и морфологического анализа;
- встроенные алгоритмы распознавания интентов;
- набор стандартных сущностей.
Язык | Примечания |
---|---|
Русский | Поддерживается исправление орфографии и перефразирование тренировочных фраз. |
Английский | Поддерживается перефразирование тренировочных фраз. |
Греческий | |
Датский | |
Испанский | |
Итальянский | |
Казахский | Не поддерживается распознавание времени и чисел прописью. |
Китайский | Не поддерживаются: • нечеткий поиск и нормализация сущностей NLU; • расширенные элементы паттернов ~ и $morph . |
Литовский | Не поддерживается распознавание времени и чисел прописью. |
Немецкий | |
Нидерландский | |
Польский | |
Португальский | |
Румынский | |
Украинский | Поддерживается исправление орфографии. |
Французский | |
Японский | Не поддерживается распознавание времени и чисел прописью. |
Другие языки
Если в вашем проекте требуется поддержка языка, который не предусмотрен в JAICP, в платформе реализована возможность подключить к проекту внешний NLU-сервис с поддержкой любого языка.
Вы можете самостоятельно разработать такой сервис или воспользоваться сторонним. Внешний NLU-сервис должен быть выполнен в соответствии со спецификацией Model API.
Сценарий
Параметры NLU-ядра
Параметры NLU-ядра по умолчанию указаны в chatbot.yaml
:
language: ru
botEngine: v2
nlp:
intentNoMatchThresholds:
phrases: 0.2
patterns: 0.2