atos-de-fala-ptbr / README.md
lucianfialho's picture
card: merged full model + pipeline usage
dbdcc14 verified
|
Raw
History Blame
3.21 kB
---
base_model: neuralmind/bert-base-portuguese-cased
library_name: transformers
pipeline_tag: token-classification
language:
- pt
license: mit
tags:
- speech-acts
- atos-de-fala
- dialogue-acts
- portuguese
- pt-br
- bertimbau
- token-classification
- bioes
widget:
- text: "Bom dia! Você pode revisar o relatório? Obrigado."
---
# Atos de Fala PT-BR — classificador de atos de fala (span-level)
Classificador de **atos de fala (speech acts)** para **português brasileiro**, em nível de
**span**: decompõe um texto em trechos contíguos e rotula a intenção de cada um (pedir,
perguntar, agradecer, discordar, prometer…). Até onde sabemos, é o **primeiro modelo aberto**
de atos de fala span-level para PT-BR.
Este é o **modelo completo** (BERTimbau fine-tunado, LoRA já mesclado) — carrega com
`transformers` puro, sem PEFT, e roda no `pipeline("token-classification")`.
- **Base:** `neuralmind/bert-base-portuguese-cased` (BERTimbau), token classifier **BIOES**.
- **Treino:** dados sintéticos destilados de um *teacher* LLM (DeepSeek), balanceados por ato.
- **Demo ao vivo:** https://huggingface.co/spaces/lucianfialho/atos-de-fala-ptbr
- **Coleta colaborativa + dataset aberto:** https://atos-de-fala.vercel.app
- **Código:** https://github.com/lucianfialho/atos-de-fala
## Taxonomia (13 atos → 53 labels BIOES)
`informar · perguntar · concordar · discordar · pedir · sugerir · oferecer · prometer ·
saudar · agradecer · desculpar · despedir · expressar_emocao` (ISO 24617-2 + Searle).
## Como usar
```python
from transformers import pipeline
clf = pipeline("token-classification", model="lucianfialho/atos-de-fala-ptbr",
aggregation_strategy="none")
print(clf("Bom dia! Você pode revisar o relatório? Obrigado."))
# -> tags BIOES por token: B-saudar … E-saudar | B-pedir … E-pedir | B-agradecer …
```
Agrupe as tags BIOES (B/I/E/S por ato) em spans `(start, end, ato)`.
## Treino
- ~5.000 exemplos sintéticos (frases PT-BR + anotação span-level) gerados por um teacher
DeepSeek, com balanceamento por ato.
- LoRA nos módulos de atenção (`query`/`value`) + cabeça `classifier`; fp16; loss ≈ 0,30.
O adapter foi **mesclado** (`merge_and_unload`) neste modelo final.
## Avaliação (honesta)
Eval **sentence-level** no Porttinari (notícias; da Silva et al., PROPOR 2024), ato dominante:
- accuracy ≈ **0,83** · *lenient hit-rate* ≈ **0,94** (coarse, macro-classes).
- **Caveat:** Porttinari é notícia → mede bem `informar`/`perguntar`, mas é praticamente
**cego** aos 11 atos sociais/diretivos/comissivos. Span-F1 exato ≈ 0 por granularidade
(gold de frase vs spans). Qualitativamente acerta atos sociais e pedidos indiretos.
## Limitações
- v1: texto de treino **sintético** (sabor "LLM"), carrega o **viés do teacher**.
- Fronteiras de span podem errar por alguns caracteres.
- Falta gold humano conversacional — sendo coletado no jogo aberto para treinar o v2.
## Licença e contato
MIT (respeite a licença do modelo base, BERTimbau). "chomsky" é só o codinome interno; a
base teórica é pragmática (Searle/ISO), não a sintaxe chomskyana.
Contato: lucian@metricasboss.com.br