Сбор данных для приложения

Важно!

Поддержка LUIS будет прекращена 1 октября 2025 г., а начиная с 1 апреля 2023 г. вы не сможете создавать новые ресурсы LUIS. Мы рекомендуем перенести приложения LUIS в распознавание устной речи , чтобы воспользоваться преимуществами постоянной поддержки продуктов и многоязычных возможностей.

В процессе разработки приложения для распознавания речи (LUIS) ему требуются данные.

Данные, используемые в LUIS

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

Выбор обучающих данных в качестве примеров речевых фрагментов

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

  • Лучше использовать реальные данные.

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

    • Региональное разнообразие. Данные для каждого намерения должны быть как можно более разнообразными, включая способы формулировки (подбор слов) и грамматику. Если намерение касается политики отдела кадров в отношении дней отпуска, в речевых фрагментах должны быть представлены термины, используемые во всех охватываемых регионах. Например, в Европе сотрудники могут запрашивать taking a holiday, а в США — taking vacation days.
    • Языковое разнообразие. Если у вас есть пользователи из разных стран, которые общаются на неродном для себя языке, речевые фрагменты должны представлять речевые особенности таких пользователей.
    • Разнообразие входных данных. Обратите внимание на путь поступления данных. Если вы собираете данные от одного человека, отдела или устройства ввода (например, микрофона), скорее всего, данные будут недостаточно разнообразны. Приложение должно уметь работать с различными источниками данных.
    • Разнообразие в плане пунктуации. Учитывайте, что люди используют знаки препинания с разной степенью грамотности в текстовых приложениях. Если вы используете данные, полученные в результате обработки устной речи, знаков препинания в них не будет.
  • Распределение данных. Распределение данных по намерениям должно отражаться в данных, получаемых клиентским приложением. Если ваше приложение LUIS будет классифицировать речевые фрагменты с запросами на планирование отпуска (50 %), запросами касательно оставшихся отпускных дней (20 %), касательно одобрения отпуска (20 %), а также речевые фрагменты, посвященные посторонним темам (10 %), в наборе данных разные типы речевых фрагментов должны быть представлены в тех же пропорциях.

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

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

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

    Например, вы создаете бота для отдела кадров, предназначенного для обработки запросов касательно отпусков, и у вас есть три намерения:

    • планирование или изменение сроков отпуска;
    • запрос касательно доступных дней отпуска;
    • утверждение или отклонение запроса на отпуск.

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

    • What are my medical benefits?
    • Who is my HR rep?
    • tell me a joke
  • Редкие примеры. В приложении должны быть охвачены как редкие, так и распространенные примеры. Если приложение никогда не сталкивалось с редкими примерами, оно не сможет распознать их в процессе работы. Если вы используете реальные данные, то сможете более точно спрогнозировать поведение приложения LUIS в рабочей среде.

Качество вместо количества

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

Предварительная обработка данных

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

  • Удалите дубликаты. Повторяющиеся речевые фрагменты вреда не нанесут, но и пользы от них нет. Удалив их, вы сэкономите время, требуемое для маркировки данных.
  • Применяйте ту же предварительную обработку, что и в клиентском приложении. Если клиентское приложение, которое обращается к конечной точке прогнозирования LUIS, применяет обработку данных во время выполнения перед отправкой текста в LUIS, обучать приложение LUIS следует на основе данных, обработанных таким же образом.
  • Не применяйте дополнительные процессы очистки, которые не используются клиентским приложением. Если клиентское приложение принимает текст, преобразованный из речи, напрямую без каких-либо исправлений, например грамматики или пунктуации, это должно отражаться в речевых фрагментах, то есть должны учитываться отсутствующие знаки препинания и другие ошибки распознавания.
  • Не очищайте данные. Не изменяйте некорректные входные данные, которые могут быть результатом искажений при распознавании речи, случайных нажатий клавиш или опечаток. Если приложение будет работать с такими входными данными, важно, чтобы оно было обучено и протестировано с их использованием. Если приложение не должно понимать такие данные, добавьте намерение Некорректные входные данные. Промаркируйте эти данные, чтобы помочь приложению LUIS прогнозировать правильный ответ во время выполнения. Клиентское приложение может выбрать подходящий ответ на непонятные речевые фрагменты, например Please try again.

Маркировка данных

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

Проверка данных после запуска приложения LUIS в рабочей среде

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

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

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

Не используйте речевые фрагменты из обучающего набора в тестовом наборе. Это приведет к необъективности результатов и неправильному представлению о том, как приложение LUIS будет работать в реальности.

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

Дальнейшие действия

Узнайте, как LUIS изменяет данные перед прогнозированием