Понимание естественного языка (NLU)

NLU (Natural Language Understanding) — часть стека обработки языка, которая отвечает за понимание смысла сообщения. NLU решает две задачи: определяет намерение пользователя (intent) и извлекает из текста структурированные данные — сущности (entities). На выходе NLU-компонент передаёт боту не сырой текст, а распознанные данные: «намерение = запись_на_приём, дата = 15 июня, врач = терапевт».

Intent recognition — распознавание намерения

Intent (намерение) — это то, что пользователь хочет сделать. Классификатор намерений сопоставляет входящий текст с набором заранее определённых категорий. Например, фраза «запишите меня к кардиологу на следующей неделе» → intent: book_appointment. Один и тот же intent может быть выражен десятками формулировок, и задача NLU — обобщить их все в один класс.

В современных ботах классификация намерений часто делегируется LLM через structured output: модель возвращает JSON с полем intent вместо свободного текста.

Entity extraction — извлечение сущностей

Сущности — это конкретные данные внутри сообщения: имена, даты, суммы, адреса, номера телефонов. NLU извлекает их и передаёт в структурированном виде. Для фразы «хочу перевести 5000 рублей Ивану Петрову» сущности: сумма = 5000, валюта = RUB, получатель = Иван Петров.

В HR-боте для автоматизации найма NLU извлекает из резюме ключевые сущности: стаж, должности, навыки — и передаёт их в CRM без ручного ввода. Результат: +50% заявок при том же штате рекрутеров.

NLU vs NLP vs NLG

NLP (Natural Language Processing) — широкий термин для всей обработки текста. NLU — часть NLP, отвечает за понимание входящего текста. NLG (Natural Language Generation) — противоположная часть, отвечает за генерацию ответа. Полный цикл диалога: пользователь пишет → NLU понимает → бизнес-логика принимает решение → NLG формирует ответ.

Когда нужно отдельное NLU-решение

Если бот работает в узкой предметной области с фиксированным набором намерений (50–200 классов), имеет смысл обучить специализированный NLU-классификатор — он будет работать быстрее и дешевле, чем вызов LLM на каждый запрос. При широком диапазоне запросов или необходимости понимать свободный контекст лучше использовать LLM с structured output напрямую.

Связанные термины

Хотите настроить NLU для вашего бота? Обсудим задачу.

Связаться с нами