Tutorial de classificação de conteúdo

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:

Vista geral

Este tutorial explica uma aplicação de linguagem natural básica, usando pedidos classifyText, que classifica o conteúdo em categorias juntamente com uma pontuação de confiança, como:

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 texto com base na respetiva classificação de conteúdo, este tutorial usa numpy para cálculos vetoriais.

Python

Para saber como instalar e usar a biblioteca cliente para a 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 Pythonde 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.

import argparse
import json
import os

from google.cloud import language_v1
import numpy

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 da API Natural Language classifyText, 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 para a 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 Pythonde 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.

def classify(text, verbose=True):
    """Classify the input text into categories."""

    language_client = language_v1.LanguageServiceClient()

    document = language_v1.Document(
        content=text, type_=language_v1.Document.Type.PLAIN_TEXT
    )
    response = language_client.classify_text(request={"document": document})
    categories = response.categories

    result = {}

    for category in categories:
        # Turn the categories into a dictionary of the form:
        # {category.name: category.confidence}, so that they can
        # be treated as a sparse vector.
        result[category.name] = category.confidence

    if verbose:
        print(text)
        for category in categories:
            print("=" * 20)
            print("{:<16}: {}".format("category", category.name))
            print("{:<16}: {}".format("confidence", category.confidence))

    return result

O resultado devolvido é um dicionário com as etiquetas de categorias 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 para a 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 Pythonde 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.

def index(path, index_file):
    """Classify each text file in a directory and write
    the results to the index_file.
    """

    result = {}
    for filename in os.listdir(path):
        file_path = os.path.join(path, filename)

        if not os.path.isfile(file_path):
            continue

        try:
            with open(file_path) as f:
                text = f.read()
                categories = classify(text, verbose=False)

                result[filename] = categories
        except Exception:
            print(f"Failed to process {file_path}")

    with open(index_file, "w", encoding="utf-8") as f:
        f.write(json