arrow_back

Análise de entidades e sentimento com a API Natural Language

Teste e compartilhe seu conhecimento com nossa comunidade.
done
Tenha acesso a mais de 700 laboratórios, selos de habilidade e cursos

Análise de entidades e sentimento com a API Natural Language

Laboratório 45 minutos universal_currency_alt 5 créditos show_chart Intermediário
info Este laboratório pode incorporar ferramentas de IA para ajudar no seu aprendizado.
Teste e compartilhe seu conhecimento com nossa comunidade.
done
Tenha acesso a mais de 700 laboratórios, selos de habilidade e cursos

GSP038

Laboratórios autoguiados do Google Cloud

Visão geral

Com a API Cloud Natural Language, é possível extrair entidades do texto, fazer análises sintáticas e de sentimento e classificar o texto em categorias.

Neste laboratório, você vai aprender a usar a API Natural Language para analisar entidades, sentimento e sintaxe.

Objetivos

Neste laboratório, você vai aprender a:

  • Criar uma solicitação da API Natural Language e chamar a API com curl
  • Extrair entidades e fazer uma análise de sentimento no texto com a API Natural Language
  • Realizar uma análise linguística no texto com a API Natural Language
  • Criar uma solicitação da API Natural Language em outro idioma

Configuração e requisitos

Antes de clicar no botão Start Lab

Leia estas instruções. Os laboratórios são cronometrados e não podem ser pausados. O timer é iniciado quando você clica em Começar o laboratório e mostra por quanto tempo os recursos do Google Cloud vão ficar disponíveis.

Este laboratório prático permite que você realize as atividades em um ambiente real de nuvem, não em uma simulação ou demonstração. Você vai receber novas credenciais temporárias para fazer login e acessar o Google Cloud durante o laboratório.

Confira os requisitos para concluir o laboratório:

  • Acesso a um navegador de Internet padrão (recomendamos o Chrome).
Observação: para executar este laboratório, use o modo de navegação anônima ou uma janela anônima do navegador. Isso evita conflitos entre sua conta pessoal e a conta de estudante, o que poderia causar cobranças extras na sua conta pessoal.
  • Tempo para concluir o laboratório---não se esqueça: depois de começar, não será possível pausar o laboratório.
Observação: não use seu projeto ou conta do Google Cloud neste laboratório para evitar cobranças extras na sua conta.

Como iniciar seu laboratório e fazer login no console do Google Cloud

  1. Clique no botão Começar o laboratório. Se for preciso pagar, você verá um pop-up para selecionar a forma de pagamento. No painel Detalhes do laboratório à esquerda, você vai encontrar o seguinte:

    • O botão Abrir console do Google Cloud
    • O tempo restante
    • As credenciais temporárias que você vai usar neste laboratório
    • Outras informações, se forem necessárias
  2. Se você estiver usando o navegador Chrome, clique em Abrir console do Google Cloud ou clique com o botão direito do mouse e selecione Abrir link em uma janela anônima.

    O laboratório ativa os recursos e depois abre a página Fazer login em outra guia.

    Dica: coloque as guias em janelas separadas lado a lado.

    Observação: se aparecer a caixa de diálogo Escolher uma conta, clique em Usar outra conta.
  3. Se necessário, copie o Nome de usuário abaixo e cole na caixa de diálogo Fazer login.

    {{{user_0.username | "Nome de usuário"}}}

    Você também encontra o Nome de usuário no painel Detalhes do laboratório.

  4. Clique em Seguinte.

  5. Copie a Senha abaixo e cole na caixa de diálogo de boas-vindas.

    {{{user_0.password | "Senha"}}}

    Você também encontra a Senha no painel Detalhes do laboratório.

  6. Clique em Seguinte.

    Importante: você precisa usar as credenciais fornecidas no laboratório, e não as da sua conta do Google Cloud. Observação: se você usar sua própria conta do Google Cloud neste laboratório, é possível que receba cobranças adicionais.
  7. Acesse as próximas páginas:

    • Aceite os Termos e Condições.
    • Não adicione opções de recuperação nem autenticação de dois fatores (porque essa é uma conta temporária).
    • Não se inscreva em testes gratuitos.

Depois de alguns instantes, o console do Google Cloud será aberto nesta guia.

Observação: clique em Menu de navegação no canto superior esquerdo para acessar uma lista de produtos e serviços do Google Cloud. Ícone do menu de navegação

Tarefa 1: crie uma chave de API

Como você usa curl para enviar solicitações para a API Natural Language, é preciso uma chave de API para transmitir o URL da solicitação.

  1. Para criar uma chave de API, no console do Cloud, selecione Menu de navegação > APIs e serviços > Credenciais.

  2. Clique em Criar credenciais e selecione Chave de API.

  3. Copie a chave de API criada e clique em Fechar.

Clique em Verificar meu progresso para conferir o objetivo.

Crie uma chave de API

Para realizar as próximas etapas, conecte-se à instância provisionada para você por SSH.

  1. Clique em Menu de navegação > Compute Engine. Aqui vai aparecer a instância do Linux provisionada, linux-instance, na lista de instâncias de VM.

  2. Clique no botão SSH. Você verá um shell interativo.

  3. Na linha de comando, digite as seguintes informações e substitua <YOUR_API_KEY> pela chave que você copiou:

export API_KEY=<YOUR_API_KEY>

Tarefa 2: envie uma solicitação de análise de entidades

O primeiro método da API Natural Language a ser usado é o analyzeEntities. Com esse método, a API poderá extrair entidades (como pessoas, lugares e eventos) do texto. Para testar a análise de entidades da API, use a seguinte frase:

Joanne Rowling, who writes under the pen names J. K. Rowling and Robert Galbraith, is a British novelist and screenwriter who wrote the Harry Potter fantasy series.

Você cria sua solicitação à API Natural Language no arquivo request.json.

  1. Use o nano (um editor de código) para criar o arquivo request.json:
nano request.json
  1. Digite ou cole o seguinte código no request.json:
{ "document":{ "type":"PLAIN_TEXT", "content":"Joanne Rowling, who writes under the pen names J. K. Rowling and Robert Galbraith, is a British novelist and screenwriter who wrote the Harry Potter fantasy series." }, "encodingType":"UTF8" }
  1. Pressione CTRL+X para sair do nano, Y para salvar o arquivo e ENTER para confirmar.

Na solicitação, você está dando informações à API Natural Language sobre o texto enviado. Os valores de tipo com suporte são PLAIN_TEXT ou HTML. No conteúdo, você transmite o texto que será enviado à API Natural Language para análise.

A API Natural Language também aceita o envio de arquivos armazenados no Cloud Storage para processamento de texto. Para enviar um arquivo do Cloud Storage, é necessário substituir content por gcsContentUri e atribuir a ele o valor do URI do arquivo de texto no Cloud Storage.

encodingType informa à API qual tipo de codificação usar no processamento do texto. A API vai usar essa informação para calcular onde determinadas entidades aparecem no texto.

Clique em Verificar meu progresso para ver o objetivo.

Envie uma solicitação de análise de entidades

Tarefa 3: chame a API Natural Language

  1. Agora é possível transmitir o corpo da solicitação para a API Natural Language, junto com a variável de ambiente da chave de API que você salvou antes, usando o comando curl abaixo (em uma única linha):
curl "https://language.googleapis.com/v1/documents:analyzeEntities?key=${API_KEY}" \ -s -X POST -H "Content-Type: application/json" --data-binary @request.json > result.json
  1. Para verificar a resposta, execute:
cat result.json

O início da sua resposta será semelhante a:

"content": "Joanne Rowling", "beginOffset": 0 }, "type": "PROPER" }, { "text": { "content": "Rowling", "beginOffset": 53 }, "type": "PROPER" }, { "text": { "content": "novelist", "beginOffset": 96 }, "type": "COMMON" }, { "text": { "content": "Robert Galbraith", "beginOffset": 65 }, "type": "PROPER" } ] }, ... ] }

Para cada entidade na resposta, você recebe o respectivo campo type, o URL da Wikipédia associado (se houver), salience e os índices de onde essa entidade apareceu no texto. A saliência é um número no intervalo [0,1] que se refere à centralidade da entidade no texto como um todo.

A API Natural Language também reconhece a mesma entidade mencionada de maneiras diferentes. Confira a lista de mentions na resposta: a API consegue identificar que "Joanne Rowling", "Rowling", "novelist" e "Robert Galbraith" apontam para a mesma coisa.

Clique em Verificar meu progresso para ver o objetivo.

Verifique a resposta da análise de entidades

Tarefa 4: análise de sentimento com a API Natural Language

Além de extrair entidades, é possível executar análise de sentimento em um bloco de texto com a API Natural Language. Essa solicitação JSON incluirá os mesmos parâmetros da solicitação acima, mas você precisará alterar o texto para incluir algo com um sentimento mais intenso desta vez.

  1. Use o nano para substituir o código em request.json pelo seguinte e, se quiser, substitua o content abaixo por um texto próprio:
{ "document":{ "type":"PLAIN_TEXT", "content":"Harry Potter is the best book. I think everyone should read it." }, "encodingType": "UTF8" }
  1. Pressione CTRL+X para sair do nano, Y para salvar o arquivo e ENTER para confirmar.

  2. Em seguida, você vai enviar a solicitação ao endpoint analyzeSentiment da API:

curl "https://language.googleapis.com/v1/documents:analyzeSentiment?key=${API_KEY}" \ -s -X POST -H "Content-Type: application/json" --data-binary @request.json

Sua resposta será semelhante a esta:

{ "documentSentiment": { "magnitude": 1.9, "score": 0.9 }, "language": "en", "sentences": [ { "text": { "content": "Harry Potter is the best book.", "beginOffset": 0 }, "sentiment": { "magnitude": 0.9, "score": 0.9 } }, { "text": { "content": "I think everyone should read it.", "beginOffset": 31 }, "sentiment": { "magnitude": 0.9, "score": 0.9 } } ] } Observação: não se assuste se suas pontuações forem um pouco diferentes da saída do exemplo.

Chegamos a dois tipos de valores de sentimento: o do documento como um todo e o detalhado por frase. O método "sentiment" retorna dois valores:

  • score: um número entre -1,0 e 1,0 que indica o quanto a declaração é positiva ou negativa.
  • magnitude: um número que varia de 0 a infinito e representa o peso do sentimento expresso na declaração, sem importar se ele é positivo ou negativo.

Blocos mais longos de texto com declarações ponderadas têm valores de magnitude mais altos. A pontuação da primeira frase é positiva (0,7) e a da segunda é neutra (0,1).

Tarefa 5: como analisar o sentimento de uma entidade

Além de identificar detalhes de sentimento em todo o documento de texto, a API Natural Language também pode dividir o sentimento pelas entidades. Use esta frase como exemplo:

I liked the sushi but the service was terrible.

Nesse caso, calcular uma pontuação de sentimento para a frase inteira como você fez acima pode não ser tão útil. Se houvesse outras centenas de avaliações para o mesmo restaurante, seria interessante saber exatamente do que as pessoas gostaram ou não gostaram nas avaliações. Felizmente, a API Natural Language tem um método para extrair o sentimento de cada entidade contida no texto. Esse método é chamado de analyzeEntitySentiment. Vamos conferir como isso funciona.

  1. Use o nano para atualizar o request.json com a frase abaixo:
{ "document":{ "type":"PLAIN_TEXT", "content":"I liked the sushi but the service was terrible." }, "encodingType": "UTF8" }
  1. Pressione CTRL+X para sair do nano, Y para salvar o arquivo e ENTER para confirmar.

  2. Em seguida, chame o endpoint analyzeEntitySentiment com o seguinte comando curl:

curl "https://language.googleapis.com/v1/documents:analyzeEntitySentiment?key=${API_KEY}" \ -s -X POST -H "Content-Type: application/json" --data-binary @request.json

Na resposta, você extrai dois objetos de entidade: um para "sushi" e outro para "service". Esta é a resposta completa do JSON:

{ "entities": [ { "name": "sushi", "type": "CONSUMER_GOOD", "metadata": {}, "salience": 0.51064336, "mentions": [ { "text": { "content": "sushi", "beginOffset": 12 }, "type": "COMMON", "sentiment": { "magnitude": 0, "score": 0 } } ], "sentiment": { "magnitude": 0, "score": 0 } }, { "name": "service", "type": "OTHER", "metadata": {}, "salience": 0.48935664, "mentions": [ { "text": { "content": "service", "beginOffset": 26 }, "type": "COMMON", "sentiment": { "magnitude": 0.7, "score": -0.7 } } ], "sentiment": { "magnitude": 0.7, "score": -0.7 } } ], "language": "en" }

A pontuação retornada para "sushi" foi 0, ou seja, neutra, e a de "service", -0,7. Ótimo! Você também deve ter percebido que dois objetos de sentimento foram retornados para cada entidade. Se qualquer um desses termos fosse mencionado mais de uma vez, a API retornaria uma pontuação de sentimento e magnitude diferentes para cada menção, além de um sentimento agregado para a entidade.

Observação: não se assuste se suas pontuações forem um pouco diferentes da saída do exemplo.

Tarefa 6: como analisar a sintaxe e as classes gramaticais

Use a análise sintática, um dos outros métodos da API Natural Language, para conferir os detalhes linguísticos do texto. analyzeSyntax extrai informações linguísticas ao dividir o texto em uma série de frases e tokens (geralmente, limites de palavra) e apresentar uma análise mais detalhada desses tokens. A API informará a classe gramatical para cada palavra do texto (substantivo, verbo, adjetivo etc.) e como ela se relaciona com outras palavras da frase (se é o radical do verbo, um modificador de substantivo etc.).

Faça um teste com uma frase simples. Esta solicitação JSON será semelhante às anteriores e incluirá uma chave de atributos. Isso dirá para a API fazer as anotações de sintaxe.

  1. Use o nano para substituir o código no request.json pelo seguinte:
{ "document":{ "type":"PLAIN_TEXT", "content": "Joanne Rowling is a British novelist, screenwriter and film producer." }, "encodingType": "UTF8" }
  1. Pressione CTRL+X para sair do nano, Y para salvar o arquivo e ENTER para confirmar.

  2. Em seguida, chame o método analyzeSyntax da API:

curl "https://language.googleapis.com/v1/documents:analyzeSyntax?key=${API_KEY}" \ -s -X POST -H "Content-Type: application/json" --data-binary @request.json

A resposta vai retornar um objeto como o seguinte para cada token da frase:

{ "text": { "content": "is", "beginOffset": 15 }, "partOfSpeech": { "tag": "VERB", "aspect": "ASPECT_UNKNOWN", "case": "CASE_UNKNOWN", "form": "FORM_UNKNOWN", "gender": "GENDER_UNKNOWN", "mood": "INDICATIVE", "number": "SINGULAR", "person": "THIRD", "proper": "PROPER_UNKNOWN", "reciprocity": "RECIPROCITY_UNKNOWN", "tense": "PRESENT", "voice": "VOICE_UNKNOWN" }, "dependencyEdge": { "headTokenIndex": 2, "label": "ROOT" }, "lemma": "be" },

Analise a resposta:

  • partOfSpeech informa que "Joanne" é um substantivo.
  • dependencyEdge inclui dados que você pode usar para criar uma árvore de dependência sintática do texto. Basicamente, é um diagrama que mostra como as palavras de uma frase se relacionam umas com as outras. Uma árvore de dependência sintática da frase acima ficaria assim:

Árvore de dependência sintática

Observação: é possível criar suas próprias árvores de dependência sintática no navegador com a demonstração da Natural Language disponibilizada no Guia da API Natural Language
  • headTokenIndex é o índice do token com um arco que aponta para "Joanne". Pense em cada token da frase como uma palavra de uma matriz.
  • headTokenIndex igual a 1 para "Joanne" refere-se à palavra "Rowling", à qual está ligada na árvore. O rótulo NN (abreviação de modificador composto por substantivo) descreve o papel da palavra na frase. "Joanne" modifica "Rowling", o sujeito da frase.
  • lemma é a forma canônica da palavra. Por exemplo, as palavras executar, executa, executou e executando têm todas o lema executar. O valor do "lemma" é útil para rastrear ocorrências de uma palavra em um texto longo.

Tarefa 7: processamento de linguagem natural multilíngue

A API Natural Language também oferece suporte a idiomas diferentes do inglês (uma lista completa pode ser conferida no Guia de suporte a idiomas).

  1. Modifique o código em request.json com uma frase em japonês:
{ "document":{ "type":"PLAIN_TEXT", "content":"日本のグーグルのオフィスは、東京の六本木ヒルズにあります" } }
  1. Pressione CTRL+X para sair do nano, Y para salvar o arquivo e ENTER para confirmar.

Você não informou à API em qual idioma o texto está, mas ela detectou o idioma automaticamente.

  1. Depois, você vai enviar o arquivo ao endpoint analyzeEntities:
curl "https://language.googleapis.com/v1/documents:analyzeEntities?key=${API_KEY}" \ -s -X POST -H "Content-Type: application/json" --data-binary @request.json

E vai receber a seguinte resposta:

{ "entities": [ { "name": "日本", "type": "LOCATION", "metadata": { "mid": "/m/03_3d", "wikipedia_url": "https://en.wikipedia.org/wiki/Japan" }, "salience": 0.23854347, "mentions": [ { "text": { "content": "日本", "beginOffset": 0 }, "type": "PROPER" } ] }, { "name": "グーグル", "type": "ORGANIZATION", "metadata": { "mid": "/m/045c7b", "wikipedia_url": "https://en.wikipedia.org/wiki/Google" }, "salience": 0.21155767, "mentions": [ { "text": { "content": "グーグル", "beginOffset": 9 }, "type": "PROPER" } ] }, ... ] "language": "ja" }

Os URLs da Wikipédia apontam para as páginas da Wikipédia em japonês. Bacana, não é?

Parabéns!

Você aprendeu a realizar uma análise de texto com a API Cloud Natural Language extraindo entidades, analisando sentimento e fazendo anotações de sintaxe. Neste laboratório, você criou uma solicitação da API Natural Language e chamou a API com curl, extraiu entidades e fez a análise de sentimento no texto com essa API, realizou uma análise linguística no texto e criou uma solicitação da API Natural Language em outro idioma.

Próximas etapas

Treinamento e certificação do Google Cloud

Esses treinamentos ajudam você a aproveitar as tecnologias do Google Cloud ao máximo. Nossas aulas incluem habilidades técnicas e práticas recomendadas para ajudar você a alcançar rapidamente o nível esperado e continuar sua jornada de aprendizado. Oferecemos treinamentos que vão do nível básico ao avançado, com opções de aulas virtuais, sob demanda e por meio de transmissões ao vivo para que você possa encaixá-las na correria do seu dia a dia. As certificações validam sua experiência e comprovam suas habilidades com as tecnologias do Google Cloud.

Manual atualizado em 14 de fevereiro de 2024

Laboratório testado em 13 de outubro de 2023

Copyright 2024 Google LLC. Todos os direitos reservados. Google e o logotipo do Google são marcas registradas da Google LLC. Todos os outros nomes de produtos e empresas podem ser marcas registradas das respectivas empresas a que estão associados.

Este conteúdo não está disponível no momento

Você vai receber uma notificação por e-mail quando ele estiver disponível

Ótimo!

Vamos entrar em contato por e-mail se ele ficar disponível