Найти в Дзене
Lyakhov Eugene

Объяснение терминов NLU

Это самая главная задача. Нужно определить, что пользователь хочет сделать. Мало понять, что хочет пользователь, нужно понять детали. Слоты — это обязательные параметры для выполнения действия. Очень тесно связано со слотами, но это более общее понятие. Это просто поиск в тексте именованных сущностей (Named Entity Recognition, NER). Это механизм разрешения конфликтов, когда система не до конца уверена в том, что имел в виду пользователь. Представьте, что вы разрабатываете пиццерию с ботом. Этот набор техник — основа для построения любой нетривиальной системы, которая должна понимать человеческую речь, а не просто реагировать на кнопки. Знание есть, но стресс мешает?
Бесплатное сообщество для прокачки карьеры в IT Подпишись на https://t.me/IT_Interview_Partner_Bot
Подпишись на https://t.me/LyakhovEugene
Оглавление

1. Intent Recognition (Распознавание намерений)

Это самая главная задача. Нужно определить, что пользователь хочет сделать.

  • Пример: Пользователь пишет: "Какой сегодня курс доллара?" или "Сколько стоит бакс?"
  • Задача: Понять, что намерение (интент) — Узнать курс валюты.
  • Суть: Это задача классификации. Модель относит фразу к одному из заранее заданных классов (интентов).

2. Slot Filling (Заполнение слотов)

Мало понять, что хочет пользователь, нужно понять детали. Слоты — это обязательные параметры для выполнения действия.

  • Пример: Тот же запрос про курс доллара.
  • Задача: Модель уже поняла интент (Узнать курс), но ей нужно заполнить слоты:
    Слот валюта: Доллар
    Слот дата: Сегодня (если не указано, подставляется значение по умолчанию)
  • Суть: Это процесс тегирования слов в предложении, чтобы отметить, какое слово к какому слоту относится.

3. Entity Extraction (Извлечение сущностей)

Очень тесно связано со слотами, но это более общее понятие. Это просто поиск в тексте именованных сущностей (Named Entity Recognition, NER).

  • Примеры сущностей: Имена людей (Алексей), названия компаний (Apple), географические названия (Москва), даты, суммы денег, номера телефонов.
  • Отличие от Slot Filling: Слоты — это контекст диалога (параметры текущей команды), а сущности — это просто факты в тексте.
    Фраза: "Купи билет до Москвы на имя Ивана".
    Сущности: Москва (город), Иван (имя).
    Слоты: (для интента "Купить билет") Пункт назначения: Москва, Пассажир: Иван.

4. Disambiguation (Снятие неоднозначности)

Это механизм разрешения конфликтов, когда система не до конца уверена в том, что имел в виду пользователь.

  • Ситуация 1 (Несколько интентов): Фраза "Хочу уточнить баланс и положить деньги" содержит два намерения. Нужно либо выбрать приоритетное, либо запустить диалог уточнения.
  • Ситуация 2 (Похожие интенты): Интенты "Завести будильник" и "Поставить таймер" очень похожи по смыслу. Если модель неуверена (например, 51% на будильник, 49% на таймер), запускается disambiguation: "Вы хотите поставить будильник или засечь время?".
  • Ситуация 3 (Омонимия): Слово "ключ". Это гаечный ключ, дверной ключ или родник? Контекст или уточняющий вопрос помогают снять неоднозначность.

Итог: Как это работает вместе?

Представьте, что вы разрабатываете пиццерию с ботом.

  1. Пользователь: "Хочу заказать большую пепперони на тонком тесте и привезти её на Тверскую, 7".
  2. Intent Recognition: Определяет интент Заказать еду.
  3. Entity Extraction: Находит сущности: Тверская, 7 (адрес).
  4. Slot Filling: Заполняет слоты для заказа:
    Размер: Большая
    Тип: Пепперони
    Тесто: Тонкое
  5. Disambiguation: Если бы пользователь сказал просто "Пиццу", бот бы переспросил: "Какую именно пиццу вы хотите?" (снял неоднозначность по отсутствующим слотам).

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

Страховка на собеседовании

Знание есть, но стресс мешает?
Бесплатное сообщество для прокачки карьеры в IT

Подпишись на https://t.me/IT_Interview_Partner_Bot
Подпишись на
https://t.me/LyakhovEugene