Поделиться через


Пакетное тестирование с помощью набора примеров высказываний

Внимание

Интеллектуальная служба распознавания речи (LUIS) будет полностью прекращена 31 марта 2026 года. Создание ресурсов LUIS недоступно. Начиная с 31 октября 2025 г. портал LUIS больше не будет доступен. Мы рекомендуем перенос приложений LUIS на платформу понимания разговорного языка, чтобы пользоваться продолжением поддержки продукта и многоязычными возможностями.

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

Группировка данных для пакетного тестирования

Очень важно применять для пакетного тестирования высказывания, еще не знакомые службе LUIS. Если у вас есть набор речевых фрагментов, разделите их на три части: примерные речевые фрагменты, добавленные в интенцию; фрагменты, полученные от опубликованной конечной точки; и фрагменты, используемые для пакетного тестирования LUIS после обучения.

Пакетный JSON-файл, который вы используете, должен включать высказывания с отмеченными сущностями верхнего уровня машинного обучения, включая начальную и конечную позиции. Речевые фрагменты не должны принадлежать к примерам, которые уже есть в приложении. Это должны быть речевые фрагменты, которые необходимо положительно прогнозировать для намерений и сущностей.

Вы можете разделить тестовые элементы по намерению и (или) сущности или расположить все эти элементы (до 1000 речевых фрагментов) в одном файле.

Распространенные ошибки при импорте пакета

Если при отправке пакетного файла в LUIS произошли ошибки, проверьте, не вызваны ли они одной из следующих распространенных причин:

  • Более 1000 речевых фрагментов в пакетном файле.
  • Объект JSON, содержащий высказывание, не имеет свойства entities. Свойство может быть пустым массивом.
  • Слова, отмеченные в нескольких сущностях.
  • Метки сущностей с пробелом в начале или в конце.

Исправление ошибок, выявленных при пакетном тестировании

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

Пакетное тестирование с помощью портала LUIS

Импорт и настройка примерного приложения

Импортируйте приложение для заказа пиццы, например 1 pepperoni pizza on thin crust.

  1. Загрузите и сохраните JSON-файл приложения.

  2. Войдите на портал LUIS и выберите Подписка и Ресурс для разработки, чтобы просмотреть приложения, назначенные этому ресурсу для разработки.

  3. Щелкните стрелку рядом с полем Новое приложение и выберите Импорт JSON, чтобы импортировать JSON в новое приложение. Присвойте приложению имя Pizza app.

  4. Выберите Обучение в правом верхнем углу области навигации, чтобы обучить приложение.

Роли в пакетном тестировании

Внимание

Роли сущности не поддерживаются при пакетном тестировании.

Файл для пакетного тестирования

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

  1. Создайте файл pizza-with-machine-learned-entity-test.json в текстовом редакторе или скачайте его.

  2. В пакетный файл в формате JSON добавьте речевой фрагмент с намерением, которое должно быть спрогнозировано в тесте.

    [
        {
            "text": "I want to pick up 1 cheese pizza",
            "intent": "ModifyOrder",
            "entities": [
                {
                    "entity": "Order",
                    "startPos": 18,
                    "endPos": 31
                },
                {
                    "entity": "ToppingList",
                    "startPos": 20,
                    "endPos": 25
                }
            ]
        }
    ]
    

Запуск пакета

  1. Нажмите кнопку Test (Тестировать) в верхней панели навигации.

  2. Выберите Batch testing panel на правой панели.

    Ссылка для пакетного тестирования

  3. Выберите Импорт. Откроется диалоговое окно, в котором нужно нажать Выбрать файл. Затем найдите JSON-файл с правильным форматом JSON, содержащий не более 1000 речевых фрагментов для тестирования.

    Ошибки импорта выводятся в красной строке уведомлений в верхней части браузера. Если при импорте возникают ошибки, набор данных не создается. Дополнительные сведения см. в разделе об общих ошибках.

  4. Выберите расположение файла pizza-with-machine-learned-entity-test.json.

  5. Назовите набор данных pizza test и выберите Готово.

  6. Нажмите кнопку Запустить.

  7. Когда пакетное тестирование завершится, вы увидите такие столбцы:

    Столбец Описание
    Штат Состояние теста. Элемент интерфейса Просмотреть результаты отображается только после завершения теста.
    Имя. Имя, которое вы присвоили тесту.
    Размер Количество тестов в этом файле для пакетного тестирования.
    Последний запуск Дата последнего выполнения этого файла для пакетного тестирования.
    Последний результат Количество успешных прогнозов в тесте.
  8. Чтобы просмотреть подробные результаты теста, выберите Просмотреть результаты.

    Совет

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

Просмотр намерений в результатах пакетного тестирования

Чтобы просмотреть результаты пакетного тестирования, щелкните See results (Просмотреть результаты). Результаты теста графически показывают, как тестовые речевые фрагменты спрогнозированы для активной версии.

Пакетная диаграмма отображает четыре квадранта результатов. В правой части диаграммы находится фильтр. Фильтр содержит намерения и сущности. При выборе раздела диаграммы или точки внутри диаграммы соответствующие высказывания отображаются под диаграммой.

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

Диаграмма состоит из четырех квадрантов, два из которых выделены красным цветом.

  1. В списке фильтров выберите намерение ModifyOrder. Речевой фрагмент спрогнозирован как истинно положительный результат. Это означает, что речевой фрагмент совпал с его положительным прогнозом, указанным в пакетном файле.

    Речевой фрагмент успешно совпал с положительным предсказанием

    Зеленые флажки в списке фильтров также указывают на успешное выполнение теста для каждого намерения. Все остальные намерения перечислены с положительной оценкой 1/1, потому что речевой фрагмент был протестирован для каждого намерения, как отрицательный тест для всех намерений, не перечисленных в пакетном тесте.

  2. Выберите намерение Подтверждение. Это намерение не указано в пакетном тесте, поэтому является негативным тестом для высказывания, которое указано в пакетном тесте.

    Речевой фрагмент спрогнозирован как отрицательный для неуказанного намерения в пакетном файле

    Отрицательный тест выполнен успешно, как отмечено зеленым текстом в фильтре и на сетке.

Проверка результатов пакетного тестирования для сущностей

Сущность ModifyOrder, как машинная сущность с подсущностями, показывает, соответствует ли ожиданиям сущность верхнего уровня и как прогнозируются подсущности.

  1. Выберите сущность ModifyOrder в списке фильтров, а затем выберите круг на сетке.

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

    Родительская сущность успешно спрогнозирована в пакетном файле

Фильтровать результаты диаграммы

Чтобы отфильтровать диаграмму по определенному намерению или сущности, выберите намерение или сущность на панели фильтрации справа. Точки данных и их распределение на диаграмме обновляются в зависимости от выбора.

Визуализированный результат пакетного тестирования

Примеры результатов на диаграммах

На диаграмме в портале LUIS можно выполнять следующие действия.

Просмотр данных высказывания для одной точки

На диаграмме наведите указатель мыши на точку данных, чтобы увидеть оценку достоверности ее прогнозирования. Выберите точку данных для извлечения ее соответствующего высказывания из списка высказываний в нижней части страницы.

Выбранное высказывание

Просмотр данных раздела

На диаграмме, состоящей из четырех частей, выберите название раздела, например, False Positive (Ложноположительный результат), в правом верхнем углу диаграммы. Все высказывания в указанном разделе отображаются под диаграммой в виде списка.

Высказывания, выбранные по разделу

На предыдущем рисунке высказывание switch on помечено с интенцией TurnAllOn, но получило прогноз намерения None. Это указывает на то, что для интента TurnAllOn необходимы дополнительные высказывания для получения ожидаемого результата прогноза.

Два красных раздела на диаграмме указывают на высказывания, которые не соответствуют ожидаемому прогнозированию. Это значит, что LUIS требуется дополнительное обучение.

Два зеленых раздела на диаграмме означают соответствие ожидаемому прогнозированию.

Следующие шаги

Если тестирование показывает, что приложение LUIS не распознает правильные намерения и сущности, вы можете повысить производительность приложения LUIS, пометив дополнительные высказывания или добавив компоненты.