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


Краткое руководство. Анализ пользовательских тональности (предварительная версия)

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

Необходимые компоненты

Создание нового ресурса службы "Язык" Azure и учетной записи хранения Azure

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

Внимание

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

Создание ресурса на портале Azure

  1. Перейдите к портал Azure, чтобы создать новый ресурс языка искусственного интеллекта Azure.

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

    Снимок экрана: настраиваемая классификация текста и распознавание именованных сущностей в портал Azure.

  3. Создайте ресурс службы "Язык" с приведенными ниже сведениями.

    Имя Описание
    Подписка Вашу подписку Azure.
    Группа ресурсов Группа ресурсов, которая будет содержать ваш ресурс. Можно использовать существующую группу или создать новую.
    Область/регион Регион для ресурса службы "Язык". Например, "Западная часть США 2".
    Имя. Имя ресурса.
    Ценовая категория Ценовая категория ресурса Языка. Вы можете использовать уровень "Бесплатный" (F0), чтобы поработать со службой.

    Примечание.

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

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

    Значение для учетной записи хранения Рекомендуемое значение
    Storage account name Любое имя
    Storage account type Standard LRS
  5. Убедитесь, что флажок Уведомление об ответственном применении ИИ установлен. В нижней части страницы щелкните Просмотр и создание, а затем нажмите Создать.

Отправка примера данных в контейнер BLOB-объектов

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

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

  1. Поиск файлов для отправки в учетную запись хранения

  2. На портале Azure перейдите к созданной учетной записи хранения и выберите ее.

  3. В учетной записи хранения в меню слева выберите Контейнеры под пунктом Хранилище данных. На появившемся экране нажмите + Контейнер. Присвойте контейнеру имя example-data и оставьте Уровень общего доступа, установленный по умолчанию.

    Снимок экрана: главная страница учетной записи хранения.

  4. Когда контейнер будет создан, выберите его. Затем нажмите кнопку "Отправить", чтобы выбрать .txt скачанные ранее файлы..json

    Снимок экрана: кнопка для отправки файлов в учетную запись хранения.

Создание проекта анализа тональности

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

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

  2. Выберите функцию, которую вы хотите использовать в Language Studio.

  3. Щелкните Create new project (Создать новый проект) в меню в верхней части страницы проектов. Создание проекта позволяет помечать данные, обучать, оценивать, улучшать и развертывать модели.

    Снимок экрана: страница создания проекта.

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

    Совет

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

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

    Примечание.

    • Этот шаг нужно выполнить только один раз для каждого нового используемого ресурса.
    • Этот процесс необратим. Если учетная запись хранения будет подключена к ресурсу службы "Язык", ее нельзя будет отключить позже.
    • Вы можете подключить ресурс службы "Язык" только к одной учетной записи хранения.
  6. Выберите контейнер, в который отправили набор данных.

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

  8. Проверьте введенные данные и щелкните Create Project (Создать проект).

Обучение модели

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

Чтобы начать обучение модели в студии службы "Язык", сделайте следующее:

  1. Выберите элемент Задания обучения в меню слева.

  2. В верхнем меню выберите Запустить задание на обучение.

  3. Щелкните Train a new model (Обучить новую модель) и введите имя модели в текстовое поле. Можно также перезаписать существующую модель. Для этого выберите соответствующий параметр и укажите модель, которую требуется перезаписать, в раскрывающемся меню. Перезапись обученной модели необратима, но это не повлияет на развернутые модели до тех пор, пока вы не развернете новую модель.

    Создание задания на обучение

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

  5. Нажмите кнопку Обучить.

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

    Примечание.

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

Развертывание модели

Обычно после обучения модели изучаются сведения об оценке и вносятся необходимые улучшения. В этом кратком руководстве вы просто развернете модель и предоставите себе к ней доступ в студии службы "Язык". Можно также вызвать API прогнозирования.

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

  1. В меню слева выберите Развертывание модели.

  2. Выберите " Добавить развертывание", чтобы запустить новое задание развертывания.

    Снимок экрана: кнопка развертывания

  3. Выберите Создать развертывание, чтобы создать развертывание и назначить обученную модель из раскрывающегося списка ниже. Можно также выбрать вариант Overwrite an existing deployment (Перезаписать существующее развертывание) и выбрать обученную модель, которую требуется назначить развертыванию, в раскрывающемся списке ниже.

    Примечание.

    Для перезаписи существующего развертывания не требуется вносить изменения в вызов API прогнозирования, но после этого вы будете получать результаты от новой назначенной модели.

    Снимок экрана: экран развертывания

  4. Выберите "Развернуть" , чтобы запустить задание развертывания.

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

Тестирование модели

Развернутую модель можно начать использовать для классификации текста с помощью API прогнозирования. В этом кратком руководстве вы будете использовать Language Studio для отправки задачи "Пользовательский анализ тональности" и визуализации результатов. Загруженный ранее пример набора данных содержит некоторые тестовые документы, которые можно использовать на этом шаге.

Чтобы протестировать развернутые модели в Language Studio, выполните следующие действия.

  1. В меню слева выберите Testing deployments (Тестирование развертываний).

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

  3. Для многоязычных проектов выберите язык тестируемого текста из раскрывающегося списка языков.

  4. Выберите развертывание, которое требуется запросить или протестировать, из раскрывающегося списка.

  5. Введите текст, который требуется отправить в запросе, или отправьте файл .txt, который требуется использовать.

  6. Выберите "Запустить тест " в верхнем меню.

  7. На вкладке Result (Результат) можно просмотреть извлеченные из текста сущности и их типы. Вы также можете просмотреть ответ JSON на вкладке JSON.

Очистка проектов

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

Необходимые компоненты

Создание нового ресурса службы "Язык" Azure и учетной записи хранения Azure

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

Внимание

Чтобы быстро начать работу, рекомендуем создать в Azure новый ресурс службы "Язык", выполнив приведенные в этой статье действия. Проще сразу создать ресурс службы "Язык" и создать и (или) подключить учетную запись хранения, чем делать это отдельно позже.

Создание ресурса на портале Azure

  1. Перейдите к портал Azure, чтобы создать новый ресурс языка искусственного интеллекта Azure.

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

    Снимок экрана: настраиваемая классификация текста и распознавание именованных сущностей в портал Azure.

  3. Создайте ресурс службы "Язык" с приведенными ниже сведениями.

    Имя Описание
    Подписка Вашу подписку Azure.
    Группа ресурсов Группа ресурсов, которая будет содержать ваш ресурс. Можно использовать существующую группу или создать новую.
    Область/регион Регион для ресурса службы "Язык". Например, "Западная часть США 2".
    Имя. Имя ресурса.
    Ценовая категория Ценовая категория ресурса Языка. Вы можете использовать уровень "Бесплатный" (F0), чтобы поработать со службой.

    Примечание.

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

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

    Значение для учетной записи хранения Рекомендуемое значение
    Storage account name Любое имя
    Storage account type Standard LRS
  5. Убедитесь, что флажок Уведомление об ответственном применении ИИ установлен. В нижней части страницы щелкните Просмотр и создание, а затем нажмите Создать.

Отправка примера данных в контейнер BLOB-объектов

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

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

  1. Поиск файлов для отправки в учетную запись хранения

  2. На портале Azure перейдите к созданной учетной записи хранения и выберите ее.

  3. В учетной записи хранения в меню слева выберите Контейнеры под пунктом Хранилище данных. На появившемся экране нажмите + Контейнер. Присвойте контейнеру имя example-data и оставьте Уровень общего доступа, установленный по умолчанию.

    Снимок экрана: главная страница учетной записи хранения.

  4. Когда контейнер будет создан, выберите его. Затем нажмите кнопку "Отправить", чтобы выбрать .txt скачанные ранее файлы..json

    Снимок экрана: кнопка для отправки файлов в учетную запись хранения.

Получение ключа и конечной точки

Затем вам потребуется ключ и конечная точка из ресурса для подключения приложения к API. Ключ и конечную точку вы вставите в код позднее при работе с кратким руководством.

  1. После успешного развертывания ресурса языка нажмите кнопку "Перейти к ресурсу " в разделе "Дальнейшие действия".

    Снимок экрана: следующие шаги после развертывания ресурса.

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

    Снимок экрана: раздел

Создание проекта анализа тональности

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

Активация задания импорта проектов

Отправьте запрос POST, используя следующий URL-адрес, заголовки и текст JSON, чтобы импортировать файл меток.

Если проект с таким именем уже существует, данные этого проекта заменяются.

{Endpoint}/language/authoring/analyze-text/projects/{projectName}/:import?api-version={API-VERSION}
Заполнитель Значение Пример
{ENDPOINT} Конечная точка для проверки подлинности запроса API. https://<your-custom-subdomain>.cognitiveservices.azure.com
{PROJECT-NAME} Имя проекта. Это значение учитывает регистр. myProject
{API-VERSION} Версия вызываемого API. Указанное здесь значение определяет последнюю выпущенную версию модели. Узнайте больше о других доступных версиях API. 2023-04-15-preview

Заголовки

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

Ключ Значение
Ocp-Apim-Subscription-Key Ключ к ресурсу. Используется для проверки подлинности запросов API.

Текст

Используйте следующий код JSON в запросе. Замените значения заполнителей ниже собственными значениями.

{
  "projectFileVersion": "2023-04-15-preview",
  "stringIndexType": "Utf16CodeUnit",
  "metadata": {
    "projectKind": "CustomTextSentiment",
    "storageInputContainerName": "text-sentiment",
    "projectName": "TestSentiment",
    "multilingual": false,
    "description": "This is a Custom sentiment analysis project.",
    "language": "en-us"
  },
  "assets": {
    "projectKind": "CustomTextSentiment",
    "documents": [
      {
        "location": "documents/document_1.txt",
        "language": "en-us",
        "sentimentSpans": [
            {
                "category": "negative",
                "offset": 0,
                "length": 28
            }
        ]
      },
      {
          "location": "documents/document_2.txt",
          "language": "en-us",
          "sentimentSpans": [
              {
                  "category": "negative",
                  "offset": 0,
                  "length": 24
              }
          ]
      },
      {
          "location": "documents/document_3.txt",
          "language": "en-us",
          "sentimentSpans": [
              {
                  "category": "neutral",
                  "offset": 0,
                  "length": 18
              }
          ]
      }
    ]
  }
}


Ключ Заполнитель Значение Пример
api-version {API-VERSION} Версия вызываемого API. Используемая здесь версия должна совпадать с версией API в URL-адресе. Узнайте больше о других доступных версиях API. 2023-04-15-preview
projectName {PROJECT-NAME} Имя проекта. Это значение учитывает регистр. myProject
projectKind CustomTextSentiment Тип проекта. CustomTextSentiment
язык {LANGUAGE-CODE} Строка, указывающая код языка для документов, используемых в проекте. Если проект является многоязычным, выберите код языка большинства документов. См. дополнительные сведения о поддержке нескольких языков. en-us
multilingual true Логическое значение, позволяющее иметь документы на нескольких языках в наборе данных и при развертывании модели можно запрашивать модель на любом поддерживаемом языке, не обязательно включенном в учебные документы. См. дополнительные сведения о поддержке нескольких языков. true
storageInputContainerName {CONTAINER-NAME} Имя контейнера хранилища Azure, в который вы отправили документы. myContainer
документов [] Массив, содержащий все документы в проекте и классы, помеченные для этого документа. []
расположение {DOCUMENT-NAME} Расположение документов в контейнере хранилища. Так как все документы находятся в корне контейнера, это должно быть имя документа. doc1.txt
тональности {sentimentSpans} Тональность документа (положительный, нейтральный, отрицательный), позиция, в которой начинается тональность, и ее длина. []

После отправки запроса API вы получите ответ 202, указывающий, что задание было отправлено правильно. Извлеките значение operation-location из заголовков ответа. Оно будет иметь следующий формат:

{ENDPOINT}/language/authoring/analyze-text/projects/{PROJECT-NAME}/import/jobs/{JOB-ID}?api-version={API-VERSION}

{JOB-ID} используется для идентификации запроса, так как эта операция является асинхронной. Этот URL-адрес будет использоваться для получения состояния задания импорта.

Возможные сценарии ошибок для этого запроса:

  • указанный storageInputContainerName не существует;
  • используется недопустимый код языка или тип кода языка не является строковым;
  • Значение multilingual является строкой, а не логическим значением.

Получение сведений о состоянии задания на импорт

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

Запросить URL-адрес

{ENDPOINT}/language/authoring/analyze-text/projects/{PROJECT-NAME}/import/jobs/{JOB-ID}?api-version={API-VERSION}
Заполнитель Значение Пример
{ENDPOINT} Конечная точка для проверки подлинности запроса API. https://<your-custom-subdomain>.cognitiveservices.azure.com
{PROJECT-NAME} Имя проекта. Это значение учитывает регистр. myProject
{JOB-ID} Идентификатор для поиска состояния обучения модели. Значение заголовка location, полученное на предыдущем шаге. xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxx
{API-VERSION} Версия вызываемого API. Указанное здесь значение определяет последнюю выпущенную версию модели. Узнайте больше о других доступных версиях API. 2023-04-15-preview

Заголовки

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

Ключ Значение
Ocp-Apim-Subscription-Key Ключ к ресурсу. Используется для проверки подлинности запросов API.

Обучение модели

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

Начало обучения модели

После импорта проекта можно начать обучение модели.

Отправьте запрос POST, используя следующий URL-адрес, заголовки и текст JSON, чтобы отправить задание обучения. Замените значения заполнителей собственными значениями.

{ENDPOINT}/language/authoring/analyze-text/projects/{PROJECT-NAME}/:train?api-version={API-VERSION}
Заполнитель Значение Пример
{ENDPOINT} Конечная точка для проверки подлинности запроса API. https://<your-custom-subdomain>.cognitiveservices.azure.com
{PROJECT-NAME} Имя проекта. Это значение учитывает регистр. myProject
{API-VERSION} Версия вызываемого API. Указанное здесь значение определяет последнюю выпущенную версию модели. Узнайте больше о других доступных версиях API. 2023-04-15-preview

Заголовки

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

Ключ Значение
Ocp-Apim-Subscription-Key Ключ к ресурсу. Используется для проверки подлинности запросов API.

Текст запроса

Используйте следующий код JSON в тексте запроса. После завершения обучения модель получит имя {MODEL-NAME}. Модели создаются только в результате успешных заданий обучения.

{
	"modelLabel": "{MODEL-NAME}",
	"trainingConfigVersion": "{CONFIG-VERSION}",
	"evaluationOptions": {
		"kind": "percentage",
		"trainingSplitPercentage": 80,
		"testingSplitPercentage": 20
	}
}
Ключ Заполнитель Значение Пример
modelLabel {MODEL-NAME} Имя модели, которое будет назначено ей после успешного обучения. myModel
trainingConfigVersion {CONFIG-VERSION} Это версия модели, которая будет использоваться для обучения модели. 2023-04-15-preview
evaluationOptions Возможность разделять данные по наборам для обучения и тестирования. {}
kind percentage Методы разделения. Возможные значения: percentage или manual. percentage
trainingSplitPercentage 80 Процент помеченных тегами данных, которые будут включены в набор для обучения. Рекомендуемое значение — 80. 80
testingSplitPercentage 20 Процент помеченных тегами данных, которые будут включены в набор для тестирования. Рекомендуемое значение — 20. 20

Примечание.

trainingSplitPercentage и testingSplitPercentage требуются только в том случае, если для Kind задано значение percentage, а сумма процентных значений должна быть равна 100.

После отправки запроса API вы получите ответ 202, указывающий, что задание было отправлено правильно. Извлеките значение location из заголовков ответа. Оно будет иметь следующий формат:

{ENDPOINT}/language/authoring/analyze-text/projects/{PROJECT-NAME}/train/jobs/{JOB-ID}?api-version={API-VERSION}

{JOB-ID} используется для идентификации запроса, так как эта операция является асинхронной. Этот URL-адрес позволяет получить текущее состояние обучения.

Получение состояния задания обучения

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

Используйте следующий запрос GET, чтобы получить состояние хода обучения модели. Замените значения заполнителей собственными значениями.

Запросить URL-адрес

{ENDPOINT}/language/authoring/analyze-text/projects/{PROJECT-NAME}/train/jobs/{JOB-ID}?api-version={API-VERSION}
Заполнитель Значение Пример
{ENDPOINT} Конечная точка для проверки подлинности запроса API. https://<your-custom-subdomain>.cognitiveservices.azure.com
{PROJECT-NAME} Имя проекта. Это значение учитывает регистр. myProject
{JOB-ID} Идентификатор для поиска состояния обучения модели. Значение заголовка location, полученное на предыдущем шаге. xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxx
{API-VERSION} Версия вызываемого API. Указанное здесь значение определяет последнюю выпущенную версию модели. Дополнительные сведения о других доступных версиях API см. в статье о жизненном цикле модели. 2023-04-15-preview

Заголовки

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

Ключ Значение
Ocp-Apim-Subscription-Key Ключ к ресурсу. Используется для проверки подлинности запросов API.

Текст ответа

После отправки запроса вы получите следующий ответ.

{
  "result": {
    "modelLabel": "{MODEL-NAME}",
    "trainingConfigVersion": "{CONFIG-VERSION}",
    "estimatedEndDateTime": "2022-04-18T15:47:58.8190649Z",
    "trainingStatus": {
      "percentComplete": 3,
      "startDateTime": "2022-04-18T15:45:06.8190649Z",
      "status": "running"
    },
    "evaluationStatus": {
      "percentComplete": 0,
      "status": "notStarted"
    }
  },
  "jobId": "{JOB-ID}",
  "createdDateTime": "2022-04-18T15:44:44Z",
  "lastUpdatedDateTime": "2022-04-18T15:45:48Z",
  "expirationDateTime": "2022-04-25T15:44:44Z",
  "status": "running"
}

Развертывание модели

Обычно после обучения модели изучаются сведения об оценке и вносятся необходимые улучшения. В этом кратком руководстве вы просто развернете модель и предоставите себе к ней доступ в студии службы "Язык". Можно также вызвать API прогнозирования.

Отправка задания развертывания

Отправьте запрос PUT, используя следующий URL-адрес, заголовки и текст JSON, чтобы отправить задание развертывания. Замените значения заполнителей собственными значениями.

{Endpoint}/language/authoring/analyze-text/projects/{projectName}/deployments/{deploymentName}?api-version={API-VERSION}
Заполнитель Значение Пример
{ENDPOINT} Конечная точка для проверки подлинности запроса API. https://<your-custom-subdomain>.cognitiveservices.azure.com
{PROJECT-NAME} Имя проекта. Это значение учитывает регистр. myProject
{DEPLOYMENT-NAME} Имя развертывания. Это значение учитывает регистр. staging
{API-VERSION} Версия вызываемого API. Указанное здесь значение определяет последнюю выпущенную версию модели. Дополнительные сведения о других доступных версиях API см. в статье Жизненный цикл модели. 2023-04-15-preview

Заголовки

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

Ключ Значение
Ocp-Apim-Subscription-Key Ключ к ресурсу. Используется для проверки подлинности запросов API.

Текст запроса

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

{
  "trainedModelLabel": "{MODEL-NAME}"
}
Ключ Заполнитель Значение Пример
trainedModelLabel {MODEL-NAME} Имя модели, которое будет назначено развертыванию. Имена можно назначить только успешно обученным моделям. Это значение учитывает регистр. myModel

После отправки запроса API вы получите ответ 202, указывающий, что задание было отправлено правильно. Извлеките значение operation-location из заголовков ответа. Оно будет иметь следующий формат:

{ENDPOINT}/language/authoring/analyze-text/projects/{PROJECT-NAME}/deployments/{DEPLOYMENT-NAME}/jobs/{JOB-ID}?api-version={API-VERSION}

{JOB-ID} используется для идентификации запроса, так как эта операция является асинхронной. Этот URL-адрес можно использовать для получения состояния развертывания.

Получение состояния задания развертывания

Используйте следующий запрос GET для запроса состояния задания развертывания. Вы можете использовать URL-адрес, полученный на предыдущем шаге, или заменить значения заполнителей собственными значениями.

{ENDPOINT}/language/authoring/analyze-text/projects/{PROJECT-NAME}/deployments/{DEPLOYMENT-NAME}/jobs/{JOB-ID}?api-version={API-VERSION}
Заполнитель Значение Пример
{ENDPOINT} Конечная точка для проверки подлинности запроса API. https://<your-custom-subdomain>.cognitiveservices.azure.com
{PROJECT-NAME} Имя проекта. Это значение учитывает регистр. myProject
{DEPLOYMENT-NAME} Имя развертывания. Это значение учитывает регистр. staging
{JOB-ID} Идентификатор для поиска состояния обучения модели. Это значение находится в заголовке location, полученном на предыдущем шаге. xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxx
{API-VERSION} Версия вызываемого API. Указанное здесь значение определяет последнюю выпущенную версию модели. Дополнительные сведения о других доступных версиях API см. в статье Жизненный цикл модели. 2023-04-15-preview

Заголовки

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

Ключ Значение
Ocp-Apim-Subscription-Key Ключ к ресурсу. Используется для проверки подлинности запросов API.

Текст ответа

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

{
    "jobId":"{JOB-ID}",
    "createdDateTime":"{CREATED-TIME}",
    "lastUpdatedDateTime":"{UPDATED-TIME}",
    "expirationDateTime":"{EXPIRATION-TIME}",
    "status":"running"
}

Классификация текста

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

Отправка задачи анализа пользовательских тональности

Используйте этот запрос POST для запуска задачи классификации текста.

{ENDPOINT}/language/analyze-text/jobs?api-version={API-VERSION}
Заполнитель Значение Пример
{ENDPOINT} Конечная точка для проверки подлинности запроса API. https://<your-custom-subdomain>.cognitiveservices.azure.com
{API-VERSION} Версия вызываемого API. Указанное здесь значение определяет последнюю выпущенную версию модели. 2023-04-15-preview

Заголовки

Ключ Стоимость
Ocp-Apim-Subscription-Key Ключ, который предоставляет доступ к этому API.

Текст

{
  "displayName": "Detecting sentiment",
  "analysisInput": {
    "documents": [
      {
        "id": "1",
        "language": "{LANGUAGE-CODE}",
        "text": "Text1"
      },
      {
        "id": "2",
        "language": "{LANGUAGE-CODE}",
        "text": "Text2"
      }
    ]
  },
  "tasks": [
     {
      "kind": "CustomTextSentiment",
      "taskName": "Sentiment analysis",
      "parameters": {
        "projectName": "{PROJECT-NAME}",
        "deploymentName": "{DEPLOYMENT-NAME}"
      }
    }
  ]
}
Ключ Заполнитель Значение Пример
displayName {JOB-NAME} Имя задания. MyJobName
documents [{},{}] Список документов для запуска задач. [{},{}]
id {DOC-ID} Имя или идентификатор документа. doc1
language {LANGUAGE-CODE} Строка, указывающая код языка для документа. Если этот ключ не указан, служба будет использовать язык по умолчанию проекта, выбранный во время создания проекта. en-us
text {DOC-TEXT} Задача документа, для которого будут выполняться задачи. Lorem ipsum dolor sit amet
tasks Список задач, которые мы хотим выполнить. []
taskName CustomTextSentiment Имя задачи CustomTextSentiment
parameters Список параметров, которые нужно передать задаче.
project-name {PROJECT-NAME} Имя проекта. Это значение учитывает регистр. myProject
deployment-name {DEPLOYMENT-NAME} Имя развертывания. Это значение учитывает регистр. prod

Response

Вы получите ответ 202, обозначающий успешную отправку задачи. Извлеките значение operation-location из заголовков ответа. operation-location имеет следующий формат:

{ENDPOINT}/language/analyze-text/jobs/{JOB-ID}?api-version={API-VERSION}

Этот URL-адрес можно использовать для запроса состояния завершения задачи и получения результатов после ее завершения.

Получение результатов выполнения задачи

Используйте следующий запрос GET для запроса состояния или результатов пользовательской задачи распознавания сущностей.

{ENDPOINT}/language/analyze-text/jobs/{JOB-ID}?api-version={API-VERSION}
Заполнитель Значение Пример
{ENDPOINT} Конечная точка для проверки подлинности запроса API. https://<your-custom-subdomain>.cognitiveservices.azure.com
{API-VERSION} Версия вызываемого API. Указанное здесь значение определяет последнюю выпущенную версию модели. 2023-04-15-preview

Заголовки

Ключ Стоимость
Ocp-Apim-Subscription-Key Ключ, который предоставляет доступ к этому API.

Текст ответа

Ответ — это документ JSON со следующими параметрами.

{
  "createdDateTime": "2021-05-19T14:32:25.578Z",
  "displayName": "MyJobName",
  "expirationDateTime": "2021-05-19T14:32:25.578Z",
  "jobId": "xxxx-xxxx-xxxxx-xxxxx",
  "lastUpdateDateTime": "2021-05-19T14:32:25.578Z",
  "status": "succeeded",
  "tasks": {
    "completed": 1,
    "failed": 0,
    "inProgress": 0,
    "total": 1,
    "items": [
      {
        "kind": "EntityRecognitionLROResults",
        "taskName": "Recognize Entities",
        "lastUpdateDateTime": "2020-10-01T15:01:03Z",
        "status": "succeeded",
        "results": {
          "documents": [
            {
              "entities": [
                {
                  "category": "Event",
                  "confidenceScore": 0.61,
                  "length": 4,
                  "offset": 18,
                  "text": "trip"
                },
                {
                  "category": "Location",
                  "confidenceScore": 0.82,
                  "length": 7,
                  "offset": 26,
                  "subcategory": "GPE",
                  "text": "Seattle"
                },
                {
                  "category": "DateTime",
                  "confidenceScore": 0.8,
                  "length": 9,
                  "offset": 34,
                  "subcategory": "DateRange",
                  "text": "last week"
                }
              ],
              "id": "1",
              "warnings": []
            }
          ],
          "errors": [],
          "modelVersion": "2020-04-01"
        }
      }
    ]
  }
}

Очистка ресурсов

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

{Endpoint}/language/authoring/analyze-text/projects/{projectName}?api-version={API-VERSION}
Заполнитель Значение Пример
{ENDPOINT} Конечная точка для проверки подлинности запроса API. https://<your-custom-subdomain>.cognitiveservices.azure.com
{PROJECT-NAME} Имя проекта. Это значение учитывает регистр. myProject
{API-VERSION} Версия вызываемого API. Указанное здесь значение определяет последнюю выпущенную версию модели. Узнайте больше о других доступных версиях API. 2023-04-15-preview

Заголовки

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

Ключ Стоимость
Ocp-Apim-Subscription-Key Ключ к ресурсу. Используется для проверки подлинности запросов API.

После отправки запроса API вы получите ответ, указывающий 202 на успех, что означает, что проект удален. Ответ будет содержать заголовок Operation-Location, используемый для проверки состояния задания.

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

После создания пользовательской модели анализа тональности можно сделать следующее:

При создании собственных проектов анализа тональности используйте статьи, чтобы узнать больше о разработке модели.