Análise em tempo real usando a API - Amazon Comprehend

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

Análise em tempo real usando a API

Os exemplos a seguir demonstram como usar a API do Amazon Comprehend para análise em tempo real, usando o AWS CLI e os SDKs para .NET, Java e Python AWS. Use os exemplos para saber mais sobre a operação síncrona do Amazon Comprehend e como compilar blocos para seus próprios aplicativos.

Os exemplos do .NET nesta seção usam o AWS SDK for .NET. É possível usar o AWS Toolkit for Visual Studio para desenvolver aplicativos da AWS que usam o .NET. Ele inclui modelos úteis e o AWS Explorer para implantar aplicativos e gerenciar serviços. Para obter um ponto de vista do desenvolvedor do AWS, consulte o Guia da AWS para desenvolvedores do .NET.

Detectando o idioma dominante

Para determinar o idioma dominante usado no texto, use a DetectDominantLanguageoperação. Para detectar o idioma dominante em até 25 documentos em um lote, use a BatchDetectDominantLanguageoperação. Para ter mais informações, consulte APIs em lote em tempo real.

Usar a AWS Command Line Interface

O exemplo a seguir demonstra como usar a operação DetectDominantLanguage com o AWS CLI.

O exemplo é formatado para Unix, Linux e macOS. Para Windows, substitua o caractere de continuação Unix de barra invertida (\) no final de cada linha por um circunflexo (^).

aws comprehend detect-dominant-language \ --region region \ --text "It is raining today in Seattle."

O Amazon Comprehend responde com o seguinte:

{ "Languages": [ { "LanguageCode": "en", "Score": 0.9793661236763 } ] }

Usando o AWS SDK for Java, o SDK para Python ou o AWS SDK for .NET

Para exemplos de SDK sobre como determinar o idioma dominante, consulte Use DetectDominantLanguage com um AWS SDK ou CLI.

Detectando entidades nomeadas

Para determinar as entidades nomeadas em um documento, use a DetectEntitiesoperação. Para detectar entidades em até 25 documentos em um lote, use a BatchDetectEntitiesoperação. Para ter mais informações, consulte APIs em lote em tempo real.

Usar a AWS Command Line Interface

O exemplo a seguir demonstra como usar a operação DetectEntities com o AWS CLI. É necessário especificar o idioma e o texto de entrada.

O exemplo é formatado para Unix, Linux e macOS. Para Windows, substitua o caractere de continuação Unix de barra invertida (\) no final de cada linha por um circunflexo (^).

aws comprehend detect-entities \ --region region \ --language-code "en" \ --text "It is raining today in Seattle."

O Amazon Comprehend responde com o seguinte:

{ "Entities": [ { "Text": "today", "Score": 0.97, "Type": "DATE", "BeginOffset": 14, "EndOffset": 19 }, { "Text": "Seattle", "Score": 0.95, "Type": "LOCATION", "BeginOffset": 23, "EndOffset": 30 } ], "LanguageCode": "en" }

Usando o AWS SDK for Java, o SDK para Python ou o AWS SDK for .NET

Para exemplos de SDK sobre como determinar o idioma dominante, consulte Use DetectEntities com um AWS SDK ou CLI.

Detectando frases-chave

Para determinar as frases nominais principais usadas no texto, use a DetectKeyPhrasesoperação. Para detectar as principais frases nominais em até 25 documentos em um lote, use a BatchDetectKeyPhrasesoperação. Para ter mais informações, consulte APIs em lote em tempo real.

Usar a AWS Command Line Interface

O exemplo a seguir demonstra como usar a operação DetectKeyPhrases com o AWS CLI. É necessário especificar o idioma e o texto de entrada.

O exemplo é formatado para Unix, Linux e macOS. Para Windows, substitua o caractere de continuação Unix de barra invertida (\) no final de cada linha por um circunflexo (^).

aws comprehend detect-key-phrases \ --region region \ --language-code "en" \ --text "It is raining today in Seattle."

O Amazon Comprehend responde com o seguinte:

{ "LanguageCode": "en", "KeyPhrases": [ { "Text": "today", "Score": 0.89, "BeginOffset": 14, "EndOffset": 19 }, { "Text": "Seattle", "Score": 0.91, "BeginOffset": 23, "EndOffset": 30 } ] }

Usando o AWS SDK for Java, o SDK para Python ou o AWS SDK for .NET

Para exemplos de SDKs que detectam frases-chave, consulte Use DetectKeyPhrases com um AWS SDK ou CLI.

Determinando o sentimento

O Amazon Comprehend fornece as seguintes operações de API para analisar sentimentos:

Como usar o AWS Command Line Interface

O exemplo a seguir demonstra como usar a operação DetectSentiment com o AWS CLI. Este exemplo especifica o idioma do texto de entrada.

O exemplo é formatado para Unix, Linux e macOS. Para Windows, substitua o caractere de continuação Unix de barra invertida (\) no final de cada linha por um circunflexo (^).

aws comprehend detect-sentiment \ --region region \ --language-code "en" \ --text "It is raining today in Seattle."

O Amazon Comprehend responde com o seguinte:

{ "SentimentScore": { "Mixed": 0.014585512690246105, "Positive": 0.31592071056365967, "Neutral": 0.5985543131828308, "Negative": 0.07093945890665054 }, "Sentiment": "NEUTRAL", "LanguageCode": "en" }

Usando o AWS SDK for Java, o SDK para Python ou o AWS SDK for .NET

Para exemplos de SDKs que determinam o sentimento do texto de entrada, consulte Use DetectSentiment com um AWS SDK ou CLI.

Análise em tempo real de um sentimento direcionado

O Amazon Comprehend fornece as seguintes operações de API para análise de sentimentos direcionados em tempo real:

Se o texto que você está analisando não incluir nenhum sentimento direcionado Tipos de entidade, a API retornará uma matriz de entidades vazia.

Como usar o AWS Command Line Interface

O exemplo a seguir demonstra como usar a operação DetectTargetedSentiment com o AWS CLI. Este exemplo especifica o idioma do texto de entrada.

O exemplo é formatado para Unix, Linux e macOS. Para Windows, substitua o caractere de continuação Unix de barra invertida (\) no final de cada linha por um circunflexo (^).

aws comprehend detect-targeted-sentiment \ --region region \ --language-code "en" \ --text "The burger was cooked perfectly but it was cold. The service was OK."

O Amazon Comprehend responde com o seguinte:

{ "Entities": [ { "DescriptiveMentionIndex": [ 0 ], "Mentions": [ { "BeginOffset": 4, "EndOffset": 10, "Score": 1, "GroupScore": 1, "Text": "burger", "Type": "OTHER", "MentionSentiment": { "Sentiment": "POSITIVE", "SentimentScore": { "Mixed": 0.001515, "Negative": 0.000822, "Neutral": 0.000243, "Positive": 0.99742 } } }, { "BeginOffset": 36, "EndOffset": 38, "Score": 0.999843, "GroupScore": 0.999661, "Text": "it", "Type": "OTHER", "MentionSentiment": { "Sentiment": "NEGATIVE", "SentimentScore": { "Mixed": 0, "Negative": 0.999996, "Neutral": 0.000004, "Positive": 0 } } } ] }, { "DescriptiveMentionIndex": [ 0 ], "Mentions": [ { "BeginOffset": 53, "EndOffset": 60, "Score": 1, "GroupScore": 1, "Text": "service", "Type": "ATTRIBUTE", "MentionSentiment": { "Sentiment": "NEUTRAL", "SentimentScore": { "Mixed": 0.000033, "Negative": 0.000089, "Neutral": 0.993325, "Positive": 0.006553 } } } ] } ] }

Detectando a sintaxe

Para analisar o texto para extrair as palavras individuais e determinar as partes do discurso para cada palavra, use a DetectSyntaxoperação. Para analisar a sintaxe de até 25 documentos em um lote, use a BatchDetectSyntaxoperação. Para ter mais informações, consulte APIs em lote em tempo real.

Usando a AWS Command Line Interface:

O exemplo a seguir demonstra como usar a operação DetectSyntax com o AWS CLI. Este exemplo especifica o idioma do texto de entrada.

O exemplo é formatado para Unix, Linux e macOS. Para Windows, substitua o caractere de continuação Unix de barra invertida (\) no final de cada linha por um circunflexo (^).

aws comprehend detect-syntax \ --region region \ --language-code "en" \ --text "It is raining today in Seattle."

O Amazon Comprehend responde com o seguinte:

{ "SyntaxTokens": [ { "Text": "It", "EndOffset": 2, "BeginOffset": 0, "PartOfSpeech": { "Tag": "PRON", "Score": 0.8389829397201538 }, "TokenId": 1 }, { "Text": "is", "EndOffset": 5, "BeginOffset": 3, "PartOfSpeech": { "Tag": "AUX", "Score": 0.9189288020133972 }, "TokenId": 2 }, { "Text": "raining", "EndOffset": 13, "BeginOffset": 6, "PartOfSpeech": { "Tag": "VERB", "Score": 0.9977611303329468 }, "TokenId": 3 }, { "Text": "today", "EndOffset": 19, "BeginOffset": 14, "PartOfSpeech": { "Tag": "NOUN", "Score": 0.9993606209754944 }, "TokenId": 4 }, { "Text": "in", "EndOffset": 22, "BeginOffset": 20, "PartOfSpeech": { "Tag": "ADP", "Score": 0.9999061822891235 }, "TokenId": 5 }, { "Text": "Seattle", "EndOffset": 30, "BeginOffset": 23, "PartOfSpeech": { "Tag": "PROPN", "Score": 0.9940338730812073 }, "TokenId": 6 }, { "Text": ".", "EndOffset": 31, "BeginOffset": 30, "PartOfSpeech": { "Tag": "PUNCT", "Score": 0.9999997615814209 }, "TokenId": 7 } ] }

Usando o AWS SDK for Java, o SDK para Python ou o AWS SDK for .NET

Para exemplos de SDKs que detectam a sintaxe do texto de entrada, consulte Use DetectSyntax com um AWS SDK ou CLI.

APIs em lote em tempo real

Para enviar lotes de até 25 documentos, você pode usar as operações em lote em tempo real do Amazon Comprehend. Chamar uma operação em lote é idêntico a chamar APIs de um único documento para documento na solicitação. O uso das APIs em lote pode resultar em melhor desempenho para suas aplicações. Para ter mais informações, consulte Processamento síncrono de vários documentos.

Processamento em lote com o AWS CLI

Esses exemplos mostram como usar operações de API em lote usando o AWS Command Line Interface. Todas as operações, exceto BatchDetectDominantLanguage, usam o seguinte arquivo JSON chamado process.json como entrada. Para essa operação, a entidade LanguageCode não está incluída.

O terceiro documento no arquivo JSON ("$$$$$$$$") causará um erro durante o processamento em lote. Ele é incluído para que as operações incluam um BatchItemErrorna resposta.

{ "LanguageCode": "en", "TextList": [ "I have been living in Seattle for almost 4 years", "It is raining today in Seattle", "$$$$$$$$" ] }

O exemplo está formatado para Unix, Linux e macOS. Para Windows, substitua o caractere de continuação Unix de barra invertida (\) no final de cada linha por um circunflexo (^).

Detecte o idioma dominante usando um batch (AWS CLI)

A BatchDetectDominantLanguageoperação determina o idioma dominante de cada documento em um lote. Para obter uma lista dos idiomas que o Amazon Comprehend pode detectar, consulte Idioma dominante. O seguinte comando AWS CLI chama a operação BatchDetectDominantLanguage.

aws comprehend batch-detect-dominant-language \ --endpoint endpoint \ --region region \ --cli-input-json file://path to input file/process.json

A seguir está a resposta da operação BatchDetectDominantLanguage:

{ "ResultList": [ { "Index": 0, "Languages":[ { "LanguageCode":"en", "Score": 0.99 } ] }, { "Index": 1 "Languages":[ { "LanguageCode":"en", "Score": 0.82 } ] } ], "ErrorList": [ { "Index": 2, "ErrorCode": "InternalServerException", "ErrorMessage": "Unexpected Server Error. Please try again." } ] }

Detecte entidades usando um batch (AWS CLI)

Use a BatchDetectEntitiesoperação para encontrar as entidades presentes em um lote de documentos. Para obter mais informações sobre entidades, consulte Entidades. O seguinte comando AWS CLI chama a operação BatchDetectEntities.

aws comprehend batch-detect-entities \ --endpoint endpoint \ --region region \ --cli-input-json file://path to input file/process.json

Detecte frases-chave usando um batch (AWS CLI)

A BatchDetectKeyPhrasesoperação retorna as frases nominais principais em um lote de documentos. O seguinte comando AWS CLI chama a operação BatchDetectKeyNounPhrases.

aws comprehend batch-detect-key-phrases --endpoint endpoint --region region --cli-input-json file://path to input file/process.json

Detecte sentimentos usando um batch (AWS CLI)

Detecte o sentimento geral de um lote de documentos usando a BatchDetectSentimentoperação. O seguinte comando AWS CLI chama a operação BatchDetectSentiment.

aws comprehend batch-detect-sentiment \ --endpoint endpoint \ --region region \ --cli-input-json file://path to input file/process.json

Processamento em lote com o AWS SDK for .NET

O exemplo de programa a seguir mostra como usar a BatchDetectEntitiesoperação com AWS SDK for .NET o. A resposta do servidor contém um BatchDetectEntitiesItemResultobjeto para cada documento que foi processado com sucesso. Se houver um erro no processamento de um documento, haverá um registro na lista de erros na resposta. O exemplo pega cada um dos documentos com um erro e os reenvia.

O exemplo do .NET nesta seção usam o AWS SDK for .NET. É possível usar o AWS Toolkit for Visual Studio para desenvolver aplicativos da AWS que usam o .NET. Ele inclui modelos úteis e o AWS Explorer para implantar aplicativos e gerenciar serviços. Para obter um ponto de vista do desenvolvedor do .NET da AWS, consulte o Guia da AWS para desenvolvedores do .NET.

using System; using System.Collections.Generic; using Amazon.Comprehend; using Amazon.Comprehend.Model; namespace Comprehend { class Program { // Helper method for printing properties static private void PrintEntity(Entity entity) { Console.WriteLine(" Text: {0}, Type: {1}, Score: {2}, BeginOffset: {3} EndOffset: {4}", entity.Text, entity.Type, entity.Score, entity.BeginOffset, entity.EndOffset); } static void Main(string[] args) { AmazonComprehendClient comprehendClient = new AmazonComprehendClient(Amazon.RegionEndpoint.USWest2); List<String> textList = new List<String>() { { "I love Seattle" }, { "Today is Sunday" }, { "Tomorrow is Monday" }, { "I love Seattle" } }; // Call detectEntities API Console.WriteLine("Calling BatchDetectEntities"); BatchDetectEntitiesRequest batchDetectEntitiesRequest = new BatchDetectEntitiesRequest() { TextList = textList, LanguageCode = "en" }; BatchDetectEntitiesResponse batchDetectEntitiesResponse = comprehendClient.BatchDetectEntities(batchDetectEntitiesRequest); foreach (BatchDetectEntitiesItemResult item in batchDetectEntitiesResponse.ResultList) { Console.WriteLine("Entities in {0}:", textList[item.Index]); foreach (Entity entity in item.Entities) PrintEntity(entity); } // check if we need to retry failed requests if (batchDetectEntitiesResponse.ErrorList.Count != 0) { Console.WriteLine("Retrying Failed Requests"); List<String> textToRetry = new List<String>(); foreach(BatchItemError errorItem in batchDetectEntitiesResponse.ErrorList) textToRetry.Add(textList[errorItem.Index]); batchDetectEntitiesRequest = new BatchDetectEntitiesRequest() { TextList = textToRetry, LanguageCode = "en" }; batchDetectEntitiesResponse = comprehendClient.BatchDetectEntities(batchDetectEntitiesRequest); foreach(BatchDetectEntitiesItemResult item in batchDetectEntitiesResponse.ResultList) { Console.WriteLine("Entities in {0}:", textList[item.Index]); foreach (Entity entity in item.Entities) PrintEntity(entity); } } Console.WriteLine("End of DetectEntities"); } } }