Pessoal, concluí o desafio do classificador de despesas bancárias e quero mostrar o resultado.
O que faz: Categoriza transações bancárias automaticamente (Alimentação, Transporte, Lazer, Saúde...) sem treinar nenhum modelo. Usa Zero-Shot
Classification com um modelo pré-treinado do Hugging Face.
Como funciona na prática:
O modelo recebe a descrição da transação e compara com cada categoria usando Natural Language Inference (NLI). Ele nunca viu essas categorias no
treinamento — mesmo assim acerta com alta confiança.
Compra no supermercado Pão de Açúcar -> Alimentação (82%)91%)
Pagamento Uber viagem centro -> Transporte (
Conta de luz Enel São Paulo -> Contas e Serviços (88%)83%)
Farmácia Drogasil medicamentos -> Saúde (
Detalhes técnicos:
- Modelo: mDeBERTa-v3-base-mnli-xnli (multilíngue, treinado em NLI)
- Escolhi ele em vez do mBERT-Portuguese porque a pipeline zero-shot-classification precisa de um modelo NLI para funcionar — mBERT não foi treinado pra
isso - Implementei detecção de ambiguidade: quando a diferença entre 1ª e 2ª categoria é menor que 20%, a transação é marcada como ambígua e precisaria de
revisão humana
O que aprendi:
- Zero-Shot é absurdamente poderoso — classificar sem treinar parece mágica, mas a base teórica é NLI: o modelo infere se a descrição "implica" cada
categoria - A escolha das categorias importa muito. Categorias parecidas (ex: "Restaurante" e "Alimentação") geram ambiguidade e scores distribuídos
- Modelo multilíngue > modelo monolíngue quando a tarefa é NLI, porque os datasets de treino (MNLI + XNLI) são maiores e mais diversificados
Repo (roda no Google Colab com 1 clique): https://github.com/recuperarcontato4-prog/bank-classifier