CEFR Classifier PT - Classificador de Nivel Linguistico
Classificador automatico de nivel CEFR (A1-C1) para textos em portugues usando mDeBERTa-v3.
Accuracy: 96.43% | F1 Weighted: 96.42%
Modelo
O modelo treinado esta disponivel no HuggingFace:
https://huggingface.co/marcosremar2/cefr-classifier-pt-mdeberta-v3-enem
Como Usar
from transformers import AutoTokenizer, AutoModelForSequenceClassification
import torch
# Carregar modelo
model_name = "marcosremar2/cefr-classifier-pt-mdeberta-v3-enem"
tokenizer = AutoTokenizer.from_pretrained(model_name)
model = AutoModelForSequenceClassification.from_pretrained(model_name)
# Classificar texto
text = "Eu gosto de estudar portugues."
inputs = tokenizer(text, return_tensors="pt", truncation=True, max_length=512)
with torch.no_grad():
outputs = model(**inputs)
probs = torch.softmax(outputs.logits, dim=-1)
pred = torch.argmax(probs, dim=-1).item()
levels = ["A1", "A2", "B1", "B2", "C1"]
print(f"Nivel: {levels[pred]} ({probs[0][pred]:.0%})")
Niveis CEFR
| Nivel | Descricao | Exemplo |
|---|---|---|
| A1 | Iniciante | "Eu sou Maria. Eu gosto de cafe." |
| A2 | Basico | "Ontem eu fui ao mercado e comprei frutas." |
| B1 | Intermediario | "Embora estivesse chovendo, decidimos sair." |
| B2 | Intermediario Superior | "A urbanizacao impacta a qualidade de vida nas cidades." |
| C1 | Avancado | "A analise sociolinguistica revela variacoes dialetais legitimas." |
Resultados
Metricas por Classe
| Nivel | Precision | Recall | F1 Score |
|---|---|---|---|
| A1 | 0.92 | 1.00 | 0.96 |
| A2 | 1.00 | 0.91 | 0.95 |
| B1 | 0.97 | 0.98 | 0.98 |
| B2 | 0.91 | 0.91 | 0.91 |
| C1 | 1.00 | 1.00 | 1.00 |
Comparacao com Outros Modelos
| Modelo | Accuracy | Parametros |
|---|---|---|
| mDeBERTa-v3 + ENEM | 96.43% | 280M |
| mDeBERTa-v3 (sem ENEM) | 88.10% | 280M |
| XLM-RoBERTa Large | ~82% | 560M |
| XLM-RoBERTa Base | ~78% | 278M |
Datasets Utilizados
Datasets com Labels CEFR
| Dataset | Fonte | Textos |
|---|---|---|
| NLI-PT v2.0 | PEAPLE2, Leiria, COPLE | ~800 |
| UniversalCEFR | HuggingFace (cople2_pt, peapl2_pt) | ~940 |
| Hablacultura | Espanhol (transfer learning) | ~650 |
Datasets com Mapeamento para CEFR
| Dataset | Mapeamento | Textos |
|---|---|---|
| ENEM Essays | 800+ β C1, 600-799 β B2, 400-599 β B1, 200-399 β A2 | ~3,500 |
| Corpus Readability | Fund.I β A1, Fund.II β A2, Medio β B1, Superior β B2 | ~1,400 |
| PorSimplesSent | Simplificado β A2, Natural β B1, Original β B2 | ~6,000 |
Total apos balanceamento: 18,790 textos
Estrutura do Projeto
cefr-classifier-pt/
βββ src/ # Codigo fonte
β βββ config.py # Configuracoes
β βββ model.py # CEFRClassifier
β βββ dataset.py # Utilitarios de dataset
β βββ train.py # Script de treinamento
β
βββ jobs/ # Configuracao SkyPilot
β βββ skypilot-job.yaml # Job de treinamento
β
βββ README.md
Treinamento
O treinamento e feito na nuvem usando SkyPilot:
# Instalar SkyPilot
pip install "skypilot[vast]"
# Configurar credenciais
sky check
# Lancar treinamento
sky launch jobs/skypilot-job.yaml
# Acompanhar logs
sky logs <cluster-name>
# Encerrar cluster
sky down <cluster-name>
Configuracao do Treinamento
- Modelo: microsoft/mdeberta-v3-base
- Classes: 5 (A1, A2, B1, B2, C1)
- Epochs: 10
- Learning Rate: 2e-5
- Batch Size: 16
- FP16: Desabilitado (mDeBERTa nao suporta)
- Early Stopping: patience 3
Inspiracao Metodologica
Este modelo foi inspirado pela abordagem proposta em Gaillat et al. (2021):
Gaillat, T., Simpkin, A., Ballier, N., Alexopoulou, T., Bodain, Y., & Thouesny, S. (2021). "Predicting CEFR levels in learners of English: The use of microsystem criterial features in a machine learning approach." ReCALL, 33(2), 161-180. Cambridge University Press. DOI: 10.1017/S0958344021000021
O paper demonstrou a eficacia de classificadores supervisionados para predicao de niveis CEFR em textos de aprendizes de linguas, alcancando 82% de accuracy em dados internos.
Nossa contribuicao:
- Adaptacao para portugues brasileiro (lingua de baixo recurso para CEFR)
- Combinacao de multiplos datasets com mapeamentos para CEFR (incluindo ENEM)
- Uso do mDeBERTa-v3, que oferece melhor representacao multilingual
- 96.43% de accuracy - superando significativamente o baseline do paper original
Referencias
Modelo Base
- He et al. (2021) - "DeBERTa: Decoding-enhanced BERT with Disentangled Attention"
- He et al. (2023) - "DeBERTaV3: Improving DeBERTa using ELECTRA-Style Pre-Training"
Datasets
Licenca
MIT License
- Downloads last month
- 4