Что такое slot filling и как формулируется задача?
Answer from AI
sobes.tech AI
Что хотят услышать интервьюеры:
Slot filling — это задача извлечения из текста конкретных значений параметров, которые нужны для понимания намерения пользователя. Обычно она решается вместе с intent classification в NLU-системах для диалогов. Формулируется как разметка последовательности токенов или как классификация каждого слова на принадлежность к слоту.
Определение:
Slot filling — это извлечение из пользовательской фразы значимых сущностей и привязка их к заранее заданным слотам схемы домена. Например, в запросе «забронируй столик на завтра в 19:00» нужно заполнить слоты date=завтра и time=19:00.
Задача часто формулируется как sequence labeling: каждому токену присваивается метка, например по схеме BIO/BILOU, чтобы выделить границы сущности и ее тип. Иногда это решают как joint learning вместе с определением интента.
Пример использования:
Пользователь пишет: «Поставь будильник на 7 утра в понедельник».
Система должна понять интент set_alarm и заполнить слоты time=7 утра, date=понедельник.
Текст: "Поставь будильник на 7 утра в понедельник"
Интент: set_alarm
Слоты:
- time = "7 утра"
- date = "в понедельник"
Пояснение кода:
Код не требуется. На практике пример разбирается так: сначала определяется общий смысл запроса, затем по токенам текста выделяются фрагменты, которые соответствуют нужным параметрам. Если используется BIO-разметка, то слова внутри значения слота помечаются как B-time, I-time, B-date, I-date, а остальные — O.
Ключевые моменты:
- Slot filling извлекает из фразы значения заранее определенных полей предметной области.
- Чаще всего это задача sequence labeling по токенам.
- Обычно используется вместе с intent classification в системах NLU для диалогов.
- Для разметки границ слотов часто применяют BIO/BILOU-схемы.
- Качество зависит от домена, словаря сущностей и устойчивости к вариативности формулировок пользователя.