Como: Detetar sentimento usando a API de Análise de TextoHow to: Detect sentiment using the Text Analytics API

A funcionalidade de Análise de Sentimento da API de Text Analytics avalia os resultados de texto e devolve pontuações e rótulos de sentimento para cada frase.The Text Analytics API's Sentiment Analysis feature evaluates text and returns sentiment scores and labels for each sentence. Isto é útil para detetar sentimentos positivos e negativos nas redes sociais, avaliações de clientes, fóruns de discussão e muito mais.This is useful for detecting positive and negative sentiment in social media, customer reviews, discussion forums and more. Os modelos de IA utilizados pela API são fornecidos pelo serviço, basta enviar conteúdo para análise.The AI models used by the API are provided by the service, you just have to send content for analysis.

Após o envio de um pedido de análise de sentimento, a API devolve rótulos de sentimento (tais como "negativo", "neutro" e "positivo") e pontuações de confiança a nível da frase e do documento.After sending a sentiment analysis request, the API returns sentiment labels (such as "negative", "neutral" and "positive") and confidence scores at the sentence and document-level.

A Análise de Sentimento suporta uma vasta gama de línguas, com mais na pré-visualização.Sentiment Analysis supports a wide range of languages, with more in preview. Para obter mais informações, veja os Idiomas suportados.For more information, see Supported languages.

Versões e funcionalidades de Análise de SentimentoSentiment Analysis versions and features

Importante

Texto Analytics API v3 não está disponível nas seguintes regiões: China Norte 2, China Leste.Text Analytics API v3 is not available in the following regions: China North 2, China East.

FuncionalidadeFeature Análise de Sentimento v3Sentiment Analysis v3 Análise de Sentimento v3.1 (Pré-visualização)Sentiment Analysis v3.1 (Preview)
Métodos para pedidos individuais e de loteMethods for single, and batch requests XX XX
Pontuações de sentimento e rotulagemSentiment scores and labeling XX XX
Recipiente Docker baseado em LinuxLinux-based Docker container XX
Mineração de opiniãoOpinion mining XX

Pontuação e rotulagem de sentimentosSentiment scoring and labeling

A Análise de Sentimento na V3 aplica rótulos de sentimento ao texto, que são devolvidos a um nível de frase e documento, com uma pontuação de confiança para cada um.Sentiment Analysis in v3 applies sentiment labels to text, which are returned at a sentence and document level, with a confidence score for each.

Os rótulos são positivos, negativose neutros.The labels are positive, negative, and neutral. Ao nível do documento, a etiqueta de sentimento misto também pode ser devolvida.At the document level, the mixed sentiment label also can be returned. O sentimento do documento é determinado a seguir:The sentiment of the document is determined below:

Sentimento da sentençaSentence sentiment Etiqueta de documento devolvidoReturned document label
Pelo menos uma positive frase está no documento.At least one positive sentence is in the document. O resto das frases neutral são.The rest of the sentences are neutral. positive
Pelo menos uma negative frase está no documento.At least one negative sentence is in the document. O resto das frases neutral são.The rest of the sentences are neutral. negative
Pelo menos uma negative frase e pelo menos uma frase positive estão no documento.At least one negative sentence and at least one positive sentence are in the document. mixed
Todas as frases do documento neutral são.All sentences in the document are neutral. neutral

Os resultados de confiança variam de 1 a 0.Confidence scores range from 1 to 0. Pontuações mais próximas de 1 indicam uma maior confiança na classificação do rótulo, enquanto as pontuações mais baixas indicam menor confiança.Scores closer to 1 indicate a higher confidence in the label's classification, while lower scores indicate lower confidence. Para cada documento ou para cada frase, as pontuações previstas associadas aos rótulos (positivos, negativos e neutros) somam até 1.For each document or each sentence, the predicted scores associated with the labels (positive, negative and neutral) add up to 1.

Mineração de opiniãoOpinion mining

A mineração de opinião é uma característica da Análise do Sentimento, a partir da versão 3.1-preview.1.Opinion mining is a feature of Sentiment Analysis, starting in version 3.1-preview.1. Também conhecida como Análise de Sentimento baseada em Aspetos no Processamento de Linguagem Natural (NLP), esta funcionalidade fornece mais informações granulares sobre as opiniões relacionadas com aspetos (como os atributos de produtos ou serviços) em texto.Also known as Aspect-based Sentiment Analysis in Natural Language Processing (NLP), this feature provides more granular information about the opinions related to aspects (such as the attributes of products or services) in text.

Por exemplo, se um cliente deixar feedback sobre um hotel como "o quarto era ótimo, mas o pessoal não era amigável", a mineração de opinião localizará aspetos no texto, e as suas opiniões e sentimentos associados:For example, if a customer leaves feedback about a hotel such as "the room was great, but the staff was unfriendly", opinion mining will locate aspects in the text, and their associated opinions and sentiments:

AspetoAspect OpiniãoOpinion SentimentoSentiment
salaroom Ótimogreat positivopositive
pessoalstaff hostilunfriendly negativonegative

Para obter a mineração de opinião nos seus resultados, deve incluir a opinionMining=true bandeira num pedido de análise de sentimento.To get opinion mining in your results, you must include the opinionMining=true flag in a request for sentiment analysis. Os resultados da mineração de opinião serão incluídos na resposta da análise do sentimento.The opinion mining results will be included in the sentiment analysis response.

Envio de um pedido de API RESTSending a REST API request

PreparaçãoPreparation

A análise de sentimento produz um resultado de maior qualidade quando lhe dá pequenas quantidades de texto para trabalhar.Sentiment analysis produces a higher-quality result when you give it smaller amounts of text to work on. O mesmo já não acontece com a extração de expressões-chave, que tem um melhor desempenho com blocos de texto maiores.This is opposite from key phrase extraction, which performs better on larger blocks of text. Para obter os melhores resultados em ambas as operações, considere reestruturar as entradas em conformidade.To get the best results from both operations, consider restructuring the inputs accordingly.

Você deve ter documentos JSON neste formato: ID, texto e idioma.You must have JSON documents in this format: ID, text, and language.

O tamanho do documento deve ser inferior a 5.120 caracteres por documento.Document size must be under 5,120 characters per document. Você pode ter até 1.000 itens (IDs) por coleção.You can have up to 1,000 items (IDs) per collection. A coleção é enviada no corpo do pedido.The collection is submitted in the body of the request.

Estruturar o pedidoStructure the request

Crie um pedido POST.Create a POST request. Pode utilizar o Carteiro ou a consola de testes API nas seguintes ligações de referência para estruturar e enviar rapidamente uma.You can use Postman or the API testing console in the following reference links to quickly structure and send one.

Solicitar pontos finaisRequest endpoints

Deite o ponto final HTTPS para análise de sentimento utilizando um recurso text analytics no Azure ou um recipiente instantâneo de Análise de Texto.Set the HTTPS endpoint for sentiment analysis by using either a Text Analytics resource on Azure or an instantiated Text Analytics container. Tem de incluir o URL correto para a versão que pretende utilizar.You must include the correct URL for the version you want to use. Por exemplo:For example:

Nota

Pode encontrar a sua chave e ponto final para o seu recurso Text Analytics no portal azul.You can find your key and endpoint for your Text Analytics resource on the azure portal. Estarão localizados na página de arranque rápido do recurso, sob gestão de recursos.They will be located on the resource's Quick start page, under resource management.

https://<your-custom-subdomain>.cognitiveservices.azure.com/text/analytics/v3.1-preview.1/sentiment

Para obter resultados de mineração de opinião, você deve incluir o opinionMining=true parâmetro.To get opinion mining results, you must include the opinionMining=true parameter. Por exemplo:For example:

https://<your-custom-subdomain>.cognitiveservices.azure.com/text/analytics/v3.1-preview.1/sentiment?opinionMining=true

Este parâmetro é definido false por padrão.This parameter is set to false by default.

Desa estatua um cabeçalho de pedido para incluir a sua chave API API de Análise de Texto.Set a request header to include your Text Analytics API key. No corpo do pedido, forneça a coleção de documentos JSON que preparou para esta análise.In the request body, provide the JSON documents collection you prepared for this analysis.

Exemplo Pedido de Análise de SentimentoExample Sentiment Analysis request

Segue-se um exemplo de conteúdos que poderá enviar para a análise de sentimentos.The following is an example of content you might submit for sentiment analysis. O formato de pedido é o mesmo para ambas as versões.The request format is the same for both versions.

{
  "documents": [
    {
      "language": "en",
      "id": "1",
      "text": "The restaurant had great food and our waiter was friendly."
    }
  ]
}

Postar o pedidoPost the request

A análise é realizada aquando da receção do pedido.Analysis is performed upon receipt of the request. Para obter informações sobre o tamanho e o número de pedidos que pode enviar por minuto e segundo, consulte a secção limite de dados na visão geral.For information on the size and number of requests you can send per minute and second, see the data limits section in the overview.

O Texto Analytics API é apátrida.The Text Analytics API is stateless. Nenhum dado é armazenado na sua conta e os resultados são devolvidos imediatamente na resposta.No data is stored in your account, and results are returned immediately in the response.

Ver os resultadosView the results

A análise do sentimento devolve um rótulo de sentimento e uma pontuação de confiança para todo o documento, e cada frase dentro dele.Sentiment analysis returns a sentiment label and confidence score for the entire document, and each sentence within it. Pontuações mais próximas de 1 indicam uma maior confiança na classificação do rótulo, enquanto as pontuações mais baixas indicam menor confiança.Scores closer to 1 indicate a higher confidence in the label's classification, while lower scores indicate lower confidence. Um documento pode ter várias frases, e as pontuações de confiança dentro de cada documento ou frase somam 1.A document can have multiple sentences, and the confidence scores within each document or sentence add up to 1.

O resultado é devolvido imediatamente.Output is returned immediately. Pode transmitir os resultados para uma aplicação que aceite o JSON ou guarde a saída para um ficheiro no sistema local.You can stream the results to an application that accepts JSON or save the output to a file on the local system. Em seguida, importe a saída para uma aplicação que pode usar para ordenar, pesquisar e manipular os dados.Then, import the output into an application that you can use to sort, search, and manipulate the data. Devido ao suporte multilíngue e emoji, a resposta pode conter compensações de texto.Due to multilingual and emoji support, the response may contain text offsets. Veja como processar compensações para obter mais informações.See how to process offsets for more information.

Análise de Sentimento v3.1 exemplo respostaSentiment Analysis v3.1 example response

A Análise de Sentimento v3.1 oferece mineração de opinião para além do objeto de resposta no separador Versão 3.0. Na resposta abaixo, a frase O restaurante tinha boa comida e o nosso empregado de mesa era amigável tem dois aspetos: comida e garçom.Sentiment Analysis v3.1 offers opinion mining in addition to the response object in the Version 3.0 tab. In the below response, the sentence The restaurant had great food and our waiter was friendly has two aspects: food and waiter. A propriedade de cada aspeto relations contém um valor com a referência ref URI aos, documents e sentences opinions objetos associados.Each aspect's relations property contains a ref value with the URI-reference to the associated documents, sentences, and opinions objects.

{
    "documents": [
        {
            "id": "1",
            "sentiment": "positive",
            "confidenceScores": {
                "positive": 1.0,
                "neutral": 0.0,
                "negative": 0.0
            },
            "sentences": [
                {
                    "sentiment": "positive",
                    "confidenceScores": {
                        "positive": 1.0,
                        "neutral": 0.0,
                        "negative": 0.0
                    },
                    "offset": 0,
                    "length": 58,
                    "text": "The restaurant had great food and our waiter was friendly.",
                    "aspects": [
                        {
                            "sentiment": "positive",
                            "confidenceScores": {
                                "positive": 1.0,
                                "negative": 0.0
                            },
                            "offset": 25,
                            "length": 4,
                            "text": "food",
                            "relations": [
                                {
                                    "relationType": "opinion",
                                    "ref": "#/documents/0/sentences/0/opinions/0"
                                }
                            ]
                        },
                        {
                            "sentiment": "positive",
                            "confidenceScores": {
                                "positive": 1.0,
                                "negative": 0.0
                            },
                            "offset": 38,
                            "length": 6,
                            "text": "waiter",
                            "relations": [
                                {
                                    "relationType": "opinion",
                                    "ref": "#/documents/0/sentences/0/opinions/1"
                                }
                            ]
                        }
                    ],
                    "opinions": [
                        {
                            "sentiment": "positive",
                            "confidenceScores": {
                                "positive": 1.0,
                                "negative": 0.0
                            },
                            "offset": 19,
                            "length": 5,
                            "text": "great",
                            "isNegated": false
                        },
                        {
                            "sentiment": "positive",
                            "confidenceScores": {
                                "positive": 1.0,
                                "negative": 0.0
                            },
                            "offset": 49,
                            "length": 8,
                            "text": "friendly",
                            "isNegated": false
                        }
                    ]
                }
            ],
            "warnings": []
        }
    ],
    "errors": [],
    "modelVersion": "2020-04-01"
}

ResumoSummary

Neste artigo, aprendeu conceitos e fluxo de trabalho para análise de sentimentos usando a API text Analytics.In this article, you learned concepts and workflow for sentiment analysis using the Text Analytics API. Em resumo:In summary:

  • A Análise de Sentimento está disponível para idiomas selecionados.Sentiment Analysis is available for selected languages.
  • Os documentos JSON no órgão de pedido incluem um ID, texto e código linguístico.JSON documents in the request body include an ID, text, and language code.
  • O pedido do POST é para um /sentiment ponto final usando uma chave de acesso personalizada e um ponto final válido para a sua subscrição.The POST request is to a /sentiment endpoint by using a personalized access key and an endpoint that's valid for your subscription.
  • A saída de resposta, que consiste numa pontuação de sentimento para cada ID do documento, pode ser transmitida para qualquer app que aceite o JSON.Response output, which consists of a sentiment score for each document ID, can be streamed to any app that accepts JSON. Por exemplo, Excel e Power BI.For example, Excel and Power BI.

Consulte tambémSee also