Намерения — это то, что пользователь хочет получить при общении с ботом. Цель/смысл его обращения к боту, какую проблему он хочет решить или что именно он хочет узнать.
Намерения используются при обучении NLU, они группируются в списки, а также являются обучающими примерами в виде различных текстовых враз.
Например, фразы «Хочу приобрести желтый пылесос в рассрочку», «Думаю о роботе-пылесосе», «У меня есть 20 тысяч, и я рассматриваю обновление стиральной машины или покупку робота-пылесоса» относятся к намерению «Покупка бытовой техники».
- Все обучающие примеры должны быть уникальными. Не допускается использование очень похожих по смыслу обучающих примеров в разных намерениях. Это приведет к ошибкам при распознавании намерений, потому что NLU будет сложно определить, какое именно намерение имеется в виду, будут размыты смысловые границы между намерениями.
- Для правильной работы NLU рекомендуется не использовать одиночные слова/словосочетания в обучающих примерах. Таких фраз должно быть не более 10-20% от общего количества фраз в намерении.
- В обучающих фразах важно использовать разнообразные слова/словосочетания, синонимы и и контексты для них. Чем больше вариантов, чем они богаче и ближе к реальным фразам людей, тем качественнее и целостнее NLU будет «понимать» каждое намерение.
Например, фразы «оплатить» или «оплатить картой» в намерении «Как оплатить картой». Контекстом будут примеры вида «как оплатить», «хочу оплатить картой», «можно ли оплатить», «хотел бы оплатить картой», «оплату картой принимаете» или даже «вы карту принимаете».
- Рекомендуется указывать не менее 30 обучающих примеров, а также избегать значительного неравенства в количестве обучающих примеров между разными намерениями. Например, в паре намерений 500 и более примеров, а в остальных всего по 30-50. Пренебрежение этими рекомендациями может привести к нестабильной работе агента и значительным колебаниям в точности распознавания намерений с каждым новым обучением.
- Если предметная область агента очень сложная, то рекомендуется вдумчиво наполнять каждое намерение большим количеством примеров (от 200 и более), максимально приближенными к реальным фразам клиентов. Можно использовать фразы из прямой транскрипции записей диалогов, но в этом случае следует избегать «мусорных» фраз (слишком длинных и водянистых).
- Создавайте простые и четкие намерения, избегая излишней сложности и длины. Вместо одного большого намерения, разделяйте его на более конкретные. Например, намерение «покупка товара» слишком абстрактно, лучше будет использовать «покупка бытовой техники», «покупка электроники» или даже «покупка крупногабаритной бытовой техники», «покупка мелкогабаритной бытовой техники» и т.д.
- Чтобы улучшить стабильность работы агента, можно ввести специальное «мусорное» намерение, куда добавлять простые слова без контекста, ошибки и ненужные фразы, которые часто встречаются в разговорах. Лучше это делать после начального запуска агента, анализа его работы с реальными пользователями и разбора ошибок. Это намерение нужно обрабатывать отдельно в сценарии бота, предусмотрев желаемое поведение (переспрос или повтор вопроса в другой формулировке например).