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


Краткое руководство Анализ тональности и интеллектуальный анализ мнений

Справочная документация | по дополнительным примерам | пакета (NuGet) | Исходный код библиотеки

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

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

Установка

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

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

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

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

    Снимок экрана с дополнительными параметрами функций в портал Azure.

  3. На экране "Создание языка" укажите следующие сведения:

    Подробности Description
    Подписка Учетная запись подписки, с которым будет связан ваш ресурс. Выберите подписку Azure в раскрывающемся меню.
    Группа ресурсов Группа ресурсов — это контейнер, в который хранятся создаваемые ресурсы. Выберите Создать, чтобы создать группу ресурсов.
    Область/регион Расположение ресурса службы "Язык". Различные регионы могут привести к задержке в зависимости от физического расположения, но не влияют на доступность ресурса во время выполнения. В этом кратком руководстве выберите доступный регион рядом с вами или выберите восточную часть США.
    Имя. Имя ресурса языка. Это имя также будет использоваться для создания URL-адреса конечной точки, который приложения будут использовать для отправки запросов API.
    Ценовая категория Ценовая категория ресурса Языка. Вы можете использовать уровень "Бесплатный F0 ", чтобы попробовать службу и обновить ее позже до платного уровня для рабочей среды.

    Снимок экрана: сведения о создании ресурсов в портал Azure.

  4. Убедитесь, что установлен флажок "Уведомление об ответственном ИИ".

  5. В нижней части страницы выберите Просмотреть и создать.

  6. На появившемся экране убедитесь, что проверка прошла, и правильно ввели данные. Затем выберите Создать.

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

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

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

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

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

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

Создание переменной среды

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

Совет

Не включайте ключ непосредственно в код и никогда не публикуйте его. Дополнительные варианты проверки подлинности, такие как Azure Key Vault, см. в статье по безопасности служб ИИ Azure.

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

  1. Чтобы задать LANGUAGE_KEY переменную среды, замените your-key одним из ключей ресурса.
  2. Чтобы задать переменную среды, замените your-endpoint конечной LANGUAGE_ENDPOINT точкой ресурса.
setx LANGUAGE_KEY your-key
setx LANGUAGE_ENDPOINT your-endpoint

Примечание.

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

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

Создание приложения .NET Core

С помощью интегрированной среды разработки Visual Studio создайте консольное приложение .NET Core. При этом создается проект Hello World с одним исходным файлом C#: program.cs.

Установите клиентскую библиотеку, щелкнув правой кнопкой мыши решение в обозревателе решений и выбрав Управление пакетами NuGet. В открывшемся диспетчере пакетов выберите Просмотр и выполните поиск по запросу Azure.AI.TextAnalytics. Выберите версию 5.2.0, а затем Установить. Вы также можете использовать консоль диспетчера пакетов.

Пример кода

Скопируйте следующий код в файл program.cs и запустите код.

using Azure;
using System;
using Azure.AI.TextAnalytics;
using System.Collections.Generic;

namespace Example
{
    class Program
    {
        // This example requires environment variables named "LANGUAGE_KEY" and "LANGUAGE_ENDPOINT"
        static string languageKey = Environment.GetEnvironmentVariable("LANGUAGE_KEY");
        static string languageEndpoint = Environment.GetEnvironmentVariable("LANGUAGE_ENDPOINT");

        private static readonly AzureKeyCredential credentials = new AzureKeyCredential(languageKey);
        private static readonly Uri endpoint = new Uri(languageEndpoint);

        // Example method for detecting opinions text. 
        static void SentimentAnalysisWithOpinionMiningExample(TextAnalyticsClient client)
        {
            var documents = new List<string>
            {
                "The food and service were unacceptable. The concierge was nice, however."
            };

            AnalyzeSentimentResultCollection reviews = client.AnalyzeSentimentBatch(documents, options: new AnalyzeSentimentOptions()
            {
                IncludeOpinionMining = true
            });

            foreach (AnalyzeSentimentResult review in reviews)
            {
                Console.WriteLine($"Document sentiment: {review.DocumentSentiment.Sentiment}\n");
                Console.WriteLine($"\tPositive score: {review.DocumentSentiment.ConfidenceScores.Positive:0.00}");
                Console.WriteLine($"\tNegative score: {review.DocumentSentiment.ConfidenceScores.Negative:0.00}");
                Console.WriteLine($"\tNeutral score: {review.DocumentSentiment.ConfidenceScores.Neutral:0.00}\n");
                foreach (SentenceSentiment sentence in review.DocumentSentiment.Sentences)
                {
                    Console.WriteLine($"\tText: \"{sentence.Text}\"");
                    Console.WriteLine($"\tSentence sentiment: {sentence.Sentiment}");
                    Console.WriteLine($"\tSentence positive score: {sentence.ConfidenceScores.Positive:0.00}");
                    Console.WriteLine($"\tSentence negative score: {sentence.ConfidenceScores.Negative:0.00}");
                    Console.WriteLine($"\tSentence neutral score: {sentence.ConfidenceScores.Neutral:0.00}\n");

                    foreach (SentenceOpinion sentenceOpinion in sentence.Opinions)
                    {
                        Console.WriteLine($"\tTarget: {sentenceOpinion.Target.Text}, Value: {sentenceOpinion.Target.Sentiment}");
                        Console.WriteLine($"\tTarget positive score: {sentenceOpinion.Target.ConfidenceScores.Positive:0.00}");
                        Console.WriteLine($"\tTarget negative score: {sentenceOpinion.Target.ConfidenceScores.Negative:0.00}");
                        foreach (AssessmentSentiment assessment in sentenceOpinion.Assessments)
                        {
                            Console.WriteLine($"\t\tRelated Assessment: {assessment.Text}, Value: {assessment.Sentiment}");
                            Console.WriteLine($"\t\tRelated Assessment positive score: {assessment.ConfidenceScores.Positive:0.00}");
                            Console.WriteLine($"\t\tRelated Assessment negative score: {assessment.ConfidenceScores.Negative:0.00}");
                        }
                    }
                }
                Console.WriteLine($"\n");
            }
        }

        static void Main(string[] args)
        {
            var client = new TextAnalyticsClient(endpoint, credentials);
            SentimentAnalysisWithOpinionMiningExample(client);

            Console.Write("Press any key to exit.");
            Console.ReadKey();
        }

    }
}

Выходные данные

Document sentiment: Mixed

    Positive score: 0.47
    Negative score: 0.52
    Neutral score: 0.00

    Text: "The food and service were unacceptable. "
    Sentence sentiment: Negative
    Sentence positive score: 0.00
    Sentence negative score: 0.99
    Sentence neutral score: 0.00

    Target: food, Value: Negative
    Target positive score: 0.00
    Target negative score: 1.00
            Related Assessment: unacceptable, Value: Negative
            Related Assessment positive score: 0.00
            Related Assessment negative score: 1.00
    Target: service, Value: Negative
    Target positive score: 0.00
    Target negative score: 1.00
            Related Assessment: unacceptable, Value: Negative
            Related Assessment positive score: 0.00
            Related Assessment negative score: 1.00
    Text: "The concierge was nice, however."
    Sentence sentiment: Positive
    Sentence positive score: 0.94
    Sentence negative score: 0.05
    Sentence neutral score: 0.01

    Target: concierge, Value: Positive
    Target positive score: 1.00
    Target negative score: 0.00
            Related Assessment: nice, Value: Positive
            Related Assessment positive score: 1.00
            Related Assessment negative score: 0.00

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

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

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

reg delete "HKCU\Environment" /v LANGUAGE_KEY /f
reg delete "HKCU\Environment" /v LANGUAGE_ENDPOINT /f

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

Справочная документация | Дополнительные примеры | Пакеты (Maven) | Исходный код библиотеки

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

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

Установка

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

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

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

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

    Снимок экрана с дополнительными параметрами функций в портал Azure.

  3. На экране "Создание языка" укажите следующие сведения:

    Подробности Description
    Подписка Учетная запись подписки, с которым будет связан ваш ресурс. Выберите подписку Azure в раскрывающемся меню.
    Группа ресурсов Группа ресурсов — это контейнер, в который хранятся создаваемые ресурсы. Выберите Создать, чтобы создать группу ресурсов.
    Область/регион Расположение ресурса службы "Язык". Различные регионы могут привести к задержке в зависимости от физического расположения, но не влияют на доступность ресурса во время выполнения. В этом кратком руководстве выберите доступный регион рядом с вами или выберите восточную часть США.
    Имя. Имя ресурса языка. Это имя также будет использоваться для создания URL-адреса конечной точки, который приложения будут использовать для отправки запросов API.
    Ценовая категория Ценовая категория ресурса Языка. Вы можете использовать уровень "Бесплатный F0 ", чтобы попробовать службу и обновить ее позже до платного уровня для рабочей среды.

    Снимок экрана: сведения о создании ресурсов в портал Azure.

  4. Убедитесь, что установлен флажок "Уведомление об ответственном ИИ".

  5. В нижней части страницы выберите Просмотреть и создать.

  6. На появившемся экране убедитесь, что проверка прошла, и правильно ввели данные. Затем выберите Создать.

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

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

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

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

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

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

Создание переменной среды

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

Совет

Не включайте ключ непосредственно в код и никогда не публикуйте его. Дополнительные варианты проверки подлинности, такие как Azure Key Vault, см. в статье по безопасности служб ИИ Azure.

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

  1. Чтобы задать LANGUAGE_KEY переменную среды, замените your-key одним из ключей ресурса.
  2. Чтобы задать переменную среды, замените your-endpoint конечной LANGUAGE_ENDPOINT точкой ресурса.
setx LANGUAGE_KEY your-key
setx LANGUAGE_ENDPOINT your-endpoint

Примечание.

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

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

Добавление клиентской библиотеки

Создайте проект Maven в предпочтительной среде разработки или IDE. Потом добавьте следующую зависимость в файл pom.xml проекта. Синтаксис реализации для других средств сборки можно найти в Интернете.

<dependencies>
     <dependency>
        <groupId>com.azure</groupId>
        <artifactId>azure-ai-textanalytics</artifactId>
        <version>5.2.0</version>
    </dependency>
</dependencies>

Пример кода

Создайте файл Java с именем Example.java. Откройте файл и скопируйте приведенный ниже код. Теперь выполните код.

import com.azure.core.credential.AzureKeyCredential;
import com.azure.ai.textanalytics.models.*;
import com.azure.ai.textanalytics.TextAnalyticsClientBuilder;
import com.azure.ai.textanalytics.TextAnalyticsClient;

public class Example {
    
    // This example requires environment variables named "LANGUAGE_KEY" and "LANGUAGE_ENDPOINT"
    private static String languageKey = System.getenv("LANGUAGE_KEY");
    private static String languageEndpoint = System.getenv("LANGUAGE_ENDPOINT");

    public static void main(String[] args) {
        TextAnalyticsClient client = authenticateClient(languageKey, languageEndpoint);
        sentimentAnalysisWithOpinionMiningExample(client);
    }
    // Method to authenticate the client object with your key and endpoint.
    static TextAnalyticsClient authenticateClient(String key, String endpoint) {
        return new TextAnalyticsClientBuilder()
                .credential(new AzureKeyCredential(key))
                .endpoint(endpoint)
                .buildClient();
    }
    // Example method for detecting sentiment and opinions in text.
    static void sentimentAnalysisWithOpinionMiningExample(TextAnalyticsClient client)
    {
        // The document that needs be analyzed.
        String document = "The food and service were unacceptable. The concierge was nice, however.";

        System.out.printf("Document = %s%n", document);

        AnalyzeSentimentOptions options = new AnalyzeSentimentOptions().setIncludeOpinionMining(true);
        final DocumentSentiment documentSentiment = client.analyzeSentiment(document, "en", options);
        SentimentConfidenceScores scores = documentSentiment.getConfidenceScores();
        System.out.printf(
                "Recognized document sentiment: %s, positive score: %f, neutral score: %f, negative score: %f.%n",
                documentSentiment.getSentiment(), scores.getPositive(), scores.getNeutral(), scores.getNegative());


        documentSentiment.getSentences().forEach(sentenceSentiment -> {
            SentimentConfidenceScores sentenceScores = sentenceSentiment.getConfidenceScores();
            System.out.printf("\tSentence sentiment: %s, positive score: %f, neutral score: %f, negative score: %f.%n",
                    sentenceSentiment.getSentiment(), sentenceScores.getPositive(), sentenceScores.getNeutral(), sentenceScores.getNegative());
            sentenceSentiment.getOpinions().forEach(opinion -> {
                TargetSentiment targetSentiment = opinion.getTarget();
                System.out.printf("\t\tTarget sentiment: %s, target text: %s%n", targetSentiment.getSentiment(),
                        targetSentiment.getText());
                for (AssessmentSentiment assessmentSentiment : opinion.getAssessments()) {
                    System.out.printf("\t\t\t'%s' assessment sentiment because of \"%s\". Is the assessment negated: %s.%n",
                            assessmentSentiment.getSentiment(), assessmentSentiment.getText(), assessmentSentiment.isNegated());
                }
            });
        });
    }
}

Выходные данные

Document = The food and service were unacceptable. The concierge was nice, however.
Recognized document sentiment: mixed, positive score: 0.470000, neutral score: 0.000000, negative score: 0.520000.
	Sentence sentiment: negative, positive score: 0.000000, neutral score: 0.000000, negative score: 0.990000.
		Target sentiment: negative, target text: food
			'negative' assessment sentiment because of "unacceptable". Is the assessment negated: false.
		Target sentiment: negative, target text: service
			'negative' assessment sentiment because of "unacceptable". Is the assessment negated: false.
	Sentence sentiment: positive, positive score: 0.940000, neutral score: 0.010000, negative score: 0.050000.
		Target sentiment: positive, target text: concierge
			'positive' assessment sentiment because of "nice". Is the assessment negated: false.

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

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

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

reg delete "HKCU\Environment" /v LANGUAGE_KEY /f
reg delete "HKCU\Environment" /v LANGUAGE_ENDPOINT /f

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

Справочная документация | Дополнительные примеры | Пакеты (npm) | Исходный код библиотеки

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

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

Установка

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

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

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

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

    Снимок экрана с дополнительными параметрами функций в портал Azure.

  3. На экране "Создание языка" укажите следующие сведения:

    Подробности Description
    Подписка Учетная запись подписки, с которым будет связан ваш ресурс. Выберите подписку Azure в раскрывающемся меню.
    Группа ресурсов Группа ресурсов — это контейнер, в который хранятся создаваемые ресурсы. Выберите Создать, чтобы создать группу ресурсов.
    Область/регион Расположение ресурса службы "Язык". Различные регионы могут привести к задержке в зависимости от физического расположения, но не влияют на доступность ресурса во время выполнения. В этом кратком руководстве выберите доступный регион рядом с вами или выберите восточную часть США.
    Имя. Имя ресурса языка. Это имя также будет использоваться для создания URL-адреса конечной точки, который приложения будут использовать для отправки запросов API.
    Ценовая категория Ценовая категория ресурса Языка. Вы можете использовать уровень "Бесплатный F0 ", чтобы попробовать службу и обновить ее позже до платного уровня для рабочей среды.

    Снимок экрана: сведения о создании ресурсов в портал Azure.

  4. Убедитесь, что установлен флажок "Уведомление об ответственном ИИ".

  5. В нижней части страницы выберите Просмотреть и создать.

  6. На появившемся экране убедитесь, что проверка прошла, и правильно ввели данные. Затем выберите Создать.

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

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

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

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

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

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

Создание переменной среды

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

Совет

Не включайте ключ непосредственно в код и никогда не публикуйте его. Дополнительные варианты проверки подлинности, такие как Azure Key Vault, см. в статье по безопасности служб ИИ Azure.

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

  1. Чтобы задать LANGUAGE_KEY переменную среды, замените your-key одним из ключей ресурса.
  2. Чтобы задать переменную среды, замените your-endpoint конечной LANGUAGE_ENDPOINT точкой ресурса.
setx LANGUAGE_KEY your-key
setx LANGUAGE_ENDPOINT your-endpoint

Примечание.

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

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

Создание нового приложения Node.js

В окне консоли (например, cmd, PowerShell или Bash) создайте новый каталог для приложения и перейдите в него.

mkdir myapp 

cd myapp

Выполните команду npm init, чтобы создать приложение узла с помощью файла package.json.

npm init

Установка клиентской библиотеки

Установите пакеты npm:

npm install @azure/ai-language-text

Пример кода

Откройте файл и скопируйте приведенный ниже код. Теперь выполните код.

"use strict";

const { TextAnalyticsClient, AzureKeyCredential } = require("@azure/ai-text-analytics");

// This example requires environment variables named "LANGUAGE_KEY" and "LANGUAGE_ENDPOINT"
const key = process.env.LANGUAGE_KEY;
const endpoint = process.env.LANGUAGE_ENDPOINT;


//an example document for sentiment analysis and opinion mining
const documents = [{
    text: "The food and service were unacceptable. The concierge was nice, however.",
    id: "0",
    language: "en"
  }];
  
async function main() {
  console.log("=== Sentiment analysis and opinion mining sample ===");

  const client = new TextAnalysisClient(endpoint, new AzureKeyCredential(key));

  const results = await client.analyze("SentimentAnalysis", documents, {
    includeOpinionMining: true,
  });

  for (let i = 0; i < results.length; i++) {
    const result = results[i];
    console.log(`- Document ${result.id}`);
    if (!result.error) {
      console.log(`\tDocument text: ${documents[i].text}`);
      console.log(`\tOverall Sentiment: ${result.sentiment}`);
      console.log("\tSentiment confidence scores:", result.confidenceScores);
      console.log("\tSentences");
      for (const { sentiment, confidenceScores, opinions } of result.sentences) {
        console.log(`\t- Sentence sentiment: ${sentiment}`);
        console.log("\t  Confidence scores:", confidenceScores);
        console.log("\t  Mined opinions");
        for (const { target, assessments } of opinions) {
          console.log(`\t\t- Target text: ${target.text}`);
          console.log(`\t\t  Target sentiment: ${target.sentiment}`);
          console.log("\t\t  Target confidence scores:", target.confidenceScores);
          console.log("\t\t  Target assessments");
          for (const { text, sentiment } of assessments) {
            console.log(`\t\t\t- Text: ${text}`);
            console.log(`\t\t\t  Sentiment: ${sentiment}`);
          }
        }
      }
    } else {
      console.error(`\tError: ${result.error}`);
    }
  }
}
  
main().catch((err) => {
  console.error("The sample encountered an error:", err);
});

Выходные данные

=== Sentiment analysis and opinion mining sample ===
- Document 0
    Document text: The food and service were unacceptable. The concierge was nice, however.
    Overall Sentiment: mixed
    Sentiment confidence scores: { positive: 0.49, neutral: 0, negative: 0.5 }
    Sentences
    - Sentence sentiment: negative
      Confidence scores: { positive: 0, neutral: 0, negative: 1 }
      Mined opinions
            - Target text: food
              Target sentiment: negative
              Target confidence scores: { positive: 0.01, negative: 0.99 }
              Target assessments
                    - Text: unacceptable
                      Sentiment: negative
            - Target text: service
              Target sentiment: negative
              Target confidence scores: { positive: 0.01, negative: 0.99 }
              Target assessments
                    - Text: unacceptable
                      Sentiment: negative
    - Sentence sentiment: positive
      Confidence scores: { positive: 0.98, neutral: 0.01, negative: 0.01 }
      Mined opinions
            - Target text: concierge
              Target sentiment: positive
              Target confidence scores: { positive: 1, negative: 0 }
              Target assessments
                    - Text: nice
                      Sentiment: positive

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

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

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

reg delete "HKCU\Environment" /v LANGUAGE_KEY /f
reg delete "HKCU\Environment" /v LANGUAGE_ENDPOINT /f

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

Справочная документация | Дополнительные примеры | Пакеты (PyPi) | Исходный код библиотеки

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

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

Установка

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

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

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

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

    Снимок экрана с дополнительными параметрами функций в портал Azure.

  3. На экране "Создание языка" укажите следующие сведения:

    Подробности Description
    Подписка Учетная запись подписки, с которым будет связан ваш ресурс. Выберите подписку Azure в раскрывающемся меню.
    Группа ресурсов Группа ресурсов — это контейнер, в который хранятся создаваемые ресурсы. Выберите Создать, чтобы создать группу ресурсов.
    Область/регион Расположение ресурса службы "Язык". Различные регионы могут привести к задержке в зависимости от физического расположения, но не влияют на доступность ресурса во время выполнения. В этом кратком руководстве выберите доступный регион рядом с вами или выберите восточную часть США.
    Имя. Имя ресурса языка. Это имя также будет использоваться для создания URL-адреса конечной точки, который приложения будут использовать для отправки запросов API.
    Ценовая категория Ценовая категория ресурса Языка. Вы можете использовать уровень "Бесплатный F0 ", чтобы попробовать службу и обновить ее позже до платного уровня для рабочей среды.

    Снимок экрана: сведения о создании ресурсов в портал Azure.

  4. Убедитесь, что установлен флажок "Уведомление об ответственном ИИ".

  5. В нижней части страницы выберите Просмотреть и создать.

  6. На появившемся экране убедитесь, что проверка прошла, и правильно ввели данные. Затем выберите Создать.

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

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

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

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

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

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

Создание переменной среды

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

Совет

Не включайте ключ непосредственно в код и никогда не публикуйте его. Дополнительные варианты проверки подлинности, такие как Azure Key Vault, см. в статье по безопасности служб ИИ Azure.

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

  1. Чтобы задать LANGUAGE_KEY переменную среды, замените your-key одним из ключей ресурса.
  2. Чтобы задать переменную среды, замените your-endpoint конечной LANGUAGE_ENDPOINT точкой ресурса.
setx LANGUAGE_KEY your-key
setx LANGUAGE_ENDPOINT your-endpoint

Примечание.

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

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

Установка клиентской библиотеки

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

pip install azure-ai-textanalytics==5.2.0

Пример кода

Создайте файл Python и скопируйте код ниже. Затем запустите код

# This example requires environment variables named "LANGUAGE_KEY" and "LANGUAGE_ENDPOINT"
language_key = os.environ.get('LANGUAGE_KEY')
language_endpoint = os.environ.get('LANGUAGE_ENDPOINT')

from azure.ai.textanalytics import TextAnalyticsClient
from azure.core.credentials import AzureKeyCredential

# Authenticate the client using your key and endpoint 
def authenticate_client():
    ta_credential = AzureKeyCredential(language_key)
    text_analytics_client = TextAnalyticsClient(
            endpoint=language_endpoint, 
            credential=ta_credential)
    return text_analytics_client

client = authenticate_client()

# Example method for detecting sentiment and opinions in text 
def sentiment_analysis_with_opinion_mining_example(client):

    documents = [
        "The food and service were unacceptable. The concierge was nice, however."
    ]

    result = client.analyze_sentiment(documents, show_opinion_mining=True)
    doc_result = [doc for doc in result if not doc.is_error]

    positive_reviews = [doc for doc in doc_result if doc.sentiment == "positive"]
    negative_reviews = [doc for doc in doc_result if doc.sentiment == "negative"]

    positive_mined_opinions = []
    mixed_mined_opinions = []
    negative_mined_opinions = []

    for document in doc_result:
        print("Document Sentiment: {}".format(document.sentiment))
        print("Overall scores: positive={0:.2f}; neutral={1:.2f}; negative={2:.2f} \n".format(
            document.confidence_scores.positive,
            document.confidence_scores.neutral,
            document.confidence_scores.negative,
        ))
        for sentence in document.sentences:
            print("Sentence: {}".format(sentence.text))
            print("Sentence sentiment: {}".format(sentence.sentiment))
            print("Sentence score:\nPositive={0:.2f}\nNeutral={1:.2f}\nNegative={2:.2f}\n".format(
                sentence.confidence_scores.positive,
                sentence.confidence_scores.neutral,
                sentence.confidence_scores.negative,
            ))
            for mined_opinion in sentence.mined_opinions:
                target = mined_opinion.target
                print("......'{}' target '{}'".format(target.sentiment, target.text))
                print("......Target score:\n......Positive={0:.2f}\n......Negative={1:.2f}\n".format(
                    target.confidence_scores.positive,
                    target.confidence_scores.negative,
                ))
                for assessment in mined_opinion.assessments:
                    print("......'{}' assessment '{}'".format(assessment.sentiment, assessment.text))
                    print("......Assessment score:\n......Positive={0:.2f}\n......Negative={1:.2f}\n".format(
                        assessment.confidence_scores.positive,
                        assessment.confidence_scores.negative,
                    ))
            print("\n")
        print("\n")
          
sentiment_analysis_with_opinion_mining_example(client)

Выходные данные

Document Sentiment: mixed
Overall scores: positive=0.47; neutral=0.00; negative=0.52

Sentence: The food and service were unacceptable.
Sentence sentiment: negative
Sentence score:
Positive=0.00
Neutral=0.00
Negative=0.99

......'negative' target 'food'
......Target score:
......Positive=0.00
......Negative=1.00

......'negative' assessment 'unacceptable'
......Assessment score:
......Positive=0.00
......Negative=1.00

......'negative' target 'service'
......Target score:
......Positive=0.00
......Negative=1.00

......'negative' assessment 'unacceptable'
......Assessment score:
......Positive=0.00
......Negative=1.00



Sentence: The concierge was nice, however.
Sentence sentiment: positive
Sentence score:
Positive=0.94
Neutral=0.01
Negative=0.05

......'positive' target 'concierge'
......Target score:
......Positive=1.00
......Negative=0.00

......'positive' assessment 'nice'
......Assessment score:
......Positive=1.00
......Negative=0.00

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

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

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

reg delete "HKCU\Environment" /v LANGUAGE_KEY /f
reg delete "HKCU\Environment" /v LANGUAGE_ENDPOINT /f

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

Справочная документация

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

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

Установка

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

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

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

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

    Снимок экрана с дополнительными параметрами функций в портал Azure.

  3. На экране "Создание языка" укажите следующие сведения:

    Подробности Description
    Подписка Учетная запись подписки, с которым будет связан ваш ресурс. Выберите подписку Azure в раскрывающемся меню.
    Группа ресурсов Группа ресурсов — это контейнер, в который хранятся создаваемые ресурсы. Выберите Создать, чтобы создать группу ресурсов.
    Область/регион Расположение ресурса службы "Язык". Различные регионы могут привести к задержке в зависимости от физического расположения, но не влияют на доступность ресурса во время выполнения. В этом кратком руководстве выберите доступный регион рядом с вами или выберите восточную часть США.
    Имя. Имя ресурса языка. Это имя также будет использоваться для создания URL-адреса конечной точки, который приложения будут использовать для отправки запросов API.
    Ценовая категория Ценовая категория ресурса Языка. Вы можете использовать уровень "Бесплатный F0 ", чтобы попробовать службу и обновить ее позже до платного уровня для рабочей среды.

    Снимок экрана: сведения о создании ресурсов в портал Azure.

  4. Убедитесь, что установлен флажок "Уведомление об ответственном ИИ".

  5. В нижней части страницы выберите Просмотреть и создать.

  6. На появившемся экране убедитесь, что проверка прошла, и правильно ввели данные. Затем выберите Создать.

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

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

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

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

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

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

Создание переменной среды

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

Совет

Не включайте ключ непосредственно в код и никогда не публикуйте его. Дополнительные варианты проверки подлинности, такие как Azure Key Vault, см. в статье по безопасности служб ИИ Azure.

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

  1. Чтобы задать LANGUAGE_KEY переменную среды, замените your-key одним из ключей ресурса.
  2. Чтобы задать переменную среды, замените your-endpoint конечной LANGUAGE_ENDPOINT точкой ресурса.
setx LANGUAGE_KEY your-key
setx LANGUAGE_ENDPOINT your-endpoint

Примечание.

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

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

Создание JSON-файла с примером текста запроса

В редакторе кода создайте файл с именем test_sentiment_payload.json и скопируйте следующий пример JSON. Этот пример запроса будет отправлен в API на следующем шаге.

{
	"kind": "SentimentAnalysis",
	"parameters": {
		"modelVersion": "latest",
		"opinionMining": "True"
	},
	"analysisInput":{
		"documents":[
			{
				"id":"1",
				"language":"en",
				"text": "The food and service were unacceptable. The concierge was nice, however."
			}
		]
	}
} 

Сохраните test_sentiment_payload.json место на компьютере. Например, рабочий стол.

Отправка запроса API анализа тональности и анализа мнений

Примечание.

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

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

параметр Описание
-X POST <endpoint> Указывает конечную точку для доступа к API.
-H Content-Type: application/json Тип содержимого для отправки данных JSON.
-H "Ocp-Apim-Subscription-Key:<key> Указывает ключ для доступа к API.
-d <documents> JSON-файл, содержащий документы, которые нужно отправить.

Замените C:\Users\<myaccount>\Desktop\test_sentiment_payload.json расположением примера файла запроса JSON, созданного на предыдущем шаге.

С помощью командной строки

curl -X POST "%LANGUAGE_ENDPOINT%/language/:analyze-text?api-version=2023-04-15-preview" ^
-H "Content-Type: application/json" ^
-H "Ocp-Apim-Subscription-Key: %LANGUAGE_KEY%" ^
-d "@C:\Users\<myaccount>\Desktop\test_sentiment_payload.json"

PowerShell

curl.exe -X POST $env:LANGUAGE_ENDPOINT/language/:analyze-text?api-version=2023-04-15-preview `
-H "Content-Type: application/json" `
-H "Ocp-Apim-Subscription-Key: $env:LANGUAGE_KEY" `
-d "@C:\Users\<myaccount>\Desktop\test_sentiment_payload.json"

Ответ JSON

{
	"kind": "SentimentAnalysisResults",
	"results": {
		"documents": [{
			"id": "1",
			"sentiment": "mixed",
			"confidenceScores": {
				"positive": 0.47,
				"neutral": 0.0,
				"negative": 0.52
			},
			"sentences": [{
				"sentiment": "negative",
				"confidenceScores": {
					"positive": 0.0,
					"neutral": 0.0,
					"negative": 0.99
				},
				"offset": 0,
				"length": 40,
				"text": "The food and service were unacceptable. ",
				"targets": [{
					"sentiment": "negative",
					"confidenceScores": {
						"positive": 0.0,
						"negative": 1.0
					},
					"offset": 4,
					"length": 4,
					"text": "food",
					"relations": [{
						"relationType": "assessment",
						"ref": "#/documents/0/sentences/0/assessments/0"
					}]
				}, {
					"sentiment": "negative",
					"confidenceScores": {
						"positive": 0.0,
						"negative": 1.0
					},
					"offset": 13,
					"length": 7,
					"text": "service",
					"relations": [{
						"relationType": "assessment",
						"ref": "#/documents/0/sentences/0/assessments/0"
					}]
				}],
				"assessments": [{
					"sentiment": "negative",
					"confidenceScores": {
						"positive": 0.0,
						"negative": 1.0
					},
					"offset": 26,
					"length": 12,
					"text": "unacceptable",
					"isNegated": false
				}]
			}, {
				"sentiment": "positive",
				"confidenceScores": {
					"positive": 0.94,
					"neutral": 0.01,
					"negative": 0.05
				},
				"offset": 40,
				"length": 32,
				"text": "The concierge was nice, however.",
				"targets": [{
					"sentiment": "positive",
					"confidenceScores": {
						"positive": 1.0,
						"negative": 0.0
					},
					"offset": 44,
					"length": 9,
					"text": "concierge",
					"relations": [{
						"relationType": "assessment",
						"ref": "#/documents/0/sentences/1/assessments/0"
					}]
				}],
				"assessments": [{
					"sentiment": "positive",
					"confidenceScores": {
						"positive": 1.0,
						"negative": 0.0
					},
					"offset": 58,
					"length": 4,
					"text": "nice",
					"isNegated": false
				}]
			}],
			"warnings": []
		}],
		"errors": [],
		"modelVersion": "2022-06-01"
	}
}

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

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

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

reg delete "HKCU\Environment" /v LANGUAGE_KEY /f
reg delete "HKCU\Environment" /v LANGUAGE_ENDPOINT /f

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