Формирование реплик


После того, как вы определили интенты вашего приложения, для каждого интента нужно задать реплики (тренировочные фразы), по которым будет происходить классификация внутри смартапа.

Как сформировать тренировочные фразы

Для начала сформируйте самостоятельно первоначальный список фраз, которыми, как вы думаете, пользователь будет формулировать свое намерение. Но не останавливайтесь на этом списке, так как с большой долей вероятности пользователи будут говорить по-другому.

Например, для интента перехода к оплате заказа вы добавили фразы «Оплатить», «Перейти к оплате», «Давай перейдем к оплате». Но пользователь может сказать «Давай завершим оформление заказа». По сути задача одна и та же и должна вести к одному действию, но пользователь в таком случае не перейдет на следующий шаг, а попадет на так называемый фолбэк.

Фолбэк (Fallback) — это событие в системе, которое происходит, когда реплику пользователя не удалось отнести ни к одному из интентов вашего приложения. И пользователь услышит в ответ, например, «Я вас не понимаю».

Как минимизировать нераспознанные интенты

  • Как только появилась структура диалога или экраны вашего приложения, проводите с пользователями play tests. Play test — это имитация общения с приложением, когда за ассистента отвечает разработчик смартапа. Например, покажите пользователю экраны будущего приложения, попросите пройти по сценарию голосом и записывайте все его реплики. Если ваше приложение предполагает диалог, то разыграйте его с пользователем. Помимо новых реплик вы также найдете много нового, например альтернативные ветки сценария или новые интенты пользователей, о которых вы не узнали бы самостоятельно.
  • Когда ваш смартап станет доступен пользователям, собирайте реплики, которые в него поступают, кластеризуйте их по интентам и обогащайте ваши списки тренировочных фраз.
  • Для интентов, предполагающих сильное разнообразие фраз, которыми пользователь может выразить намерение, мы рекомендуем собирать корзины реплик. Для этого можно использовать специализированные площадки или, например, попросить друзей записать вам голосовое сообщение в мессенджере на заданную тему. Важно, что пользователи произносят свое намерение не так, как его пишут, поэтому для большей уверенности собирайте именно голосовые реплики.

Как кластеризовать реплики по интентам

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

Например, у вас есть фразы «Какая погода за окном?», «Скажи прогноз погоды в Москве на сегодня» или «А на улице холодно?». Все эти высказывания объединены одним намерением — узнать, какая будет погода в общем, т. е. температура и погодные условия. Но фразы «Будет ли сегодня дождь?», «Взять ли мне зонтик?» или «Когда начнется дождь?» с точки зрения ожидаемого ответа относятся уже к другому интенту — узнать прогноз дождя по часам. На вопрос «Когда начнется дождь?» пользователя не удовлетворит ответ «Сегодня в Москве переменная облачность, +18».

Заметили ошибку?

Выделите текст и нажмите Ctrl + Enter, чтобы сообщить нам о ней