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

Внимание

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

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

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

Расположение данных и использование ключа

LUIS извлекает данные из речевого фрагмента пользователя в опубликованной конечной точке. Запрос HTTPS (POST или GET) содержит высказывание, а также некоторые дополнительные конфигурации, например промежуточные или рабочие среды.

Запрос конечной точки прогнозирования V2

https://westus.api.cognitive.microsoft.com/luis/v2.0/apps/<appID>?subscription-key=<subscription-key>&verbose=true&timezoneOffset=0&q=book 2 tickets to paris

Запрос конечной точки прогнозирования V3

https://westus.api.cognitive.microsoft.com/luis/v3.0-preview/apps/<appID>/slots/<slot-type>/predict?subscription-key=<subscription-key>&verbose=true&timezoneOffset=0&query=book 2 tickets to paris

appID доступен на странице Параметры приложения LUIS, а также в составе URL-адреса (после /apps/) при редактировании этого приложения LUIS. subscription-key — это ключ конечной точки, используемый для запросов приложения. При использовании бесплатного ключа разработки или начального ключа во время обучения LUIS необходимо изменить ключ конечной точки на ключ, который поддерживает ожидаемое использование LUIS. Единица timezoneOffset в минутах.

Ответ HTTPS содержит все сведения о намерении и сущности, которые служба LUIS может определять на основе текущей опубликованной модели промежуточной или рабочей конечной точки. URL-адрес конечной точки указан на веб-сайте LUIS, раздел Управление, страница Ключи и конечные точки.

Данные из намерений

Основными данными является имя намерения с самой высокой оценкой. Ответ конечной точки:

{
  "query": "when do you open next?",
  "topScoringIntent": {
    "intent": "GetStoreInfo",
    "score": 0.984749258
  },
  "entities": []
}
Объект данных Тип данных Расположение данных Значение
Намерение Строка topScoringIntent.intent "GetStoreInfo"

Если ваш чат-бот или приложение для вызова LUIS принимает решение на основе нескольких оценок намерений, верните все оценки намерений.

Задайте параметр строки запроса, verbose=true. Ответ конечной точки:

{
  "query": "when do you open next?",
  "topScoringIntent": {
    "intent": "GetStoreInfo",
    "score": 0.984749258
  },
  "intents": [
    {
      "intent": "GetStoreInfo",
      "score": 0.984749258
    },
    {
      "intent": "None",
      "score": 0.2040639
    }
  ],
  "entities": []
}

Намерения упорядочены от имеющего самую высокую оценку до имеющего самую низкую оценку.

Объект данных Тип данных Расположение данных Значение Балл
Намерение Строка intents[0].intent "GetStoreInfo" 0,984749258
Намерение Строка intents[1].intent "None" 0,0168218873

При добавлении готовых предметных областей имя намерения указывает предметную область, такую как Utilties или Communication, а также намерение:

{
  "query": "Turn on the lights next monday at 9am",
  "topScoringIntent": {
    "intent": "Utilities.ShowNext",
    "score": 0.07842206
  },
  "intents": [
    {
      "intent": "Utilities.ShowNext",
      "score": 0.07842206
    },
    {
      "intent": "Communication.StartOver",
      "score": 0.0239675418
    },
    {
      "intent": "None",
      "score": 0.0168218873
    }],
  "entities": []
}
Домен Объект данных Тип данных Расположение данных Значение
Служебные инструменты Намерение Строка intents[0].intent "Utilities.ShowNext"
Коммуникации Намерение Строка intents[1].intent Communication.StartOver"
Намерение Строка intents[2].intent "None"

Данные из сущностей

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

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

Все сущности возвращаются в массиве сущностей ответа от конечной точки

Возвращенная размеченная сущность

Просмотрите сведения о поддержке токенов в LUIS.

Данные предварительно созданной сущности

Обнаружение предварительно созданных сущностей выполняется на основе совпадения регулярного выражения с помощью с проекта Recognizers-Text с открытым исходным кодом. Предварительно созданные сущности возвращаются в массиве сущностей и используют имя типа с префиксом builtin::.

Данные сущности списка

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

Данные сущности регулярного выражения

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

Извлечение имен

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

Добавление предварительно созданных сущностей PersonName и GeographyV2

Сущности PersonName и GeographyV2 доступны для некоторых языков и региональных параметров.

Имена людей

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

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

Имена мест

Для имен расположений используются названия городов, округов, регионов, областей и стран. Используйте предварительно созданную сущность geographyV2 для извлечения сведений о расположении.

Новые имена

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

Данные сущности Pattern.any

Patterns.any — это заполнитель переменной длины, используемый только в высказывании шаблона для пометки начала и окончания сущности. Сущность, используемая в шаблоне, должна быть найдена для того, чтобы шаблон был применен.

Анализ тональности

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

Данные сущности извлечения ключевой фразы

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

Данные, соответствующие нескольким сущностям

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

Данные, соответствующие нескольким сущностям списка

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

Для запроса when is the best time to go to red rock? и приложения, содержащего слово red более чем в одном списке, LUIS распознает все сущности и возвращает массив сущностей как часть ответа конечной точки в формате JSON.

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

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