Краткое руководство Анализ тональности и интеллектуальный анализ мнений
Справочная документация | по дополнительным примерам | пакета (NuGet) | Исходный код библиотеки
В этом кратком руководстве описано, как создать приложение для анализа тональности с использованием клиентской библиотеки для .NET. В следующем примере вы создадите приложение C#, которое может определить тональность, выраженную в текстовом примере, и выполнить анализ тональности на основе аспектов.
Необходимые компоненты
- Подписка Azure — создайте бесплатную учетную запись.
- Интегрированная среда разработки Visual Studio.
Установка
Создание ресурса Azure
Чтобы использовать приведенный ниже пример кода, необходимо развернуть ресурс Azure. Этот ресурс будет содержать ключ и конечную точку, которую вы будете использовать для проверки подлинности вызовов API, которые вы отправляете в языковую службу.
Используйте следующую ссылку, чтобы создать языковой ресурс с помощью портал Azure. Вам потребуется войти с помощью подписки Azure.
На появившемся экране выбора дополнительных функций нажмите кнопку "Продолжить", чтобы создать ресурс.
На экране "Создание языка" укажите следующие сведения:
Подробности Description Подписка Учетная запись подписки, с которым будет связан ваш ресурс. Выберите подписку Azure в раскрывающемся меню. Группа ресурсов Группа ресурсов — это контейнер, в который хранятся создаваемые ресурсы. Выберите Создать, чтобы создать группу ресурсов. Область/регион Расположение ресурса службы "Язык". Различные регионы могут привести к задержке в зависимости от физического расположения, но не влияют на доступность ресурса во время выполнения. В этом кратком руководстве выберите доступный регион рядом с вами или выберите восточную часть США. Имя. Имя ресурса языка. Это имя также будет использоваться для создания URL-адреса конечной точки, который приложения будут использовать для отправки запросов API. Ценовая категория Ценовая категория ресурса Языка. Вы можете использовать уровень "Бесплатный F0 ", чтобы попробовать службу и обновить ее позже до платного уровня для рабочей среды. Убедитесь, что установлен флажок "Уведомление об ответственном ИИ".
В нижней части страницы выберите Просмотреть и создать.
На появившемся экране убедитесь, что проверка прошла, и правильно ввели данные. Затем выберите Создать.
Получение ключа и конечной точки
Затем вам потребуется ключ и конечная точка из ресурса для подключения приложения к API. Ключ и конечную точку вы вставите в код позднее при работе с кратким руководством.
После успешного развертывания ресурса языка нажмите кнопку "Перейти к ресурсу " в разделе "Дальнейшие действия".
На экране ресурса выберите ключи и конечную точку в меню навигации слева. Вы будете использовать один из ключей и конечной точки в следующих шагах.
Создание переменной среды
Приложение должно пройти проверку подлинности для отправки запросов API. Для рабочей среды используйте безопасный способ хранения и доступа к учетным данным,. В этом примере учетные данные записываются в переменные среды на локальном компьютере, на котором запущено приложение.
Чтобы задать переменную среды для ключа ресурса языка, откройте окно консоли и следуйте инструкциям в вашей операционной системе и среде разработки.
- Чтобы задать
LANGUAGE_KEY
переменную среды, заменитеyour-key
одним из ключей ресурса. - Чтобы задать переменную среды, замените
your-endpoint
конечнойLANGUAGE_ENDPOINT
точкой ресурса.
Внимание
Если вы используете ключ API, сохраните его в другом месте, например в Azure Key Vault. Не включайте ключ API непосредственно в код и никогда не публикуйте его.
Дополнительные сведения о безопасности служб ИИ см. в статье "Проверка подлинности запросов к службам ИИ Azure".
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 — создайте бесплатную учетную запись.
- Пакет разработчиков Java (JDK) версии 8 или более поздней.
Установка
Создание ресурса Azure
Чтобы использовать приведенный ниже пример кода, необходимо развернуть ресурс Azure. Этот ресурс будет содержать ключ и конечную точку, которую вы будете использовать для проверки подлинности вызовов API, которые вы отправляете в языковую службу.
Используйте следующую ссылку, чтобы создать языковой ресурс с помощью портал Azure. Вам потребуется войти с помощью подписки Azure.
На появившемся экране выбора дополнительных функций нажмите кнопку "Продолжить", чтобы создать ресурс.
На экране "Создание языка" укажите следующие сведения:
Подробности Description Подписка Учетная запись подписки, с которым будет связан ваш ресурс. Выберите подписку Azure в раскрывающемся меню. Группа ресурсов Группа ресурсов — это контейнер, в который хранятся создаваемые ресурсы. Выберите Создать, чтобы создать группу ресурсов. Область/регион Расположение ресурса службы "Язык". Различные регионы могут привести к задержке в зависимости от физического расположения, но не влияют на доступность ресурса во время выполнения. В этом кратком руководстве выберите доступный регион рядом с вами или выберите восточную часть США. Имя. Имя ресурса языка. Это имя также будет использоваться для создания URL-адреса конечной точки, который приложения будут использовать для отправки запросов API. Ценовая категория Ценовая категория ресурса Языка. Вы можете использовать уровень "Бесплатный F0 ", чтобы попробовать службу и обновить ее позже до платного уровня для рабочей среды. Убедитесь, что установлен флажок "Уведомление об ответственном ИИ".
В нижней части страницы выберите Просмотреть и создать.
На появившемся экране убедитесь, что проверка прошла, и правильно ввели данные. Затем выберите Создать.
Получение ключа и конечной точки
Затем вам потребуется ключ и конечная точка из ресурса для подключения приложения к API. Ключ и конечную точку вы вставите в код позднее при работе с кратким руководством.
После успешного развертывания ресурса языка нажмите кнопку "Перейти к ресурсу " в разделе "Дальнейшие действия".
На экране ресурса выберите ключи и конечную точку в меню навигации слева. Вы будете использовать один из ключей и конечной точки в следующих шагах.
Создание переменной среды
Приложение должно пройти проверку подлинности для отправки запросов API. Для рабочей среды используйте безопасный способ хранения и доступа к учетным данным,. В этом примере учетные данные записываются в переменные среды на локальном компьютере, на котором запущено приложение.
Чтобы задать переменную среды для ключа ресурса языка, откройте окно консоли и следуйте инструкциям в вашей операционной системе и среде разработки.
- Чтобы задать
LANGUAGE_KEY
переменную среды, заменитеyour-key
одним из ключей ресурса. - Чтобы задать переменную среды, замените
your-endpoint
конечнойLANGUAGE_ENDPOINT
точкой ресурса.
Внимание
Если вы используете ключ API, сохраните его в другом месте, например в Azure Key Vault. Не включайте ключ API непосредственно в код и никогда не публикуйте его.
Дополнительные сведения о безопасности служб ИИ см. в статье "Проверка подлинности запросов к службам ИИ Azure".
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 — создайте бесплатную учетную запись.
- Node.js версии 14 LTS или выше
Установка
Создание ресурса Azure
Чтобы использовать приведенный ниже пример кода, необходимо развернуть ресурс Azure. Этот ресурс будет содержать ключ и конечную точку, которую вы будете использовать для проверки подлинности вызовов API, которые вы отправляете в языковую службу.
Используйте следующую ссылку, чтобы создать языковой ресурс с помощью портал Azure. Вам потребуется войти с помощью подписки Azure.
На появившемся экране выбора дополнительных функций нажмите кнопку "Продолжить", чтобы создать ресурс.
На экране "Создание языка" укажите следующие сведения:
Подробности Description Подписка Учетная запись подписки, с которым будет связан ваш ресурс. Выберите подписку Azure в раскрывающемся меню. Группа ресурсов Группа ресурсов — это контейнер, в который хранятся создаваемые ресурсы. Выберите Создать, чтобы создать группу ресурсов. Область/регион Расположение ресурса службы "Язык". Различные регионы могут привести к задержке в зависимости от физического расположения, но не влияют на доступность ресурса во время выполнения. В этом кратком руководстве выберите доступный регион рядом с вами или выберите восточную часть США. Имя. Имя ресурса языка. Это имя также будет использоваться для создания URL-адреса конечной точки, который приложения будут использовать для отправки запросов API. Ценовая категория Ценовая категория ресурса Языка. Вы можете использовать уровень "Бесплатный F0 ", чтобы попробовать службу и обновить ее позже до платного уровня для рабочей среды. Убедитесь, что установлен флажок "Уведомление об ответственном ИИ".
В нижней части страницы выберите Просмотреть и создать.
На появившемся экране убедитесь, что проверка прошла, и правильно ввели данные. Затем выберите Создать.
Получение ключа и конечной точки
Затем вам потребуется ключ и конечная точка из ресурса для подключения приложения к API. Ключ и конечную точку вы вставите в код позднее при работе с кратким руководством.
После успешного развертывания ресурса языка нажмите кнопку "Перейти к ресурсу " в разделе "Дальнейшие действия".
На экране ресурса выберите ключи и конечную точку в меню навигации слева. Вы будете использовать один из ключей и конечной точки в следующих шагах.
Создание переменной среды
Приложение должно пройти проверку подлинности для отправки запросов API. Для рабочей среды используйте безопасный способ хранения и доступа к учетным данным,. В этом примере учетные данные записываются в переменные среды на локальном компьютере, на котором запущено приложение.
Чтобы задать переменную среды для ключа ресурса языка, откройте окно консоли и следуйте инструкциям в вашей операционной системе и среде разработки.
- Чтобы задать
LANGUAGE_KEY
переменную среды, заменитеyour-key
одним из ключей ресурса. - Чтобы задать переменную среды, замените
your-endpoint
конечнойLANGUAGE_ENDPOINT
точкой ресурса.
Внимание
Если вы используете ключ API, сохраните его в другом месте, например в Azure Key Vault. Не включайте ключ API непосредственно в код и никогда не публикуйте его.
Дополнительные сведения о безопасности служб ИИ см. в статье "Проверка подлинности запросов к службам ИИ Azure".
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 — создайте бесплатную учетную запись.
- Python версии 3.7 или выше
Установка
Создание ресурса Azure
Чтобы использовать приведенный ниже пример кода, необходимо развернуть ресурс Azure. Этот ресурс будет содержать ключ и конечную точку, которую вы будете использовать для проверки подлинности вызовов API, которые вы отправляете в языковую службу.
Используйте следующую ссылку, чтобы создать языковой ресурс с помощью портал Azure. Вам потребуется войти с помощью подписки Azure.
На появившемся экране выбора дополнительных функций нажмите кнопку "Продолжить", чтобы создать ресурс.
На экране "Создание языка" укажите следующие сведения:
Подробности Description Подписка Учетная запись подписки, с которым будет связан ваш ресурс. Выберите подписку Azure в раскрывающемся меню. Группа ресурсов Группа ресурсов — это контейнер, в который хранятся создаваемые ресурсы. Выберите Создать, чтобы создать группу ресурсов. Область/регион Расположение ресурса службы "Язык". Различные регионы могут привести к задержке в зависимости от физического расположения, но не влияют на доступность ресурса во время выполнения. В этом кратком руководстве выберите доступный регион рядом с вами или выберите восточную часть США. Имя. Имя ресурса языка. Это имя также будет использоваться для создания URL-адреса конечной точки, который приложения будут использовать для отправки запросов API. Ценовая категория Ценовая категория ресурса Языка. Вы можете использовать уровень "Бесплатный F0 ", чтобы попробовать службу и обновить ее позже до платного уровня для рабочей среды. Убедитесь, что установлен флажок "Уведомление об ответственном ИИ".
В нижней части страницы выберите Просмотреть и создать.
На появившемся экране убедитесь, что проверка прошла, и правильно ввели данные. Затем выберите Создать.
Получение ключа и конечной точки
Затем вам потребуется ключ и конечная точка из ресурса для подключения приложения к API. Ключ и конечную точку вы вставите в код позднее при работе с кратким руководством.
После успешного развертывания ресурса языка нажмите кнопку "Перейти к ресурсу " в разделе "Дальнейшие действия".
На экране ресурса выберите ключи и конечную точку в меню навигации слева. Вы будете использовать один из ключей и конечной точки в следующих шагах.
Создание переменной среды
Приложение должно пройти проверку подлинности для отправки запросов API. Для рабочей среды используйте безопасный способ хранения и доступа к учетным данным,. В этом примере учетные данные записываются в переменные среды на локальном компьютере, на котором запущено приложение.
Чтобы задать переменную среды для ключа ресурса языка, откройте окно консоли и следуйте инструкциям в вашей операционной системе и среде разработки.
- Чтобы задать
LANGUAGE_KEY
переменную среды, заменитеyour-key
одним из ключей ресурса. - Чтобы задать переменную среды, замените
your-endpoint
конечнойLANGUAGE_ENDPOINT
точкой ресурса.
Внимание
Если вы используете ключ API, сохраните его в другом месте, например в Azure Key Vault. Не включайте ключ API непосредственно в код и никогда не публикуйте его.
Дополнительные сведения о безопасности служб ИИ см. в статье "Проверка подлинности запросов к службам ИИ Azure".
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
Чтобы использовать приведенный ниже пример кода, необходимо развернуть ресурс Azure. Этот ресурс будет содержать ключ и конечную точку, которую вы будете использовать для проверки подлинности вызовов API, которые вы отправляете в языковую службу.
Используйте следующую ссылку, чтобы создать языковой ресурс с помощью портал Azure. Вам потребуется войти с помощью подписки Azure.
На появившемся экране выбора дополнительных функций нажмите кнопку "Продолжить", чтобы создать ресурс.
На экране "Создание языка" укажите следующие сведения:
Подробности Description Подписка Учетная запись подписки, с которым будет связан ваш ресурс. Выберите подписку Azure в раскрывающемся меню. Группа ресурсов Группа ресурсов — это контейнер, в который хранятся создаваемые ресурсы. Выберите Создать, чтобы создать группу ресурсов. Область/регион Расположение ресурса службы "Язык". Различные регионы могут привести к задержке в зависимости от физического расположения, но не влияют на доступность ресурса во время выполнения. В этом кратком руководстве выберите доступный регион рядом с вами или выберите восточную часть США. Имя. Имя ресурса языка. Это имя также будет использоваться для создания URL-адреса конечной точки, который приложения будут использовать для отправки запросов API. Ценовая категория Ценовая категория ресурса Языка. Вы можете использовать уровень "Бесплатный F0 ", чтобы попробовать службу и обновить ее позже до платного уровня для рабочей среды. Убедитесь, что установлен флажок "Уведомление об ответственном ИИ".
В нижней части страницы выберите Просмотреть и создать.
На появившемся экране убедитесь, что проверка прошла, и правильно ввели данные. Затем выберите Создать.
Получение ключа и конечной точки
Затем вам потребуется ключ и конечная точка из ресурса для подключения приложения к API. Ключ и конечную точку вы вставите в код позднее при работе с кратким руководством.
После успешного развертывания ресурса языка нажмите кнопку "Перейти к ресурсу " в разделе "Дальнейшие действия".
На экране ресурса выберите ключи и конечную точку в меню навигации слева. Вы будете использовать один из ключей и конечной точки в следующих шагах.
Создание переменной среды
Приложение должно пройти проверку подлинности для отправки запросов API. Для рабочей среды используйте безопасный способ хранения и доступа к учетным данным,. В этом примере учетные данные записываются в переменные среды на локальном компьютере, на котором запущено приложение.
Чтобы задать переменную среды для ключа ресурса языка, откройте окно консоли и следуйте инструкциям в вашей операционной системе и среде разработки.
- Чтобы задать
LANGUAGE_KEY
переменную среды, заменитеyour-key
одним из ключей ресурса. - Чтобы задать переменную среды, замените
your-endpoint
конечнойLANGUAGE_ENDPOINT
точкой ресурса.
Внимание
Если вы используете ключ API, сохраните его в другом месте, например в Azure Key Vault. Не включайте ключ API непосредственно в код и никогда не публикуйте его.
Дополнительные сведения о безопасности служб ИИ см. в статье "Проверка подлинности запросов к службам ИИ Azure".
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