Распознавание намерений | Слот NLU и под-слоты Intent и Fallback

Назначение и общая информация

Слот NLU является комплексным слотом и не может существовать без дочерних под-слотов Intent и под-слота Fallback, которые начинают собственные ветки, в которые осуществляется переход после распознавания соответствующего намерения.

Слот NLU обрабатывает входящую реплику Собеседника, предварительно записанную в переменную client_message.

Слот NLU распознает только те интенты, которые заключены в его под-слоты Intent. Остальные возможные намерения Собеседников (интенты) не участвуют в распознавании в данном NLU слоте. Например, на изображении выше, слот NLU будет обучен распознавать только два интента, которые выбраны в его под-слотах Intent. Если ни один из этих интентов не будет распознан, общение перейдет в под-слот Fallback.

Создание и настройки комплексного слота NLU (NLU + Intent + Fallback)

Атрибуты слота

  1. Name – название слота. Максимальная длина значения поля — 40 символов.

    1. При сохранении Слота проверяется значение в поле:

  2. Confidence Threshold – выраженное в процентах минимальное значение уверенности в распознанном намерении, при котором интент считается распознанным, и общение переходит в ветку соответствующего под-слота Intent. Значение Confidence threshold может быть целым числом от 0 до 100.

    1. Значение Confidence Threshold зависит от количества интентов в Дереве Сценария. Рекомендуется, чтобы значение было обратно пропорционально количеству под-слотов Intent в Сценарии: чем больше интентов, тем меньше должен быть Confidence Threshold.

    2. Для начала рекомендуется сначала устанавливать значение, равное 15 – при таком Confidence Threshold распознавание происходит наиболее успешно у большинства Ботов. В зависимости от результатов тестирования Бота Confidence Threshold можно будет изменить. Подробнее в разделе Подбор оптимального значения Confidence Threshold.

    3. Каждому сообщению Собеседника присваивается значение Confidence (число от 0 до 1). Confidence характеризует уверенность Бота в том, что сообщение относится к определенному интенту.

    4. Значение Confidence Threshold – это выраженное в процентах минимальное значение Confidence, при котором Бот переходит в слот одного из интентов. Если значение Confidence меньше Confidence threshold, Бот переходит в слот Fallback.

    5. При сохранении Слота проверяется значение в поле:

pageТестирование и улучшение распознавания Агента: подбор Confidence threshold

Атрибуты подслота intent

  1. Name — название слота, которое будет отображено в Дереве сценария. Максимальная длина значения поля — 40 символов. Если название не введено, Платформа автоматически копирует название Интента из поля Intent в поле Name.

    1. При сохранении Слота проверяется значение в поле:

  2. Intent* — Интент, при распознании которого Сценарий пойдет по Ветке сценария , следующей за данным интентом.

    1. При сохранении Слота проверяется значение в поле:

  3. Кнопка 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.

Процесс распознавания интентов

  1. Обучение: слот NLU обучается на выборках интентов, добавленных в качестве его под-слотов Intent и после этого становится частью обученной модели Агента.

  2. Получение реплики: слот NLU в обученной модели Агента на входе принимает реплики Собеседниковー текст из переменной client_message.

  3. Классификация реплики: Обученная модель Агента производит классификацию реплики Собеседника из переменной client_message и расставляет все интенты данного слота NLU по уровню уверенности в них ー Confidence (в процентах, аналогично Confidence Threshold).

  4. Сохранение топ-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 значение задается в процентах, а в данной Контекстной переменной — в долях от единицы.

  5. Переход в интент: переход осуществляется в интент с максимальным Confidence при условии, что Confidence >= Confidence Threshold в настройках данного слота NLU, и является интентом, которым распознана реплика Собеседника. Как следствие:

    • Общение перейдет в ветку данного под-слота Intent;

    • В системных контекстных переменных создается переменная intent_name ー название распознанного интента;

    • В системных контекстных переменных создается переменная confidence – степень уверенности Бота в том, что реплика Собеседника относится к данному интенту (в процентах);

    • Переменные intent_name и confidence сохраняются в контексте Чата до следующего выполнения этого же или другого слота NLU в данном Чате .

  6. Переход в Fallbaclk: переход в под-слот Fallbaclk осуществляется, если Confidence всех интентов ниже значения Confidence Threshold в настройках данного слота NLU. Это означает, что ни один из интентов не был распознан. Как следствие:

    • Общение перейдет в ветку данного под-слота Fallback;

    • В системных контекстных переменных создается переменная error – текст ошибки. Значение error сохраняется в контексте Чата до: - Следующего выполнения этого же или другого слота NLU; - Выполнения слота Regular Expression; - Выполнения слота External Request.

Пример

В данном случае реплика Собеседника была отнесена слотом NLU к интенту joke, и Сценарий перешел по соответствующей данному интенту ветке.

Last updated