Compartilhar via


Início Rápido: Análise de sentimento e mineração de opiniões

Documentação de referência | Mais amostras | Pacote (NuGet) | Código-fonte da biblioteca

Use este início rápido para criar um aplicativo de análise de sentimentos com a biblioteca de clientes para .NET. No exemplo a seguir, você criará um aplicativo C# que pode identificar os sentimentos expressos em uma amostra de texto e executar uma análise de sentimento baseada em aspecto.

Pré-requisitos

Configurando

Criar um recurso do Azure

Será necessário implantar um recurso do Azure para usar o exemplo de código abaixo. Esse recurso conterá uma chave e um ponto de extremidade que você usará para autenticar as chamadas de API enviadas para o serviço de linguagem.

  1. Use o link a seguir para criar um recurso de linguagem usando o portal do Azure. Você precisará se conectar usando sua assinatura do Azure.

  2. Na tela Selecionar recursos adicionais que aparece, selecione Continuar a criar seu recurso.

    Uma captura de tela mostrando opções de recursos adicionais no portal do Azure.

  3. Na tela Criar linguagem, forneça as seguintes informações:

    Detalhe Descrição
    Subscription A conta de assinatura à qual seu recurso será associado. Selecione a assinatura do Azure no menu suspenso.
    Resource group Um grupo de recursos é um contêiner que armazena os recursos criados por você. Selecione Criar novo para criar um novo grupo de recursos.
    Região O local do recurso de Linguagem. Diferentes regiões podem apresentar latência, dependendo do seu local físico, mas não impactam sobre a disponibilidade de runtime do seu recurso. Neste início rápido, selecione uma região disponível perto de você ou escolha Leste dos EUA.
    Nome O nome para o recurso de linguagem. Esse nome também será usado para criar uma URL de ponto de extremidade e seus aplicativos o usarão para enviar solicitações de API.
    Tipo de preço O tipo de preço do recurso de Linguagem. É possível usar o nível Gratuito F0 para experimentar o serviço e atualizar mais tarde para um nível pago para produção.

    Captura de tela mostrando os detalhes da criação de recursos no portal do Azure.

  4. Verifique se a caixa de seleção Aviso de IA Responsável está marcada.

  5. Selecione Examinar + Criar na parte inferior da página.

  6. Na tela exibida, verifique se a validação foi aprovada e se você inseriu suas informações corretamente. Em seguida, selecione Criar.

Obter chave e ponto de extremidade

Em seguida, você precisará da chave e do ponto de extremidade do recurso para conectar seu aplicativo à API. Você vai colar a chave e o ponto de extremidade no código mais adiante no guia de início rápido.

  1. Após a implantação bem-sucedida do recurso de linguagem, clique no botão Acessar recurso em Próximas etapas.

    Uma captura de tela mostrando as próximas etapas após a implantação de um recurso.

  2. Na tela do recurso, selecione Chaves e ponto de extremidade no menu de navegação à esquerda. Você usará uma das chaves e o ponto de extremidade nas etapas abaixo.

    Uma captura de tela mostrando as chaves e a seção de ponto de extremidade para um recurso.

Criar variáveis de ambiente

Seu aplicativo deve ser autenticado para enviar solicitações de API. Para produção, use uma maneira segura de armazenar e acessar suas credenciais. Neste exemplo, você gravará suas credenciais em variáveis de ambiente no computador local que está executando o aplicativo.

Para definir a variável de ambiente da chave de recurso de linguagem, abra uma janela do console e siga as instruções para o seu sistema operacional e ambiente de desenvolvimento.

  • Para definir a variável de ambiente LANGUAGE_KEY, substitua your-key por uma das chaves do recurso.
  • Para definir a variável de ambiente LANGUAGE_ENDPOINT, substitua your-endpoint pelo ponto de extremidade do recurso.

Importante

Se você usar uma chave de API, armazene-a com segurança em outro lugar, como no Azure Key Vault. Não inclua a chave da API diretamente no seu código e nunca a publique publicamente.

Para obter mais informações sobre a segurança dos serviços de IA, veja Autenticar solicitações para serviços de IA do Azure.

setx LANGUAGE_KEY your-key
setx LANGUAGE_ENDPOINT your-endpoint

Observação

Se for necessário acessar somente as variáveis de ambiente no console em execução no momento, você pode definir a variável de ambiente com set em vez de setx.

Depois de adicionar as variáveis de ambiente, talvez seja necessário reiniciar todos os programas em execução que precisarão ler as variáveis de ambiente, incluindo a janela do console. Por exemplo, se estiver usando o Visual Studio como seu editor, reinicie-o antes de executar o exemplo.

Criar um aplicativo .NET Core

Usando o IDE do Visual Studio, crie um aplicativo de console do .NET Core. Isso criará um projeto "Olá, Mundo" com um arquivo de origem C#: program.cs.

Instale a biblioteca de cliente clicando com o botão direito do mouse na solução no Gerenciador de Soluções e selecionando Gerenciar Pacotes do NuGet. No gerenciador de pacotes que é aberto, selecione Procurar e pesquise por Azure.AI.TextAnalytics. Selecione a versão 5.2.0 e, em seguida, Instalar. Você também pode usar o Console do Gerenciador de Pacotes.

Exemplo de código

Copie o seguinte código para o seu arquivo program.cs e execute o código.

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();
        }

    }
}

Saída

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

Limpar os recursos

Se quiser limpar e remover uma assinatura dos Serviços de IA do Azure, você poderá excluir o recurso ou grupo de recursos. Excluir o grupo de recursos também exclui todos os recursos associados a ele.

Use os comandos a seguir para excluir as variáveis de ambiente que você criou para esse início rápido.

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

Próximas etapas

Documentação de referência | Amostras adicionais | Pacote (Maven) | Código-fonte da biblioteca

Use este início rápido para criar um aplicativo de análise de sentimentos com a biblioteca de clientes para Java. No exemplo a seguir, você criará um aplicativo Java que pode identificar os sentimentos expressos em uma amostra de texto e executar uma análise de sentimento baseada em aspecto.

Pré-requisitos

Configurando

Criar um recurso do Azure

Será necessário implantar um recurso do Azure para usar o exemplo de código abaixo. Esse recurso conterá uma chave e um ponto de extremidade que você usará para autenticar as chamadas de API enviadas para o serviço de linguagem.

  1. Use o link a seguir para criar um recurso de linguagem usando o portal do Azure. Você precisará se conectar usando sua assinatura do Azure.

  2. Na tela Selecionar recursos adicionais que aparece, selecione Continuar a criar seu recurso.

    Uma captura de tela mostrando opções de recursos adicionais no portal do Azure.

  3. Na tela Criar linguagem, forneça as seguintes informações:

    Detalhe Descrição
    Subscription A conta de assinatura à qual seu recurso será associado. Selecione a assinatura do Azure no menu suspenso.
    Resource group Um grupo de recursos é um contêiner que armazena os recursos criados por você. Selecione Criar novo para criar um novo grupo de recursos.
    Região O local do recurso de Linguagem. Diferentes regiões podem apresentar latência, dependendo do seu local físico, mas não impactam sobre a disponibilidade de runtime do seu recurso. Neste início rápido, selecione uma região disponível perto de você ou escolha Leste dos EUA.
    Nome O nome para o recurso de linguagem. Esse nome também será usado para criar uma URL de ponto de extremidade e seus aplicativos o usarão para enviar solicitações de API.
    Tipo de preço O tipo de preço do recurso de Linguagem. É possível usar o nível Gratuito F0 para experimentar o serviço e atualizar mais tarde para um nível pago para produção.

    Captura de tela mostrando os detalhes da criação de recursos no portal do Azure.

  4. Verifique se a caixa de seleção Aviso de IA Responsável está marcada.

  5. Selecione Examinar + Criar na parte inferior da página.

  6. Na tela exibida, verifique se a validação foi aprovada e se você inseriu suas informações corretamente. Em seguida, selecione Criar.

Obter chave e ponto de extremidade

Em seguida, você precisará da chave e do ponto de extremidade do recurso para conectar seu aplicativo à API. Você vai colar a chave e o ponto de extremidade no código mais adiante no guia de início rápido.

  1. Após a implantação bem-sucedida do recurso de linguagem, clique no botão Acessar recurso em Próximas etapas.

    Uma captura de tela mostrando as próximas etapas após a implantação de um recurso.

  2. Na tela do recurso, selecione Chaves e ponto de extremidade no menu de navegação à esquerda. Você usará uma das chaves e o ponto de extremidade nas etapas abaixo.

    Uma captura de tela mostrando as chaves e a seção de ponto de extremidade para um recurso.

Criar variáveis de ambiente

Seu aplicativo deve ser autenticado para enviar solicitações de API. Para produção, use uma maneira segura de armazenar e acessar suas credenciais. Neste exemplo, você gravará suas credenciais em variáveis de ambiente no computador local que está executando o aplicativo.

Para definir a variável de ambiente da chave de recurso de linguagem, abra uma janela do console e siga as instruções para o seu sistema operacional e ambiente de desenvolvimento.

  • Para definir a variável de ambiente LANGUAGE_KEY, substitua your-key por uma das chaves do recurso.
  • Para definir a variável de ambiente LANGUAGE_ENDPOINT, substitua your-endpoint pelo ponto de extremidade do recurso.

Importante

Se você usar uma chave de API, armazene-a com segurança em outro lugar, como no Azure Key Vault. Não inclua a chave da API diretamente no seu código e nunca a publique publicamente.

Para obter mais informações sobre a segurança dos serviços de IA, veja Autenticar solicitações para serviços de IA do Azure.

setx LANGUAGE_KEY your-key
setx LANGUAGE_ENDPOINT your-endpoint

Observação

Se for necessário acessar somente as variáveis de ambiente no console em execução no momento, você pode definir a variável de ambiente com set em vez de setx.

Depois de adicionar as variáveis de ambiente, talvez seja necessário reiniciar todos os programas em execução que precisarão ler as variáveis de ambiente, incluindo a janela do console. Por exemplo, se estiver usando o Visual Studio como seu editor, reinicie-o antes de executar o exemplo.

Adicionar a biblioteca de clientes

Crie um projeto Maven no IDE ou no ambiente de desenvolvimento de sua preferência. Em seguida, adicione a dependência a seguir ao arquivo pom.xml do projeto. Você pode encontrar a sintaxe de implementação para outras ferramentas de build online.

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

Exemplo de código

Crie um arquivo Java chamado Example.java. Abra o arquivo e copie o código abaixo. Depois, execute o código.

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());
                }
            });
        });
    }
}

Saída

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.

Limpar os recursos

Se quiser limpar e remover uma assinatura dos Serviços de IA do Azure, você poderá excluir o recurso ou grupo de recursos. Excluir o grupo de recursos também exclui todos os recursos associados a ele.

Use os comandos a seguir para excluir as variáveis de ambiente que você criou para esse início rápido.

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

Próximas etapas

Documentação de referência | Amostras adicionais | Pacote (npm) | Código-fonte da biblioteca

Use este início rápido para criar um aplicativo de análise de sentimentos com a biblioteca de clientes para Node.js. No exemplo a seguir, você criará um aplicativo JavaScript que pode identificar os sentimentos expressos em uma amostra de texto e executar uma análise de sentimento baseada em aspecto.

Pré-requisitos

Configurando

Criar um recurso do Azure

Será necessário implantar um recurso do Azure para usar o exemplo de código abaixo. Esse recurso conterá uma chave e um ponto de extremidade que você usará para autenticar as chamadas de API enviadas para o serviço de linguagem.

  1. Use o link a seguir para criar um recurso de linguagem usando o portal do Azure. Você precisará se conectar usando sua assinatura do Azure.

  2. Na tela Selecionar recursos adicionais que aparece, selecione Continuar a criar seu recurso.

    Uma captura de tela mostrando opções de recursos adicionais no portal do Azure.

  3. Na tela Criar linguagem, forneça as seguintes informações:

    Detalhe Descrição
    Subscription A conta de assinatura à qual seu recurso será associado. Selecione a assinatura do Azure no menu suspenso.
    Resource group Um grupo de recursos é um contêiner que armazena os recursos criados por você. Selecione Criar novo para criar um novo grupo de recursos.
    Região O local do recurso de Linguagem. Diferentes regiões podem apresentar latência, dependendo do seu local físico, mas não impactam sobre a disponibilidade de runtime do seu recurso. Neste início rápido, selecione uma região disponível perto de você ou escolha Leste dos EUA.
    Nome O nome para o recurso de linguagem. Esse nome também será usado para criar uma URL de ponto de extremidade e seus aplicativos o usarão para enviar solicitações de API.
    Tipo de preço O tipo de preço do recurso de Linguagem. É possível usar o nível Gratuito F0 para experimentar o serviço e atualizar mais tarde para um nível pago para produção.

    Captura de tela mostrando os detalhes da criação de recursos no portal do Azure.

  4. Verifique se a caixa de seleção Aviso de IA Responsável está marcada.

  5. Selecione Examinar + Criar na parte inferior da página.

  6. Na tela exibida, verifique se a validação foi aprovada e se você inseriu suas informações corretamente. Em seguida, selecione Criar.

Obter chave e ponto de extremidade

Em seguida, você precisará da chave e do ponto de extremidade do recurso para conectar seu aplicativo à API. Você vai colar a chave e o ponto de extremidade no código mais adiante no guia de início rápido.

  1. Após a implantação bem-sucedida do recurso de linguagem, clique no botão Acessar recurso em Próximas etapas.

    Uma captura de tela mostrando as próximas etapas após a implantação de um recurso.

  2. Na tela do recurso, selecione Chaves e ponto de extremidade no menu de navegação à esquerda. Você usará uma das chaves e o ponto de extremidade nas etapas abaixo.

    Uma captura de tela mostrando as chaves e a seção de ponto de extremidade para um recurso.

Criar variáveis de ambiente

Seu aplicativo deve ser autenticado para enviar solicitações de API. Para produção, use uma maneira segura de armazenar e acessar suas credenciais. Neste exemplo, você gravará suas credenciais em variáveis de ambiente no computador local que está executando o aplicativo.

Para definir a variável de ambiente da chave de recurso de linguagem, abra uma janela do console e siga as instruções para o seu sistema operacional e ambiente de desenvolvimento.

  • Para definir a variável de ambiente LANGUAGE_KEY, substitua your-key por uma das chaves do recurso.
  • Para definir a variável de ambiente LANGUAGE_ENDPOINT, substitua your-endpoint pelo ponto de extremidade do recurso.

Importante

Se você usar uma chave de API, armazene-a com segurança em outro lugar, como no Azure Key Vault. Não inclua a chave da API diretamente no seu código e nunca a publique publicamente.

Para obter mais informações sobre a segurança dos serviços de IA, veja Autenticar solicitações para serviços de IA do Azure.

setx LANGUAGE_KEY your-key
setx LANGUAGE_ENDPOINT your-endpoint

Observação

Se for necessário acessar somente as variáveis de ambiente no console em execução no momento, você pode definir a variável de ambiente com set em vez de setx.

Depois de adicionar as variáveis de ambiente, talvez seja necessário reiniciar todos os programas em execução que precisarão ler as variáveis de ambiente, incluindo a janela do console. Por exemplo, se estiver usando o Visual Studio como seu editor, reinicie-o antes de executar o exemplo.

Criar um novo aplicativo do Node.js

Em uma janela de console (como cmd, PowerShell ou Bash), crie um novo diretório para seu aplicativo e navegue até ele.

mkdir myapp 

cd myapp

Execute o comando npm init para criar um aplicativo do Node com um arquivo package.json.

npm init

Instalar a biblioteca de clientes

Instale os pacotes npm:

npm install @azure/ai-language-text

Exemplo de código

Abra o arquivo e copie o código abaixo. Depois, execute o código.

"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);
});

Saída

=== 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

Limpar os recursos

Se quiser limpar e remover uma assinatura dos Serviços de IA do Azure, você poderá excluir o recurso ou grupo de recursos. Excluir o grupo de recursos também exclui todos os recursos associados a ele.

Use os comandos a seguir para excluir as variáveis de ambiente que você criou para esse início rápido.

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

Próximas etapas

Documentação de referência | Amostras adicionais | Pacote (PyPi) | Código-fonte da biblioteca

Use este início rápido para criar um aplicativo de análise de sentimentos com a biblioteca de clientes para Python. No exemplo a seguir, você criará um aplicativo Python que pode identificar os sentimentos expressos em uma amostra de texto e executar uma análise de sentimento baseada em aspecto.

Pré-requisitos

Configurando

Criar um recurso do Azure

Será necessário implantar um recurso do Azure para usar o exemplo de código abaixo. Esse recurso conterá uma chave e um ponto de extremidade que você usará para autenticar as chamadas de API enviadas para o serviço de linguagem.

  1. Use o link a seguir para criar um recurso de linguagem usando o portal do Azure. Você precisará se conectar usando sua assinatura do Azure.

  2. Na tela Selecionar recursos adicionais que aparece, selecione Continuar a criar seu recurso.

    Uma captura de tela mostrando opções de recursos adicionais no portal do Azure.

  3. Na tela Criar linguagem, forneça as seguintes informações:

    Detalhe Descrição
    Subscription A conta de assinatura à qual seu recurso será associado. Selecione a assinatura do Azure no menu suspenso.
    Resource group Um grupo de recursos é um contêiner que armazena os recursos criados por você. Selecione Criar novo para criar um novo grupo de recursos.
    Região O local do recurso de Linguagem. Diferentes regiões podem apresentar latência, dependendo do seu local físico, mas não impactam sobre a disponibilidade de runtime do seu recurso. Neste início rápido, selecione uma região disponível perto de você ou escolha Leste dos EUA.
    Nome O nome para o recurso de linguagem. Esse nome também será usado para criar uma URL de ponto de extremidade e seus aplicativos o usarão para enviar solicitações de API.
    Tipo de preço O tipo de preço do recurso de Linguagem. É possível usar o nível Gratuito F0 para experimentar o serviço e atualizar mais tarde para um nível pago para produção.

    Captura de tela mostrando os detalhes da criação de recursos no portal do Azure.

  4. Verifique se a caixa de seleção Aviso de IA Responsável está marcada.

  5. Selecione Examinar + Criar na parte inferior da página.

  6. Na tela exibida, verifique se a validação foi aprovada e se você inseriu suas informações corretamente. Em seguida, selecione Criar.

Obter chave e ponto de extremidade

Em seguida, você precisará da chave e do ponto de extremidade do recurso para conectar seu aplicativo à API. Você vai colar a chave e o ponto de extremidade no código mais adiante no guia de início rápido.

  1. Após a implantação bem-sucedida do recurso de linguagem, clique no botão Acessar recurso em Próximas etapas.

    Uma captura de tela mostrando as próximas etapas após a implantação de um recurso.

  2. Na tela do recurso, selecione Chaves e ponto de extremidade no menu de navegação à esquerda. Você usará uma das chaves e o ponto de extremidade nas etapas abaixo.

    Uma captura de tela mostrando as chaves e a seção de ponto de extremidade para um recurso.

Criar variáveis de ambiente

Seu aplicativo deve ser autenticado para enviar solicitações de API. Para produção, use uma maneira segura de armazenar e acessar suas credenciais. Neste exemplo, você gravará suas credenciais em variáveis de ambiente no computador local que está executando o aplicativo.

Para definir a variável de ambiente da chave de recurso de linguagem, abra uma janela do console e siga as instruções para o seu sistema operacional e ambiente de desenvolvimento.

  • Para definir a variável de ambiente LANGUAGE_KEY, substitua your-key por uma das chaves do recurso.
  • Para definir a variável de ambiente LANGUAGE_ENDPOINT, substitua your-endpoint pelo ponto de extremidade do recurso.

Importante

Se você usar uma chave de API, armazene-a com segurança em outro lugar, como no Azure Key Vault. Não inclua a chave da API diretamente no seu código e nunca a publique publicamente.

Para obter mais informações sobre a segurança dos serviços de IA, veja Autenticar solicitações para serviços de IA do Azure.

setx LANGUAGE_KEY your-key
setx LANGUAGE_ENDPOINT your-endpoint

Observação

Se for necessário acessar somente as variáveis de ambiente no console em execução no momento, você pode definir a variável de ambiente com set em vez de setx.

Depois de adicionar as variáveis de ambiente, talvez seja necessário reiniciar todos os programas em execução que precisarão ler as variáveis de ambiente, incluindo a janela do console. Por exemplo, se estiver usando o Visual Studio como seu editor, reinicie-o antes de executar o exemplo.

Instalar a biblioteca de clientes

Depois de instalar o Python, você pode instalar a biblioteca de clientes com:

pip install azure-ai-textanalytics==5.2.0

Exemplo de código

Crie um novo arquivo Python e copie o código abaixo. Então, execute o código

# 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)

Saída

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

Limpar os recursos

Se quiser limpar e remover uma assinatura dos Serviços de IA do Azure, você poderá excluir o recurso ou grupo de recursos. Excluir o grupo de recursos também exclui todos os recursos associados a ele.

Use os comandos a seguir para excluir as variáveis de ambiente que você criou para esse início rápido.

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

Próximas etapas

Documentação de referência

Use este início rápido para enviar solicitações de análise de sentimento usando a API REST. No exemplo a seguir, você usará o cURL para identificar os sentimentos expressos em uma amostra de texto e executar uma análise de sentimento baseada em aspecto.

Pré-requisitos

Configurando

Criar um recurso do Azure

Será necessário implantar um recurso do Azure para usar o exemplo de código abaixo. Esse recurso conterá uma chave e um ponto de extremidade que você usará para autenticar as chamadas de API enviadas para o serviço de linguagem.

  1. Use o link a seguir para criar um recurso de linguagem usando o portal do Azure. Você precisará se conectar usando sua assinatura do Azure.

  2. Na tela Selecionar recursos adicionais que aparece, selecione Continuar a criar seu recurso.

    Uma captura de tela mostrando opções de recursos adicionais no portal do Azure.

  3. Na tela Criar linguagem, forneça as seguintes informações:

    Detalhe Descrição
    Subscription A conta de assinatura à qual seu recurso será associado. Selecione a assinatura do Azure no menu suspenso.
    Resource group Um grupo de recursos é um contêiner que armazena os recursos criados por você. Selecione Criar novo para criar um novo grupo de recursos.
    Região O local do recurso de Linguagem. Diferentes regiões podem apresentar latência, dependendo do seu local físico, mas não impactam sobre a disponibilidade de runtime do seu recurso. Neste início rápido, selecione uma região disponível perto de você ou escolha Leste dos EUA.
    Nome O nome para o recurso de linguagem. Esse nome também será usado para criar uma URL de ponto de extremidade e seus aplicativos o usarão para enviar solicitações de API.
    Tipo de preço O tipo de preço do recurso de Linguagem. É possível usar o nível Gratuito F0 para experimentar o serviço e atualizar mais tarde para um nível pago para produção.

    Captura de tela mostrando os detalhes da criação de recursos no portal do Azure.

  4. Verifique se a caixa de seleção Aviso de IA Responsável está marcada.

  5. Selecione Examinar + Criar na parte inferior da página.

  6. Na tela exibida, verifique se a validação foi aprovada e se você inseriu suas informações corretamente. Em seguida, selecione Criar.

Obter chave e ponto de extremidade

Em seguida, você precisará da chave e do ponto de extremidade do recurso para conectar seu aplicativo à API. Você vai colar a chave e o ponto de extremidade no código mais adiante no guia de início rápido.

  1. Após a implantação bem-sucedida do recurso de linguagem, clique no botão Acessar recurso em Próximas etapas.

    Uma captura de tela mostrando as próximas etapas após a implantação de um recurso.

  2. Na tela do recurso, selecione Chaves e ponto de extremidade no menu de navegação à esquerda. Você usará uma das chaves e o ponto de extremidade nas etapas abaixo.

    Uma captura de tela mostrando as chaves e a seção de ponto de extremidade para um recurso.

Criar variáveis de ambiente

Seu aplicativo deve ser autenticado para enviar solicitações de API. Para produção, use uma maneira segura de armazenar e acessar suas credenciais. Neste exemplo, você gravará suas credenciais em variáveis de ambiente no computador local que está executando o aplicativo.

Para definir a variável de ambiente da chave de recurso de linguagem, abra uma janela do console e siga as instruções para o seu sistema operacional e ambiente de desenvolvimento.

  • Para definir a variável de ambiente LANGUAGE_KEY, substitua your-key por uma das chaves do recurso.
  • Para definir a variável de ambiente LANGUAGE_ENDPOINT, substitua your-endpoint pelo ponto de extremidade do recurso.

Importante

Se você usar uma chave de API, armazene-a com segurança em outro lugar, como no Azure Key Vault. Não inclua a chave da API diretamente no seu código e nunca a publique publicamente.

Para obter mais informações sobre a segurança dos serviços de IA, veja Autenticar solicitações para serviços de IA do Azure.

setx LANGUAGE_KEY your-key
setx LANGUAGE_ENDPOINT your-endpoint

Observação

Se for necessário acessar somente as variáveis de ambiente no console em execução no momento, você pode definir a variável de ambiente com set em vez de setx.

Depois de adicionar as variáveis de ambiente, talvez seja necessário reiniciar todos os programas em execução que precisarão ler as variáveis de ambiente, incluindo a janela do console. Por exemplo, se estiver usando o Visual Studio como seu editor, reinicie-o antes de executar o exemplo.

Criar um arquivo JSON com o corpo da solicitação de exemplo

Em um editor de código, crie um arquivo chamado test_sentiment_payload.json e copie o exemplo JSON a seguir. Esta solicitação de exemplo será enviada para a API na próxima etapa.

{
	"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."
			}
		]
	}
} 

Salve test_sentiment_payload.json em algum lugar no seu computador. Por exemplo, sua área de trabalho.

Enviar uma análise de sentimento e uma solicitação de API de mineração de opiniões

Observação

O exemplo abaixo inclui uma solicitação para o recurso de mineração de opiniões da análise de sentimento, que fornece informações granulares sobre as avaliações (adjetivos) relacionadas aos destinos (substantivos) no texto.

Use os comandos a seguir para enviar a solicitação de API usando o programa que você está usando. Copie o comando para o terminal e execute-o.

parâmetro Descrição
-X POST <endpoint> Especifica o ponto de extremidade para acessar a API.
-H Content-Type: application/json Tipo de conteúdo para enviar dados JSON.
-H "Ocp-Apim-Subscription-Key:<key> Especifica a chave para acessar a API.
-d <documents> O arquivo JSON contendo os documentos que você deseja enviar.

Substitua C:\Users\<myaccount>\Desktop\test_sentiment_payload.json pela localização do arquivo da solicitação JSON de exemplo criado na etapa anterior.

Prompt de comando

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"

Resposta 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"
	}
}

Limpar os recursos

Se quiser limpar e remover uma assinatura dos Serviços de IA do Azure, você poderá excluir o recurso ou grupo de recursos. Excluir o grupo de recursos também exclui todos os recursos associados a ele.

Use os comandos a seguir para excluir as variáveis de ambiente que você criou para esse início rápido.

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

Próximas etapas