Распознавание намерений | Слот NLU и под-слоты Intent и Fallback
Назначение и общая информация
Слот NLU является комплексным слотом и не может существовать без дочерних под-слотов Intent и под-слота Fallback, которые начинают собственные ветки, в которые осуществляется переход после распознавания соответствующего намерения.
Слот NLU обрабатывает входящую реплику Собеседника, предварительно записанную в переменную client_message.
Слот NLU распознает только те интенты, которые заключены в его под-слоты Intent. Остальные возможные намерения Собеседников (интенты) не участвуют в распознавании в данном NLU слоте. Например, на изображении выше, слот NLU будет обучен распознавать только два интента, которые выбраны в его под-слотах Intent. Если ни один из этих интентов не будет распознан, общение перейдет в под-слот Fallback.
Создание и настройки комплексного слота NLU (NLU + Intent + Fallback)
Атрибуты слота
Name – название слота. Максимальная длина значения поля — 40 символов.
При сохранении Слота проверяется значение в поле:
Confidence Threshold – выраженное в процентах минимальное значение уверенности в распознанном намерении, при котором интент считается распознанным, и общение переходит в ветку соответствующего под-слота Intent. Значение Confidence threshold может быть целым числом от 0 до 100.
Значение Confidence Threshold зависит от количества интентов в Дереве Сценария. Рекомендуется, чтобы значение было обратно пропорционально количеству под-слотов Intent в Сценарии: чем больше интентов, тем меньше должен быть Confidence Threshold.
Для начала рекомендуется сначала устанавливать значение, равное 15 – при таком Confidence Threshold распознавание происходит наиболее успешно у большинства Ботов. В зависимости от результатов тестирования Бота Confidence Threshold можно будет изменить. Подробнее в разделе Подбор оптимального значения Confidence Threshold.
Каждому сообщению Собеседника присваивается значение Confidence (число от 0 до 1). Confidence характеризует уверенность Бота в том, что сообщение относится к определенному интенту.
Значение Confidence Threshold – это выраженное в процентах минимальное значение Confidence, при котором Бот переходит в слот одного из интентов. Если значение Confidence меньше Confidence threshold, Бот переходит в слот Fallback.
При сохранении Слота проверяется значение в поле:
Атрибуты подслота intent
Name — название слота, которое будет отображено в Дереве сценария. Максимальная длина значения поля — 40 символов. Если название не введено, Платформа автоматически копирует название Интента из поля Intent в поле Name.
При сохранении Слота проверяется значение в поле:
Intent* — Интент, при распознании которого Сценарий пойдет по Ветке сценария , следующей за данным интентом.
При сохранении Слота проверяется значение в поле:
Кнопка SHOW INTENT IN A NEW TAB — по нажатию кнопки выбранный в поле Интент открывается в соседней вкладке браузера.
Атрибуты подслота fallback
Name — название подслота, которое будет отображено в Дереве сценария. Максимальная длина значения поля — 40 символов. При создании слота NLU в поле Name подслота Fallback автоматически подставляется содержимое поля Name слота NLU. Если содержимое поля Name удалено, подслот в Дерево сценария будет отображаться без названия.
При сохранении Слота проверяется значение в поле:
Подслоты Intent и Fallback
Автоматическая генерация под-слотов при создании NLU
При создании слота NLU автоматически создаются два подслота Intent и подслот Fallback.
Эти интенты появятся в списке интентов Компании.
pageВкладка интентов — IntentsДля того чтобы заменить интенты в сгенерированном подслоте, разверните его двойным нажатием мыши. Нажав на название интента в поле INTENT и выберите нужный интент из выпадающего списка. Далее нажмите Save.
Добавление под-слотов Intent
Работа слота
Слот NLU обучается на выборках Интентов, добавленных в качестве его подслотов. О создании Интентов и их обучающих выборок см статью Вкладка интентов — Intents . Слот NLU на входе принимает переменную client_message (Confidence threshold, указанный в слоте NLU), обрабатывает ее, распознавая Интент, и переводит Общение в ветку распознанного Интента. Если же ни один Интент не распознан с должным уровнем уверенности, Общение переходит в под-слот fallback.
Процесс распознавания интентов
Обучение: слот NLU обучается на выборках интентов, добавленных в качестве его под-слотов Intent и после этого становится частью обученной модели Агента.
Получение реплики: слот NLU в обученной модели Агента на входе принимает реплики Собеседниковー текст из переменной client_message.
Классификация реплики: Обученная модель Агента производит классификацию реплики Собеседника из переменной client_message и расставляет все интенты данного слота NLU по уровню уверенности в них ー Confidence (в процентах, аналогично Confidence Threshold).
Сохранение топ-5 интентов в Контексте чата: в Контексте Чата создается Контекстная переменная nlu_result, значением которой становится json-объект, содержащий информацию о топ-5 распознанных интентов в порядке убывания их Сonfidence. Пример:
[{'intent_name': 'size', 'confidence': 0.9993743300437927}, {'intent_name': 'product_in_stock', 'confidence': 0.00019508253899402916}, {'intent_name': 'model_price', 'confidence': 0.00012844608863815665}, {'intent_name': 'address', 'confidence': 0.00010525238758418709}]
Важно: в поле Confidence Threshold Слота NLU значение задается в процентах, а в данной Контекстной переменной — в долях от единицы.
Переход в интент: переход осуществляется в интент с максимальным Confidence при условии, что Confidence >= Confidence Threshold в настройках данного слота NLU, и является интентом, которым распознана реплика Собеседника. Как следствие:
Общение перейдет в ветку данного под-слота Intent;
В системных контекстных переменных создается переменная intent_name ー название распознанного интента;
В системных контекстных переменных создается переменная confidence – степень уверенности Бота в том, что реплика Собеседника относится к данному интенту (в процентах);
Переменные intent_name и confidence сохраняются в контексте Чата до следующего выполнения этого же или другого слота NLU в данном Чате .
Переход в Fallbaclk: переход в под-слот Fallbaclk осуществляется, если Confidence всех интентов ниже значения Confidence Threshold в настройках данного слота NLU. Это означает, что ни один из интентов не был распознан. Как следствие:
Общение перейдет в ветку данного под-слота Fallback;
В системных контекстных переменных создается переменная error – текст ошибки. Значение error сохраняется в контексте Чата до: - Следующего выполнения этого же или другого слота NLU; - Выполнения слота Regular Expression; - Выполнения слота External Request.
Пример
В данном случае реплика Собеседника была отнесена слотом NLU к интенту joke, и Сценарий перешел по соответствующей данному интенту ветке.
Last updated