Essa é a parte 17 de 24 na série Python + IA: Fundamentos e Projetos Práticos
- Ambiente, Sintaxe Básica e Variáveis em Python — Bootcamp Dia 1
- Como Trabalhar com Listas no Python — Bootcamp Dia 6
- Tuplas e Sets em Python — Estruturas Imutáveis e Conjuntos Inteligentes | Bootcamp Dia 7
- Dicionários em Python: chave e valor, o jeito inteligente de armazenar dados
- Funções em Python: Escreva Menos, Faça Mais
- Tratamento de Erros em Python: programe com segurança
- Leitura e Escrita de Arquivos em Python: salve seus dados no mundo real
- Salvando Dados Estruturados com JSON em Python
- Funções com Múltiplos Retornos em Python: eficiência e organização
- Parâmetros Opcionais e Valores Padrão em Python
- *args e **kwargs em Python: flexibilidade total nas funções
- List Comprehensions em Python: código elegante e eficiente
- Manipulando Arquivos CSV com Python: automatize leitura e escrita de dados
- Começando com Pandas em Python: análise de dados para IA e automações
- Limpeza e Transformação de Dados com Pandas: preparando para IA
- Inteligência Artificial com Python: Fundamentos e Primeira Integração com a OpenAI
- Classificação de Texto com IA: Detectando Temas e Categorias
- Geração de Texto com IA: Criando Respostas Inteligentes com Python
- Chatbot com IA em Python: Construindo um Assistente Inteligente
- Como Detectar Fake News com Python e IA
- Como Criar uma Interface com IA em Python para Detectar Fake News
- 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
- 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:
- Receba vários textos de entrada (pode ser uma lista)
- Classifique cada um nas categorias:
educação
,segurança
,meio ambiente
,política
,saúde
- 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
Uma resposta
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)”)
´´´