Público-alvo
Este tutorial foi criado para permitir que você comece a explorar e desenvolver aplicativos com a API Google Cloud Natural Language. Ele se destina a pessoas familiarizadas com a programação básica, ou seja, é possível acompanhá-lo mesmo se não tiver muito conhecimento. Após concluir este tutorial, você estará apto a usar a Documentação de referência para criar seus aplicativos básicos.
Neste tutorial, vamos trabalhar com um aplicativo da API Natural Language usando o código Python. O objetivo aqui não é explicar as bibliotecas de cliente Python, mas explicar como fazer chamadas para a API Natural Language. Aplicativos em Java e Node.js são basicamente similares. Para outras linguagens, consulte as Amostras da Natural Language API, inclusive a deste tutorial.
Pré-requisitos
Os pré-requisitos para este tutorial são:
- Ter uma conta do Google Cloud. Se você começou a usar a plataforma agora, crie uma conta para avaliar o desempenho de nossos produtos em cenários reais. Clientes novos também recebem US$ 300 em créditos para executar, testar e implantar cargas de trabalho.
- Configurar um projeto da API Cloud Natural Language no Console do Google Cloud.
- Configurar o ambiente com o Application Default Credentials.
- conhecimentos básicos sobre programação em Python;
- Configurar o ambiente de desenvolvimento do Python. É recomendável ter a versão mais recente do Python,
pip
evirtualenv
instalados no seu sistema. Para ver instruções, consulte o Guia de configuração do ambiente para desenvolvedores do Python no Google Cloud Platform. - Instalar a biblioteca de cliente do Google Cloud para Python.
Como analisar sentimentos no documento
Este tutorial orienta você em um aplicativo básico da API Natural Language, usando uma solicitação analyzeSentiment
, que realiza a análise de sentimento no texto.
A análise de sentimento tenta determinar a atitude geral (positiva ou negativa) e é representada por valores numéricos score
e magnitude
.
(Para mais informações sobre esses conceitos, consulte Princípios básicos da Natural Language).
Primeiro, mostraremos todo o código. Retiramos grande parte dos comentários desse código para você ver como ele é curto. Forneceremos mais comentários à medida que analisarmos o código.
Esse aplicativo simples:
- Importa as bibliotecas necessárias para executar o aplicativo
- Transmite um arquivo de texto para a função
main()
- Lê o arquivo de texto e criar uma solicitação para o serviço
- analisar a resposta do serviço e exibi-la para o usuário
A seguir, veja essas etapas com mais detalhes.
Como importar bibliotecas
Importamos argparse
, uma biblioteca padrão, para permitir que o aplicativo aceite nomes de arquivos de entrada como argumentos.
Para usar a API Cloud Natural Language, também importaremos o módulo language
da biblioteca google-cloud-language
. O módulo types
contém classes que são necessárias para criar solicitações.
Como executar o aplicativo
Aqui, apenas analisamos o argumento transmitido como nome de arquivo de texto e enviamos esse nome para a função analyze()
.
Como autenticar com a API
Antes de iniciar a comunicação com o serviço da API Natural Language, é preciso autenticar o serviço usando as credenciais recebidas. A maneira mais simples de receber credenciais em um aplicativo é usar o Application Default Credentials (ADC). No ADC, as credenciais são adquiridas a partir do arquivo de ambiente GOOGLE_APPLICATION_CREDENTIALS
por padrão. Ele precisa apontar para o arquivo da chave JSON da sua conta de serviço. É necessário configurar essa conta de serviço e o ambiente para usar o ADC no Guia de início rápido. Consulte
Como configurar uma conta de serviço
para mais informações.
A biblioteca de cliente do Google Cloud para Python usa automaticamente o Application Default Credentials.
Como fazer solicitações
Agora que o nosso serviço da API Natural Language está pronto, podemos acessar o serviço chamando o método analyze_sentiment
da instância LanguageServiceClient
.
A biblioteca de cliente encapsula os detalhes para solicitações e respostas para a API. Consulte a Referência da Natural Language API para informações completas sobre a estrutura específica de tal solicitação.
Esse snippet de código executa as seguintes tarefas:
- Cria uma instância
LanguageServiceClient
como o cliente - Lê o nome de arquivo que contém os dados do texto em uma variável
- Cria uma instância de um objeto
Document
com o conteúdo do arquivo - Chama o método
analyze_sentiment
do cliente
Como analisar a resposta
Analisamos a resposta para extrair os valores score
de sentimento de cada frase e os valores gerais score
e magnitude
da análise completa e exibi-los ao usuário.
Executar a amostra
Para executar a nossa amostra, um conjunto de resenhas fictícias do filme "Blade Runner" será testado.
Faça o download dos exemplos de código Google Cloud Storage:
gcloud storage cp gs://cloud-samples-tests/natural-language/sentiment-samples.tgz .
Para instalar a versão mais recente da CLI do Google Cloud, consulte a documentação da CLI do gcloud.
Descompacte as amostras. Uma pasta reviews será criada:
gunzip sentiment-samples.tgz tar -xvf sentiment-samples.tar
Faça a análise de sentimentos em um dos arquivos especificados:
python sentiment_analysis.py reviews/bladerunner-pos.txt Sentence 0 has a sentiment score of 0.8 Sentence 1 has a sentiment score of 0.9 Sentence 2 has a sentiment score of 0.8 Sentence 3 has a sentiment score of 0.2 Sentence 4 has a sentiment score of 0.1 Sentence 5 has a sentiment score of 0.4 Sentence 6 has a sentiment score of 0.3 Sentence 7 has a sentiment score of 0.4 Sentence 8 has a sentiment score of 0.2 Sentence 9 has a sentiment score of 0.9 Overall Sentiment: score of 0.5 with magnitude of 5.5
O exemplo acima indica uma análise relativamente positiva (com pontuação de 0.5
) e relativamente emocional (com magnitude de 5.5
).
A análise dos outros exemplos produzirá valores semelhantes a estes:
python sentiment_analysis.py reviews/bladerunner-neg.txt ... Overall Sentiment: score of -0.6 with magnitude of 3.3 python sentiment_analysis.py reviews/bladerunner-mixed.txt ... Overall Sentiment: score of 0 with magnitude of 4.7 python sentiment_analysis.py reviews/bladerunner-neutral.txt ... Overall Sentiment: score of -0.1 with magnitude of 1.8
Observe que as magnitudes são todas semelhantes, o que indica um grau relativo idêntico de sentimento emocionalmente significativo. A exceção é o caso "neutro", que indica uma resenha com sentimento não muito emocional, seja positivo ou negativo. Para mais informações sobre pontuações e magnitude de sentimentos e como interpretar esses valores, consulte Como interpretar valores da análise de sentimentos.
Explore a análise de sentimentos com mais dados usando o conjunto de dados de análises de filmes do IMDB fornecido pela Stanford. Para recuperar essas resenhas:
- faça o download do conjunto de dados de resenhas de filmes.
- descompacte o arquivo no diretório de trabalho. As análises de filmes são divididas em diretórios
pos
eneg
dentro dos diretórios de dadostrain
etest
, com cada arquivo de texto contendo uma análise de filme. - Execute a ferramenta
sentiment_analysis.py
em qualquer um dos arquivos de texto de análise de filme.
Parabéns! Você concluiu as primeiras tarefas de inferência com a API Google Cloud Natural Language.