1
resposta

[Projeto] Classificador de Despesas Bancarias — Zero-Shot Classification com Hugging Face

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%)
Pagamento Uber viagem centro -> Transporte (
91%)
Conta de luz Enel São Paulo -> Contas e Serviços (88%)
Farmácia Drogasil medicamentos -> Saúde (
83%)

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

1 resposta

Oii Isaac, tudo bem?

Que projeto incrível! Parabéns por ir além do básico e trazer uma implementação tão bem pensada.

O que mais chamou atenção foi a justificativa da escolha do modelo: você não só usou o mDeBERTa, mas explicou por que ele funciona para zero-shot (precisa de NLI) enquanto o mBERT não funcionaria. Isso mostra que você entendeu a mecânica por trás da pipeline, não só o resultado.

A detecção de ambiguidade com limiar de 20% também é um detalhe muito prático, é exatamente o tipo de preocupação que separa um protótipo de uma solução pensada para produção.

Obrigada por compartilhar o repo com acesso fácil pelo Colab, com certeza vai ajudar outros alunos que passarem por esse desafio.

Conte com a Alura para evoluir seus estudos. Em caso de dúvidas, fico à disposição.

Bons estudos!

Sucesso

Imagem da comunidade