NLU: понимание естественного языка
Это одна из ключевых функций, которой должны обладать чат-боты, чтобы правильно интерпретировать запросы и реагировать на них в соответствии с ожиданиями клиентов.
При помощи алгоритмов NLU боты решают две основные задачи: определение коммуникативного намерения (интента) говорящего и распознавание упоминаемых сущностей.
Платформа JAICP предоставляет ряд механизмов для подключения NLU к ботам:
Механизмы NLU
CAILA NLU
CAILA (Conversational AI Linguistic Assistant) — NLU-ядро для разработки на базе JAICP разговорных чат-ботов и ассистентов, понимающих естественный язык.
Паттерны
Паттерны — формальные правила, описывающие ключевые слова и выражения.
С помощью паттернов происходит отнесение реплики человека к одному из существующих в системе стейтов, чтобы затем выполнить соответствующие стейту реакции. Паттерны могут быть заданы при помощи базовых и расширенных элементов.
Языки NLU
Поддерживаемые языки
При создании проекта обязательный параметр Язык NLU определяет язык, который бот сможет понимать. Для каждого из доступных языков в платформе подключены:
- библиотека для токенизации и морфологического анализа;
- встроенные алгоритмы распознавания интентов;
- набор стандартных сущностей.
Язык | Примечания |
---|---|
Русский | Поддерживается исправление орфографии и перефразирование тренировочных фраз. |
Английский | Поддерживается перефразирование тренировочных фраз. |
Греческий | |
Датский | |
Испанский | |
Итальянский | |
Казахский | Не поддерживается распознавание времени и чисел прописью. |
Китайский | Не поддерживаются: • нечеткий поиск и нормализация сущностей CAILA; • расширенные элементы паттернов ~ и $morph . |
Литовский | Не поддерживается распознавание времени и чисел прописью. |
Немецкий | |
Нидерландский | |
Польский | |
Португальский | |
Румынский | |
Украинский | Поддерживается исправление орфографии. |
Французский | |
Японский | Не поддерживается распознавание времени и чисел прописью. |
Другие языки
Если в вашем проекте требуется поддержка языка, который не предусмотрен в JAICP, в платформе реализована возможность подключить к проекту внешний NLU-сервис с поддержкой любого языка.
Вы можете самостоятельно разработать такой сервис или воспользоваться сторонним. Внешний NLU-сервис должен быть выполнен в соответствии со спецификацией Model API.
Сценарий
JAICP поддерживает совместное использование интентов CAILA NLU, паттернов и групп примеров в одном сценарии. Правила активации стейтов при помощи этих механизмов имеют разный приоритет.
Кроме того, порядок активации стейтов при совместном использовании интентов, паттернов и групп примеров можно задать самостоятельно. Для этого можно использовать:
- обработчик
selectNLUResult
; - поле
$context.nBest
.