Classificação de Texto com IA: Detectando Temas e Categorias

Aprenda a classificar automaticamente textos por tema com Python usando modelos da Hugging Face. Projeto prático com NLP e IA.

Compartilhe

Como Classificar Textos com IA e Python (Zero-Shot Classification)
This entry is parte 17 de 24 in the series Python + IA: Fundamentos e Projetos Práticos

Python + IA: Fundamentos e Projetos Práticos

Python para Iniciantes: Instalando o Ambiente, Sintaxe e Variáveis (Dia 1/30)

Ambiente, Sintaxe Básica e Variáveis em Python — Bootcamp Dia 1

Como Trabalhar com Listas no Python — Bootcamp Dia 6

Como Trabalhar com Listas no Python — Bootcamp Dia 6

Tuplas e Sets em Python — Estruturas Imutáveis e Conjuntos Inteligentes

Tuplas e Sets em Python — Estruturas Imutáveis e Conjuntos Inteligentes | Bootcamp Dia 7

Como Usar Dicionários em Python — Bootcamp Python + IA Dia 8

Dicionários em Python: chave e valor, o jeito inteligente de armazenar dados

Como Criar Funções em Python — Parâmetros, Retorno e Reutilização

Funções em Python: Escreva Menos, Faça Mais

Como Tratar Erros em Python com try, except e finally

Tratamento de Erros em Python: programe com segurança

Leitura e Escrita de Arquivos em Python

Leitura e Escrita de Arquivos em Python: salve seus dados no mundo real

Como Salvar Listas de Dicionários em Arquivo JSON com Python

Salvando Dados Estruturados com JSON em Python

Funções com Múltiplos Retornos em Python — Análise de Dados com Elegância

Funções com Múltiplos Retornos em Python: eficiência e organização

Parâmetros Opcionais e Valores Padrão em Python

Parâmetros Opcionais e Valores Padrão em Python

Como Usar args e kwargs em Funções Python

*args e **kwargs em Python: flexibilidade total nas funções

Como Usar List Comprehensions em Python

List Comprehensions em Python: código elegante e eficiente

Como Manipular Arquivos CSV com Python

Manipulando Arquivos CSV com Python: automatize leitura e escrita de dados

Como Usar Pandas em Python para Análise de Dados

Começando com Pandas em Python: análise de dados para IA e automações

Como Limpar e Preparar Dados com Pandas | Bootcamp Dia 20

Limpeza e Transformação de Dados com Pandas: preparando para IA

Como usar a OpenAI com Python (API Atualizada, GPT-3.5)

Inteligência Artificial com Python: Fundamentos e Primeira Integração com a OpenAI

Como Classificar Textos com IA e Python (Zero-Shot Classification)

Classificação de Texto com IA: Detectando Temas e Categorias

Como Criar Textos com Python e IA (NLP + GPT-2)

Geração de Texto com IA: Criando Respostas Inteligentes com Python

Como Criar um Chatbot com IA em Python (com DialoGPT)

Chatbot com IA em Python: Construindo um Assistente Inteligente

Como Detectar Fake News com Python e IA — Projeto Prático

Como Detectar Fake News com Python e IA

Como Criar uma Interface com IA em Python para Detectar Fake News

Como Criar uma Interface com IA em Python para Detectar Fake News

Como Avaliar a Qualidade de um Modelo de IA com Python

Como Avaliar a Qualidade de um Modelo de IA com Python — Além da Acurácia

Como Balancear Dados e Validar Modelos com Python e IA

Como Balancear Dados e Validar Modelos com Python e IA

Classificador de Fake News com Interface Web em Python (Streamlit)

Projeto Final: Criando um Classificador de Fake News com Interface Web em Python (Streamlit)

Hoje vamos além dos sentimentos. Você vai aprender como classificar textos em categorias usando modelos de Machine Learning e NLP com Python — por exemplo: detectar se um texto é sobre política, esportes, tecnologia ou saúde.

Essa técnica é fundamental para criar sistemas inteligentes de triagem, como filtros de e-mail, categorização automática de notícias, bots de atendimento e muito mais.


🧠 O que é Classificação de Texto?

A classificação de texto é uma tarefa de Processamento de Linguagem Natural (PLN) onde um modelo aprende a atribuir uma categoria ou rótulo a um texto.

Exemplos práticos:

  • Detectar assuntos de e-mails (spam, urgente, pessoal, etc.)
  • Classificar notícias por tema
  • Identificar áreas de interesse em formulários ou feedbacks

🧰 O que vamos usar

  • Python 3.10+
  • Biblioteca transformers
  • Modelo: facebook/bart-large-mnli (modelo de inferência natural para múltiplas classes)

📦 Instalando o que precisamos

pip install transformers
pip install torch

✍️ Código: Classificando Temas de Texto

from transformers import pipeline

# Define as categorias possíveis
categorias = ["tecnologia", "política", "esportes", "economia", "saúde"]

# Cria o classificador com modelo NLI
classificador = pipeline("zero-shot-classification", model="facebook/bart-large-mnli")

# Texto a ser classificado
texto = "O novo iPhone foi lançado com diversas inovações em IA e desempenho gráfico."

# Classifica
resultado = classificador(texto, candidate_labels=categorias)

# Mostra as categorias com pontuação
for categoria, score in zip(resultado["labels"], resultado["scores"]):
    print(f"{categoria}: {round(score * 100, 2)}%")

💡 Explicando o Código

  • pipeline("zero-shot-classification"): permite classificar sem precisar treinar o modelo antes!
  • candidate_labels: categorias possíveis que queremos testar
  • O modelo retorna uma probabilidade para cada categoria

📊 Resultado esperado

tecnologia: 96.54%
economia: 1.87%
política: 0.79%
esportes: 0.5%
saúde: 0.3%

🎯 Desafio do Dia

Crie um script que:

  1. Receba vários textos de entrada (pode ser uma lista)
  2. Classifique cada um nas categorias: educação, segurança, meio ambiente, política, saúde
  3. Mostre qual categoria foi mais detectada no conjunto de textos

🔧 Dica bônus

Você pode adaptar para outros contextos, como:

  • Detectar setores de chamados em help desk
  • Classificar reclamações por tipo
  • Aplicar em bots que direcionam atendimento automaticamente

Python + IA: Fundamentos e Projetos Práticos

Inteligência Artificial com Python: Fundamentos e Primeira Integração com a OpenAI Geração de Texto com IA: Criando Respostas Inteligentes com Python

Uma resposta

  1. Colinha pro Desafio:

    ´´´
    from transformers import pipeline
    from collections import Counter

    # Define categorias
    categorias = [“educação”, “segurança”, “meio ambiente”, “política”, “saúde”]

    # Cria pipeline com modelo zero-shot
    classificador = pipeline(“zero-shot-classification”, model=”facebook/bart-large-mnli”)

    # Lista de textos para classificar
    textos = [
    “O governo anunciou um novo plano de segurança para reduzir a criminalidade nas cidades.”,
    “As mudanças climáticas estão afetando a biodiversidade das florestas tropicais.”,
    “Foi aprovado um aumento de verba para escolas públicas.”,
    “O congresso debateu hoje uma nova reforma política.”,
    “Campanhas de vacinação estão sendo realizadas para conter surtos de doenças.”
    ]

    # Armazena as categorias detectadas
    categorias_detectadas = []

    # Classifica cada texto
    for texto in textos:
    resultado = classificador(texto, candidate_labels=categorias)
    categoria_top = resultado[“labels”][0] # Categoria com maior score
    print(f”Texto: {texto}\n➡️ Categoria: {categoria_top}\n”)
    categorias_detectadas.append(categoria_top)

    # Conta ocorrências por categoria
    contagem = Counter(categorias_detectadas)

    # Exibe resumo
    print(“📊 Contagem Final:”)
    for cat, qtd in contagem.items():
    print(f”{cat}: {qtd} ocorrência(s)”)

    # Categoria mais comum
    categoria_mais_detectada = contagem.most_common(1)[0]
    print(f”\n🏆 Categoria mais detectada: {categoria_mais_detectada[0]} ({categoria_mais_detectada[1]}x)”)

    ´´´