Share via


Guia de início rápido: análise de sentimento e mineração de opinião

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

Use este início rápido para criar um aplicativo de análise de sentimento com a biblioteca de cliente para .NET. No exemplo a seguir, você cria um aplicativo C# que pode identificar o(s) sentimento(s) expresso(s) em uma amostra de texto e executar uma análise de sentimento baseada em aspetos.

Pré-requisitos

Configuração

Criar um recurso do Azure

Para usar o exemplo de código abaixo, você precisará implantar um recurso do Azure. Este recurso conterá uma chave e um ponto de extremidade que você usará para autenticar as chamadas de API enviadas ao serviço de idiomas.

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

  2. Na tela Selecionar recursos adicionais exibida, selecione Continuar para criar seu recurso.

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

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

    Detalhe Description
    Subscrição A conta de subscrição à qual o seu recurso será associado. Selecione sua assinatura do Azure no menu suspenso.
    Grupo de recursos Um grupo de recursos é um contêiner que armazena os recursos criados. Selecione Criar novo para criar um novo grupo de recursos.
    País/Região A localização do seu recurso de idioma. Regiões diferentes podem introduzir latência dependendo da sua localização física, mas não têm impacto na disponibilidade de tempo de execução do seu recurso. Para este início rápido, selecione uma região disponível perto de você ou escolha Leste dos EUA.
    Nome O nome do recurso Idioma. Esse nome também será usado para criar uma URL de ponto de extremidade que seus aplicativos usarão para enviar solicitações de API.
    Escalão de preço A camada de preço para seu recurso de idioma. Você pode usar a camada F0 gratuita para experimentar o serviço e atualizar mais tarde para uma camada paga para produção.

    Uma captura de tela mostrando detalhes de 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 Rever + Criar na parte inferior da página.

  6. No ecrã apresentado, certifique-se de que a validação foi aprovada e de que introduziu as suas informações corretamente. Depois, selecione Criar.

Obtenha a sua chave e o seu ponto final

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

  1. Depois que o recurso de idioma for implantado com êxito, clique no botão Ir para 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 seu recurso, selecione Chaves e ponto de extremidade no menu de navegação à esquerda. Você usará uma de suas chaves e seu endpoint nas etapas abaixo.

    Uma captura de tela mostrando as chaves e a seção de ponto de extremidade de 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 na máquina local que executa o aplicativo.

Gorjeta

Não inclua a chave diretamente no seu código e nunca a publique publicamente. Consulte o artigo de segurança dos serviços de IA do Azure para obter mais opções de autenticação, como o Azure Key Vault.

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

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

Nota

Se você só precisar acessar as variáveis de ambiente no console em execução atual, poderá 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 você estiver usando o Visual Studio como editor, reinicie o Visual Studio antes de executar o exemplo.

Criar uma nova aplicação .NET Core

Com o IDE do Visual Studio, crie uma nova aplicação de consola .NET Core. Isso cria um projeto "Hello World" com um único arquivo de origem C#: program.cs.

Instale a biblioteca de cliente, clicando com o botão direito do rato na solução no Explorador de Soluções e selecionando Gerir Pacotes NuGet. No gerenciador de pacotes que é aberto, selecione Procurar e procure Azure.AI.TextAnalytics. Selecione a versão 5.2.0 e, em seguida, Instalar. Também pode utilizar a Consola do Gestor de Pacotes.

Exemplo de código

Copie o código a seguir para o 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

Clean up resources (Limpar recursos)

Se quiser limpar e remover uma assinatura de serviços do Azure AI, você pode excluir o recurso ou grupo de recursos. A exclusão do grupo de recursos também exclui quaisquer outros recursos associados a ele.

Use os comandos a seguir para excluir as variáveis de ambiente criadas para este início rápido.

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

Próximos passos

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

Use este início rápido para criar um aplicativo de análise de sentimento com a biblioteca de cliente para Java. No exemplo a seguir, você criará um aplicativo Java que pode identificar o(s) sentimento(s) expresso(s) em uma amostra de texto e executar uma análise de sentimento baseada em aspetos.

Pré-requisitos

Configuração

Criar um recurso do Azure

Para usar o exemplo de código abaixo, você precisará implantar um recurso do Azure. Este recurso conterá uma chave e um ponto de extremidade que você usará para autenticar as chamadas de API enviadas ao serviço de idiomas.

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

  2. Na tela Selecionar recursos adicionais exibida, selecione Continuar para criar seu recurso.

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

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

    Detalhe Description
    Subscrição A conta de subscrição à qual o seu recurso será associado. Selecione sua assinatura do Azure no menu suspenso.
    Grupo de recursos Um grupo de recursos é um contêiner que armazena os recursos criados. Selecione Criar novo para criar um novo grupo de recursos.
    País/Região A localização do seu recurso de idioma. Regiões diferentes podem introduzir latência dependendo da sua localização física, mas não têm impacto na disponibilidade de tempo de execução do seu recurso. Para este início rápido, selecione uma região disponível perto de você ou escolha Leste dos EUA.
    Nome O nome do recurso Idioma. Esse nome também será usado para criar uma URL de ponto de extremidade que seus aplicativos usarão para enviar solicitações de API.
    Escalão de preço A camada de preço para seu recurso de idioma. Você pode usar a camada F0 gratuita para experimentar o serviço e atualizar mais tarde para uma camada paga para produção.

    Uma captura de tela mostrando detalhes de 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 Rever + Criar na parte inferior da página.

  6. No ecrã apresentado, certifique-se de que a validação foi aprovada e de que introduziu as suas informações corretamente. Depois, selecione Criar.

Obtenha a sua chave e o seu ponto final

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

  1. Depois que o recurso de idioma for implantado com êxito, clique no botão Ir para 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 seu recurso, selecione Chaves e ponto de extremidade no menu de navegação à esquerda. Você usará uma de suas chaves e seu endpoint nas etapas abaixo.

    Uma captura de tela mostrando as chaves e a seção de ponto de extremidade de 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 na máquina local que executa o aplicativo.

Gorjeta

Não inclua a chave diretamente no seu código e nunca a publique publicamente. Consulte o artigo de segurança dos serviços de IA do Azure para obter mais opções de autenticação, como o Azure Key Vault.

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

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

Nota

Se você só precisar acessar as variáveis de ambiente no console em execução atual, poderá 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 você estiver usando o Visual Studio como editor, reinicie o Visual Studio antes de executar o exemplo.

Adicionar a biblioteca de cliente

Crie um projeto do Maven no IDE ou ambiente de desenvolvimento da sua preferência. Em seguida, adicione a seguinte dependência ao ficheiro pom.xml do projeto. Pode encontrar a sintaxe de implementação para outras ferramentas de criação 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 ficheiro Java com o nome Example.java. Abra o arquivo e copie o código abaixo. Em seguida, 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.

Clean up resources (Limpar recursos)

Se quiser limpar e remover uma assinatura de serviços do Azure AI, você pode excluir o recurso ou grupo de recursos. A exclusão do grupo de recursos também exclui quaisquer outros recursos associados a ele.

Use os comandos a seguir para excluir as variáveis de ambiente criadas para este início rápido.

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

Próximos passos

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

Use este início rápido para criar um aplicativo de análise de sentimento com a biblioteca de cliente para Node.js. No exemplo a seguir, você criará um aplicativo JavaScript que pode identificar o(s) sentimento(s) expresso(s) em uma amostra de texto e executar uma análise de sentimento baseada em aspetos.

Pré-requisitos

Configuração

Criar um recurso do Azure

Para usar o exemplo de código abaixo, você precisará implantar um recurso do Azure. Este recurso conterá uma chave e um ponto de extremidade que você usará para autenticar as chamadas de API enviadas ao serviço de idiomas.

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

  2. Na tela Selecionar recursos adicionais exibida, selecione Continuar para criar seu recurso.

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

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

    Detalhe Description
    Subscrição A conta de subscrição à qual o seu recurso será associado. Selecione sua assinatura do Azure no menu suspenso.
    Grupo de recursos Um grupo de recursos é um contêiner que armazena os recursos criados. Selecione Criar novo para criar um novo grupo de recursos.
    País/Região A localização do seu recurso de idioma. Regiões diferentes podem introduzir latência dependendo da sua localização física, mas não têm impacto na disponibilidade de tempo de execução do seu recurso. Para este início rápido, selecione uma região disponível perto de você ou escolha Leste dos EUA.
    Nome O nome do recurso Idioma. Esse nome também será usado para criar uma URL de ponto de extremidade que seus aplicativos usarão para enviar solicitações de API.
    Escalão de preço A camada de preço para seu recurso de idioma. Você pode usar a camada F0 gratuita para experimentar o serviço e atualizar mais tarde para uma camada paga para produção.

    Uma captura de tela mostrando detalhes de 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 Rever + Criar na parte inferior da página.

  6. No ecrã apresentado, certifique-se de que a validação foi aprovada e de que introduziu as suas informações corretamente. Depois, selecione Criar.

Obtenha a sua chave e o seu ponto final

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

  1. Depois que o recurso de idioma for implantado com êxito, clique no botão Ir para 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 seu recurso, selecione Chaves e ponto de extremidade no menu de navegação à esquerda. Você usará uma de suas chaves e seu endpoint nas etapas abaixo.

    Uma captura de tela mostrando as chaves e a seção de ponto de extremidade de 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 na máquina local que executa o aplicativo.

Gorjeta

Não inclua a chave diretamente no seu código e nunca a publique publicamente. Consulte o artigo de segurança dos serviços de IA do Azure para obter mais opções de autenticação, como o Azure Key Vault.

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

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

Nota

Se você só precisar acessar as variáveis de ambiente no console em execução atual, poderá 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 você estiver usando o Visual Studio como editor, reinicie o Visual Studio antes de executar o exemplo.

Criar uma nova aplicação Node.js

Numa janela de consola (como cmd, PowerShell ou Bash), crie um novo diretório para a sua aplicação e navegue para a mesma.

mkdir myapp 

cd myapp

Execute o comando npm init para criar uma aplicação de nó com um ficheiro package.json.

npm init

Instalar a biblioteca de cliente

Instale os pacotes npm:

npm install @azure/ai-language-text

Exemplo de código

Abra o arquivo e copie o código abaixo. Em seguida, 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

Clean up resources (Limpar recursos)

Se quiser limpar e remover uma assinatura de serviços do Azure AI, você pode excluir o recurso ou grupo de recursos. A exclusão do grupo de recursos também exclui quaisquer outros recursos associados a ele.

Use os comandos a seguir para excluir as variáveis de ambiente criadas para este início rápido.

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

Próximos passos

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

Use este início rápido para criar um aplicativo de análise de sentimento com a biblioteca de cliente para Python. No exemplo a seguir, você criará um aplicativo Python que pode identificar o(s) sentimento(s) expresso(s) em uma amostra de texto e executar a análise de sentimento baseada em aspetos.

Pré-requisitos

Configuração

Criar um recurso do Azure

Para usar o exemplo de código abaixo, você precisará implantar um recurso do Azure. Este recurso conterá uma chave e um ponto de extremidade que você usará para autenticar as chamadas de API enviadas ao serviço de idiomas.

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

  2. Na tela Selecionar recursos adicionais exibida, selecione Continuar para criar seu recurso.

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

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

    Detalhe Description
    Subscrição A conta de subscrição à qual o seu recurso será associado. Selecione sua assinatura do Azure no menu suspenso.
    Grupo de recursos Um grupo de recursos é um contêiner que armazena os recursos criados. Selecione Criar novo para criar um novo grupo de recursos.
    País/Região A localização do seu recurso de idioma. Regiões diferentes podem introduzir latência dependendo da sua localização física, mas não têm impacto na disponibilidade de tempo de execução do seu recurso. Para este início rápido, selecione uma região disponível perto de você ou escolha Leste dos EUA.
    Nome O nome do recurso Idioma. Esse nome também será usado para criar uma URL de ponto de extremidade que seus aplicativos usarão para enviar solicitações de API.
    Escalão de preço A camada de preço para seu recurso de idioma. Você pode usar a camada F0 gratuita para experimentar o serviço e atualizar mais tarde para uma camada paga para produção.

    Uma captura de tela mostrando detalhes de 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 Rever + Criar na parte inferior da página.

  6. No ecrã apresentado, certifique-se de que a validação foi aprovada e de que introduziu as suas informações corretamente. Depois, selecione Criar.

Obtenha a sua chave e o seu ponto final

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

  1. Depois que o recurso de idioma for implantado com êxito, clique no botão Ir para 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 seu recurso, selecione Chaves e ponto de extremidade no menu de navegação à esquerda. Você usará uma de suas chaves e seu endpoint nas etapas abaixo.

    Uma captura de tela mostrando as chaves e a seção de ponto de extremidade de 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 na máquina local que executa o aplicativo.

Gorjeta

Não inclua a chave diretamente no seu código e nunca a publique publicamente. Consulte o artigo de segurança dos serviços de IA do Azure para obter mais opções de autenticação, como o Azure Key Vault.

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

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

Nota

Se você só precisar acessar as variáveis de ambiente no console em execução atual, poderá 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 você estiver usando o Visual Studio como editor, reinicie o Visual Studio antes de executar o exemplo.

Instalar a biblioteca de cliente

Depois de instalar o Python, pode instalar a biblioteca de cliente com:

pip install azure-ai-textanalytics==5.2.0

Exemplo de código

Crie um novo arquivo Python e copie o código abaixo. Em seguida, 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

Clean up resources (Limpar recursos)

Se quiser limpar e remover uma assinatura de serviços do Azure AI, você pode excluir o recurso ou grupo de recursos. A exclusão do grupo de recursos também exclui quaisquer outros recursos associados a ele.

Use os comandos a seguir para excluir as variáveis de ambiente criadas para este início rápido.

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

Próximos passos

Documentação de referência

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

Pré-requisitos

Configuração

Criar um recurso do Azure

Para usar o exemplo de código abaixo, você precisará implantar um recurso do Azure. Este recurso conterá uma chave e um ponto de extremidade que você usará para autenticar as chamadas de API enviadas ao serviço de idiomas.

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

  2. Na tela Selecionar recursos adicionais exibida, selecione Continuar para criar seu recurso.

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

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

    Detalhe Description
    Subscrição A conta de subscrição à qual o seu recurso será associado. Selecione sua assinatura do Azure no menu suspenso.
    Grupo de recursos Um grupo de recursos é um contêiner que armazena os recursos criados. Selecione Criar novo para criar um novo grupo de recursos.
    País/Região A localização do seu recurso de idioma. Regiões diferentes podem introduzir latência dependendo da sua localização física, mas não têm impacto na disponibilidade de tempo de execução do seu recurso. Para este início rápido, selecione uma região disponível perto de você ou escolha Leste dos EUA.
    Nome O nome do recurso Idioma. Esse nome também será usado para criar uma URL de ponto de extremidade que seus aplicativos usarão para enviar solicitações de API.
    Escalão de preço A camada de preço para seu recurso de idioma. Você pode usar a camada F0 gratuita para experimentar o serviço e atualizar mais tarde para uma camada paga para produção.

    Uma captura de tela mostrando detalhes de 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 Rever + Criar na parte inferior da página.

  6. No ecrã apresentado, certifique-se de que a validação foi aprovada e de que introduziu as suas informações corretamente. Depois, selecione Criar.

Obtenha a sua chave e o seu ponto final

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

  1. Depois que o recurso de idioma for implantado com êxito, clique no botão Ir para 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 seu recurso, selecione Chaves e ponto de extremidade no menu de navegação à esquerda. Você usará uma de suas chaves e seu endpoint nas etapas abaixo.

    Uma captura de tela mostrando as chaves e a seção de ponto de extremidade de 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 na máquina local que executa o aplicativo.

Gorjeta

Não inclua a chave diretamente no seu código e nunca a publique publicamente. Consulte o artigo de segurança dos serviços de IA do Azure para obter mais opções de autenticação, como o Azure Key Vault.

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

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

Nota

Se você só precisar acessar as variáveis de ambiente no console em execução atual, poderá 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 você estiver usando o Visual Studio como editor, reinicie o Visual Studio antes de executar o exemplo.

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

Em um editor de códigos, crie um novo 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."
			}
		]
	}
} 

Guarde test_sentiment_payload.json algures no seu computador. Por exemplo, o seu ambiente de trabalho.

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

Nota

Os exemplos abaixo incluem uma solicitação para o recurso de mineração de opinião da análise de sentimento, que fornece informações granulares sobre avaliações (adjetivos) relacionadas a alvos (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 Description
-X POST <endpoint> Especifica seu ponto de extremidade para acessar a API.
-H Content-Type: application/json O 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 que contém os documentos que você deseja enviar.

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

Linha de comandos

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

Clean up resources (Limpar recursos)

Se quiser limpar e remover uma assinatura de serviços do Azure AI, você pode excluir o recurso ou grupo de recursos. A exclusão do grupo de recursos também exclui quaisquer outros recursos associados a ele.

Use os comandos a seguir para excluir as variáveis de ambiente criadas para este início rápido.

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

Próximos passos