Fine-tuned
BERTimbau for
Brazilian legal area classification across 5 legal domains and 5 courts.
1LABEL2ID = {
2 "civel": 0,
3 "consumidor": 1,
4 "tributario": 2,
5 "administrativo": 3,
6 "penal": 4
7}
1from transformers import AutoTokenizer, AutoModelForSequenceClassification
2import torch
3
4model_name = "pedronettotrue/bertimbau-legal-tjsc-v2"
5tokenizer = AutoTokenizer.from_pretrained(model_name)
6model = AutoModelForSequenceClassification.from_pretrained(model_name)
7
8ID2LABEL = {0: "civel", 1: "consumidor", 2: "tributario", 3: "administrativo", 4: "penal"}
9
10text = "Classe: Apelacao Civel. Assuntos: Responsabilidade Civil, Danos Morais"
11inputs = tokenizer(text, return_tensors="pt", truncation=True, max_length=128)
12
13with torch.no_grad():
14 logits = model(**inputs).logits
15 predicted_class = ID2LABEL[logits.argmax().item()]
16
17print(f"Predicted: {predicted_class}")
18# Output: civel
The model was trained on metadata from Brazilian court decisions (procedural class + legal subjects), not full-text judicial opinions. This is an important distinction: the model classifies based on structured judicial metadata patterns.
1@misc{legalbenchbr2026,
2 title={LegalBench-BR v2: A Multi-Court Benchmark Demonstrating Fine-Tuned Encoder
3 Superiority over LLMs for Brazilian Legal Area Classification},
4 year={2026},
5 url={https://huggingface.co/pedronettotrue/bertimbau-legal-tjsc-v2}
6}