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

NLU: понимание естественного языка

подсказка
NLU (Natural Language Understanding) — задача обработки естественного языка, связанная с пониманием смысла высказываний.

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

При помощи алгоритмов NLU боты решают две основные задачи: определение коммуникативного намерения (интента) говорящего и распознавание упоминаемых сущностей.

Платформа JAICP предоставляет ряд механизмов для подключения NLU к ботам:

Механизмы NLU

CAILA NLU

CAILA (Conversational AI Linguistic Assistant) — NLU-ядро для разработки на базе JAICP разговорных чат-ботов и ассистентов, понимающих естественный язык.

Паттерны

Паттерны — формальные правила, описывающие ключевые слова и выражения.

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

подсказка
Паттерны также используются совместно с CAILA NLU. Используя паттерны, вы можете задать запись для справочника сущностей или тренировочную фразу для интента.

Языки NLU

Поддерживаемые языки

При создании проекта обязательный параметр Язык NLU определяет язык, который бот сможет понимать. Для каждого из доступных языков в платформе подключены:

  • библиотека для токенизации и морфологического анализа;
  • встроенные алгоритмы распознавания интентов;
  • набор стандартных сущностей.
предупреждение
Для всех языков, кроме русского, английского и китайского, поддерживается только алгоритм классификатора STS.
ЯзыкПримечания
РусскийПоддерживается исправление орфографии и перефразирование тренировочных фраз.
АнглийскийПоддерживается перефразирование тренировочных фраз.
Греческий
Датский
Испанский
Итальянский
КазахскийНе поддерживается распознавание времени и чисел прописью.
КитайскийНе поддерживаются:
 нечеткий поиск и нормализация сущностей CAILA;
 расширенные элементы паттернов ~ и $morph.
ЛитовскийНе поддерживается распознавание времени и чисел прописью.
Немецкий
Нидерландский
Польский
Португальский
Румынский
УкраинскийПоддерживается исправление орфографии.
Французский
ЯпонскийНе поддерживается распознавание времени и чисел прописью.

Другие языки

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

Вы можете самостоятельно разработать такой сервис или воспользоваться сторонним. Внешний NLU-сервис должен быть выполнен в соответствии со спецификацией Model API.

Сценарий

JAICP поддерживает совместное использование интентов CAILA NLU, паттернов и групп примеров в одном сценарии. Правила активации стейтов при помощи этих механизмов имеют разный приоритет.

Кроме того, порядок активации стейтов при совместном использовании интентов, паттернов и групп примеров можно задать самостоятельно. Для этого можно использовать: