Определение намерений, речевых фрагментов и сущностей

Завершено

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

Например, рассмотрим следующий список намерений и связанных речевых фрагментов:

  • GetTime:
    • "Который час?"
    • "Сколько сейчас времени?"
    • "Скажи мне время."
  • GetWeather:
    • "Сообщи мне прогноз погоды."
    • "Мне понадобится зонт?"
    • "Пойдет ли снег?"
  • TurnOnDevice:
    • "Включи освещение."
    • "Включай освещение."
    • "Включи вентилятор."
  • Нет:
    • "Здравствуйте"
    • "До свидания."

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

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

  • Запишите различные примеры или другие способы сказать то же самое.
  • Меняйте длину высказывания с короткого, до среднего, до длинного.
  • Меняйте расположение существительного илиподлежащего высказывания. Поместите его в начало, конец или где-то в середине.
  • Используйте правильную грамматику и неверную грамматику в разных высказываниях, чтобы дать хорошие примеры для обучения.
  • Точность, согласованность и полнота данных с метками являются ключевыми факторами для определения производительности модели.
    • Добавляйте метки точно. Обязательно добавляйте метки правильного типа к каждой сущности. Включайте только те данные, которые нужно извлечь. Не добавляйте в метки ненужные данные.
    • Добавляйте метки согласованно. У одной сущности должна быть одна и та же метка во всех речевых фрагментах.
    • Добавляйте метки ко всем данным. Добавляйте метки ко всем экземплярам сущности во всех речевых фрагментах.

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

Рассмотрим следующие речевые фрагменты, намерения и сущности:

Фраза Намерение Сущности
Сколько сейчас времени? GetTime
Какое сейчас время в Лондоне? GetTime Location (Лондон)
Какой прогноз погоды для Парижа? GetWeather Location (Париж)
Нужен ли мне зонт сегодня вечером? GetWeather Time (сегодня вечером)
Какой прогноз для Сиэтла завтра? GetWeather Location (Сиэтл), Time (завтра)
Включи освещение. TurnOnDevice Device (освещение)
Включи вентилятор. TurnOnDevice Device (вентилятор)

Сущности можно разделить на несколько различных типов компонентов:

  • Изученные сущности являются наиболее гибкими. Их следует использовать в большинстве случаев. Вы определяете изученный компонент с подходящим именем, а затем связываете слова или фразы с этим компонентом в речевых фрагментах, используемых для обучения. При обучении модели она учится сопоставлять соответствующие элементы в речевых фрагментах с сущностью.
  • Сущности типа Список полезны, если требуется сущность с определенным набором возможных значений (например, дни недели). В определение сущности типа "Список" можно включить синонимы. Таким образом, можно определить сущность DayOfWeek (день недели), включающую значения "Понедельник", "Вторник", "Среда" и т. д., у каждой из которых будут синонимы, например "Пн", "Вт", "Ср" и т. д.
  • Предварительно созданные сущности удобно использовать для распространенных типов, таких как числа, дата и время и имена. Например, при добавлении предварительно созданных компонентов вы будете автоматически определять значения, такие как "6", или организации, такие как "Майкрософт". Список поддерживаемых предварительно созданных сущностей приведен в этой статье.