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:
- Você tem 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,
pipevirtualenvinstalados 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. Para mais informações, consulte Como configurar uma conta de serviço.
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
LanguageServiceClientcomo 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
Documentcom o conteúdo do arquivo - Chama o método
analyze_sentimentdo 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 Google Cloud CLI, consulte a documentação da gcloud CLI.
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
posenegdentro dos diretórios de dadostrainetest, com cada arquivo de texto contendo uma análise de filme. - Execute a ferramenta
sentiment_analysis.pyem 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.