Público-alvo
Este tutorial foi concebido para lhe permitir começar rapidamente a explorar e desenvolver aplicações com a Google Cloud Natural Language API. Foi concebido para pessoas com conhecimentos básicos de programação, embora, mesmo sem muitos conhecimentos de programação, deva conseguir acompanhar. Depois de seguir este tutorial, deve conseguir usar a documentação de referência para criar as suas próprias aplicações básicas.
Este tutorial explica passo a passo uma aplicação da API Natural Language com código Python. O objetivo aqui não é explicar as bibliotecas cliente Python, mas sim explicar como fazer chamadas para a API Natural Language. As aplicações em Java e Node.js são essencialmente semelhantes. Consulte os exemplos da API Natural Language para ver exemplos noutros idiomas (incluindo este exemplo no tutorial).
Pré-requisitos
Este tutorial tem vários pré-requisitos:
- Tem uma conta Google Cloud . Se está a usar a plataforma pela primeira vez, crie uma conta para avaliar o desempenho dos nossos produtos em cenários reais. Os novos clientes também recebem 300 USD em créditos gratuitos para executar, testar e implementar cargas de trabalho.
- Configurou um projeto da API Cloud Natural Language na Google Cloud consola.
- Configurou o seu ambiente com as Credenciais padrão da aplicação.
- Tem conhecimentos básicos de programação em Python.
- Configurou o seu ambiente de programação Python. Recomendamos que tenha a versão mais recente do Python, do
pip
e dovirtualenv
instalada no seu sistema. Para ver instruções, consulte o guia de configuração do ambiente de desenvolvimento Python para a Google Cloud Platform. - Instalou a biblioteca cliente do Google Cloud para Python
Analisar a sensação geral do documento
Este tutorial explica-lhe uma aplicação básica da API Natural Language, através de um pedido analyzeSentiment
, que realiza a análise de sentimentos no texto.
A análise de sentimentos tenta determinar a atitude geral (positiva ou negativa) e é representada por valores numéricos score
e magnitude
.
(Para mais informações sobre estes conceitos, consulte o artigo
Noções básicas de linguagem natural.)
Vamos mostrar primeiro o código completo. (Tenha em atenção que removemos a maioria dos comentários deste código para lhe mostrar como é breve. Vamos fornecer mais comentários à medida que analisamos o código.)
Esta aplicação simples realiza as seguintes tarefas:
- Importa as bibliotecas necessárias para executar a aplicação
- Recebe um ficheiro de texto e transmite-o à função
main()
- Lê o ficheiro de texto e faz um pedido ao serviço
- Analisa a resposta do serviço e apresenta-a ao utilizador
Vamos rever estes passos mais detalhadamente abaixo.
Importar bibliotecas
Importamos argparse
, uma biblioteca padrão, para permitir que a aplicação aceite
nomes de ficheiros de entrada como argumentos.
Para usar a Cloud Natural Language API, também vamos querer importar o módulo language
da biblioteca google-cloud-language
. O módulo types
contém classes necessárias para criar pedidos.
Executar a sua aplicação
Aqui, analisamos simplesmente o argumento transmitido para o nome do ficheiro de texto e transmitimo-lo à função analyze()
.
Autenticação na API
Antes de comunicar com o serviço da API Natural Language, tem de autenticar o seu serviço através de credenciais adquiridas anteriormente. Numa aplicação, a forma mais simples de obter credenciais é usar as Credenciais padrão da aplicação (ADC). Por predefinição, o ADC tenta obter credenciais do ficheiro de ambiente GOOGLE_APPLICATION_CREDENTIALS
, que deve ser definido para apontar para o ficheiro de chave JSON da sua conta de serviço. (Deve ter configurado a sua conta de serviço e ambiente para usar o ADC no guia de início rápido. Consulte o artigo
Configurar uma conta de serviço
para mais informações.)
A biblioteca cliente Google Cloud para Python usa automaticamente as credenciais predefinidas da aplicação.
Fazer o pedido
Agora que o nosso serviço da API Natural Language está pronto, podemos aceder ao serviço chamando o método analyze_sentiment
da instância LanguageServiceClient
.
A biblioteca de cliente encapsula os detalhes dos pedidos e das respostas à API. Consulte a Referência da API Natural Language para ver informações completas sobre a estrutura específica de tal pedido.
Este fragmento do código realiza as seguintes tarefas:
- Instancia uma instância
LanguageServiceClient
como cliente. - Lê o nome do ficheiro que contém os dados de texto numa variável.
- Instancia um objeto
Document
com o conteúdo do ficheiro. - Chama o método
analyze_sentiment
do cliente.
A analisar a resposta
Analisamos a resposta para extrair os valores de score
para cada frase e os valores gerais de score
e magnitude
para toda a crítica, e apresentamos esses valores ao utilizador.
Execute a amostra
Para executar a nossa amostra, vamos testá-la num conjunto de críticas de filmes (falsas) para o filme "Blade Runner".
Transfira os exemplos do 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 gcloud.
Descompacte essas amostras, o que cria uma pasta "reviews":
gunzip sentiment-samples.tgz tar -xvf sentiment-samples.tar
Execute a nossa análise de sentimentos num dos ficheiros 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 crítica relativamente positiva (classificação de 0.5
) e relativamente emocional (magnitude de 5.5
).
A execução da análise nos outros exemplos deve produzir valores semelhantes aos mostrados abaixo:
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
Tenha em atenção que as magnitudes são todas semelhantes (o que indica uma quantidade relativamente igual de sentimento emocional significativo), exceto no caso de "neutro", que indica uma crítica com pouco sentimento emocional, seja positivo ou negativo. (Para mais informações sobre as classificações de sentimento e a magnitude, e como interpretar estes valores, consulte o artigo Interpretar os valores da análise de sentimentos.)
Se quiser explorar a análise de sentimentos com mais dados, Stanford disponibiliza um conjunto de dados de críticas de filmes do IMDB. Para aceder a estas críticas de filmes:
- Transfira o conjunto de dados de críticas de filmes grandes.
- Descomprima o ficheiro no diretório de trabalho. As críticas de filmes estão divididas
em diretórios
pos
eneg
nos diretórios de dadostrain
etest
, com cada ficheiro de texto a conter uma crítica de filme. - Execute a ferramenta
sentiment_analysis.py
em qualquer um dos ficheiros de texto de críticas de filmes.
Parabéns! Realizou as suas primeiras tarefas de inferência com a API Google Cloud Natural Language!