Público-alvo
Este tutorial foi concebido para lhe permitir começar rapidamente a explorar e desenvolver aplicações com a 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 de linguagem natural 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 o exemplo neste tutorial).
Pré-requisitos
Este tutorial tem vários pré-requisitos:
- Configurou um projeto do Cloud Natural Language na Google Cloud consola.
- Configurou o seu ambiente através das credenciais padrão da aplicação na Google Cloud consola.
- Tem conhecimentos de Python na Google Cloud programação de consola.
- 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
Vista geral
Este tutorial explica-lhe uma aplicação de linguagem natural básica, através de pedidos que classificam o conteúdo em categorias, juntamente com uma pontuação de confiança, como:classifyText
category: "/Internet & Telecom/Mobile & Wireless/Mobile Apps & Add-Ons"
confidence: 0.6499999761581421
Para ver a lista de todas as etiquetas de categorias disponíveis, consulte Categorias.
Neste tutorial, vai criar uma aplicação para realizar as seguintes tarefas:
- Classificar vários ficheiros de texto e escrever o resultado num ficheiro de índice.
- Processar o texto da consulta de entrada para encontrar ficheiros de texto semelhantes.
- Processar etiquetas de categorias de consultas de entrada para encontrar ficheiros de texto semelhantes.
O tutorial usa conteúdo da Wikipédia. Pode criar uma aplicação semelhante para processar artigos de notícias, comentários online, etc.
Ficheiros de origem
Pode encontrar o código fonte do tutorial nos exemplos da biblioteca cliente Python no GitHub.
Este tutorial usa texto de origem de exemplo da Wikipédia. Pode encontrar os ficheiros de texto de exemplo na pasta resources/texts do projeto do GitHub.
Importar bibliotecas
Para usar a Cloud Natural Language API, tem de importar o módulo language
da biblioteca google-cloud-language
. O módulo language.types
contém classes necessárias para criar pedidos. O módulo language.enums
é usado para especificar o tipo de texto de entrada. Este tutorial
classifica o conteúdo de texto simples (language.enums.Document.Type.PLAIN_TEXT
).
Para calcular a semelhança entre textos com base na respetiva classificação de conteúdo, este tutorial usa o numpy
para cálculos vetoriais.
Python
Para saber como instalar e usar a biblioteca cliente da API Natural Language, consulte o artigo Bibliotecas cliente da API Natural Language. Para mais informações, consulte a documentação de referência da API Python de linguagem natural.
Para se autenticar na API Natural Language, configure as Credenciais padrão da aplicação. Para mais informações, consulte o artigo Configure a autenticação para um ambiente de desenvolvimento local.
Passo 1. Classifique o conteúdo
Pode usar a biblioteca cliente Python para fazer um pedido à API Natural Language para classificar conteúdo. A biblioteca cliente Python encapsula os detalhes dos pedidos e das respostas da API Natural Language.
A função classify
no tutorial chama o método classifyText
da API Natural Language, criando primeiro uma instância da classe LanguageServiceClient
e, em seguida, chamando o método classify_text
da instância LanguageServiceClient
.
A função classify
do tutorial apenas classifica o conteúdo de texto para este exemplo. Também pode classificar o conteúdo de uma página Web transmitindo o HTML de origem da página Web como o text
e definindo o parâmetro type
como language.enums.Document.Type.HTML
.
Para mais informações, consulte o artigo Classificar conteúdo. Para ver detalhes sobre a estrutura dos pedidos à API Natural Language, consulte a referência da API Natural Language.
Python
Para saber como instalar e usar a biblioteca cliente da API Natural Language, consulte o artigo Bibliotecas cliente da API Natural Language. Para mais informações, consulte a documentação de referência da API Python de linguagem natural.
Para se autenticar na API Natural Language, configure as Credenciais padrão da aplicação. Para mais informações, consulte o artigo Configure a autenticação para um ambiente de desenvolvimento local.
O resultado devolvido é um dicionário com as etiquetas de categoria como chaves e as pontuações de confiança como valores, como:
{
"/Computers & Electronics": 0.800000011920929,
"/Internet & Telecom/Mobile & Wireless/Mobile Apps & Add-Ons": 0.6499999761581421
}
O script Python do tutorial está organizado para que possa ser executado a partir da linha de comandos para experiências rápidas. Por exemplo, pode executar:
python classify_text_tutorial.py classify "Google Home enables users to speak voice commands to interact with services through the Home's intelligent personal assistant called Google Assistant. A large number of services, both in-house and third-party, are integrated, allowing users to listen to music, look at videos or photos, or receive news updates entirely by voice. "
Passo 2. Indexe vários ficheiros de texto
A função index
no script do tutorial recebe, como entrada, um diretório
com vários ficheiros de texto e o caminho para um ficheiro onde armazena
o resultado indexado (o nome do ficheiro predefinido é index.json
).
A função index
lê o conteúdo
de cada ficheiro de texto no diretório de entrada e, em seguida, passa os ficheiros de texto
para a Cloud Natural Language API para serem classificados em
categorias de conteúdo.
Python
Para saber como instalar e usar a biblioteca cliente da API Natural Language, consulte o artigo Bibliotecas cliente da API Natural Language. Para mais informações, consulte a documentação de referência da API Python de linguagem natural.
Para se autenticar na API Natural Language, configure as Credenciais padrão da aplicação. Para mais informações, consulte o artigo Configure a autenticação para um ambiente de desenvolvimento local.
Os resultados da Cloud Natural Language API para cada ficheiro são organizados num único dicionário, serializados como uma string JSON e, em seguida, escritos num ficheiro. Por exemplo:
{
"android.txt": {
"/Computers & Electronics": 0.800000011920929,
"/Internet & Telecom/Mobile & Wireless/Mobile Apps & Add-Ons": 0.6499999761581421
},
"google.txt": {
"/Internet & Telecom": 0.5799999833106995,
"/Business & Industrial": 0.5400000214576721
}
}
Para indexar ficheiros de texto a partir da linha de comandos com o nome do ficheiro de saída predefinido
index.json
, execute o seguinte comando:
python classify_text_tutorial.py index resources/texts
Passo 3. Consultar o índice
Consulta com etiquetas de categorias
Depois de criar o ficheiro de índice (nome do ficheiro predefinido = index.json
), podemos fazer consultas ao índice para obter alguns dos nomes de ficheiros e as respetivas pontuações de confiança.
Uma forma de o fazer é usar uma etiqueta de categoria como consulta, o que o tutorial
consegue com a função query_category
. Pode encontrar a implementação das funções auxiliares, como similarity
, no ficheiro classify_text_tutorial.py
. Nas suas aplicações, a classificação e a pontuação de similaridade devem ser cuidadosamente concebidas em torno de exemplos de utilização específicos.
Python
Para saber como instalar e usar a biblioteca cliente da API Natural Language, consulte o artigo Bibliotecas cliente da API Natural Language. Para mais informações, consulte a documentação de referência da API Python de linguagem natural.
Para se autenticar na API Natural Language, configure as Credenciais padrão da aplicação. Para mais informações, consulte o artigo Configure a autenticação para um ambiente de desenvolvimento local.
Para ver uma lista de todas as categorias disponíveis, consulte Categorias.
Tal como antes, pode chamar a função query_category
a partir da linha de comandos:
python classify_text_tutorial.py query-category index.json "/Internet & Telecom/Mobile & Wireless"
Deverá ver uma saída semelhante à seguinte:
Query: /Internet & Telecom/Mobile & Wireless
Most similar 3 indexed texts:
Filename: android.txt
Similarity: 0.665573579045
Filename: google.txt
Similarity: 0.517527175966
Filename: gcp.txt
Similarity: 0.5
Consultar com texto
Em alternativa, pode consultar com texto que pode não fazer parte do texto indexado. A função query
do tutorial é semelhante à função query_category
, com o passo adicional de fazer um pedido classifyText
para a entrada de texto e usar os resultados para consultar o ficheiro de índice.
Python
Para saber como instalar e usar a biblioteca cliente da API Natural Language, consulte o artigo Bibliotecas cliente da API Natural Language. Para mais informações, consulte a documentação de referência da API Python de linguagem natural.
Para se autenticar na API Natural Language, configure as Credenciais padrão da aplicação. Para mais informações, consulte o artigo Configure a autenticação para um ambiente de desenvolvimento local.
Para o fazer na linha de comandos, execute:
python classify_text_tutorial.py query index.json "Google Home enables users to speak voice commands to interact with services through the Home's intelligent personal assistant called Google Assistant. A large number of services, both in-house and third-party, are integrated, allowing users to listen to music, look at videos or photos, or receive news updates entirely by voice. "
Isto imprime algo semelhante ao seguinte:
Query: Google Home enables users to speak voice commands to interact with services through the Home's intelligent personal assistant called Google Assistant. A large number of services, both in-house and third-party, are integrated, allowing users to listen to music, look at videos or photos, or receive news updates entirely by voice.
Category: /Internet & Telecom, confidence: 0.509999990463
Category: /Computers & Electronics/Software, confidence: 0.550000011921
Most similar 3 indexed texts:
Filename: android.txt
Similarity: 0.600579500049
Filename: google.txt
Similarity: 0.401314790229
Filename: gcp.txt
Similarity: 0.38772339779
O que se segue?
Com a API de classificação de conteúdo, pode criar outras aplicações. Por exemplo:
Classifique todos os parágrafos de um artigo para ver a transição entre tópicos.
Classificar conteúdo com indicação de tempo e analisar a tendência dos tópicos ao longo do tempo.
Compare as categorias de conteúdo com o sentimento do conteúdo através do método
analyzeSentiment
.Compare as categorias de conteúdo com as entidades mencionadas no texto.
Além disso, pode usar outros produtos da Google Cloud Platform para simplificar o seu fluxo de trabalho:
Na aplicação de exemplo deste tutorial, processámos ficheiros de texto locais, mas pode modificar o código para processar ficheiros de texto armazenados num contentor do Google Cloud Storage transmitindo um URI do Google Cloud Storage ao método
classify_text
.Na aplicação de exemplo deste tutorial, armazenámos o ficheiro de índice localmente e cada consulta é processada através da leitura de todo o ficheiro de índice. Isto significa uma latência elevada se tiver uma grande quantidade de dados indexados ou se precisar de processar várias consultas. O Datastore é uma escolha natural e conveniente para armazenar os dados de índice.