File size: 3,210 Bytes
70c2acf
 
dbdcc14
70c2acf
 
 
 
 
 
 
 
 
 
 
 
 
dbdcc14
 
70c2acf
 
 
 
 
 
 
 
 
dbdcc14
 
 
 
 
70c2acf
dbdcc14
70c2acf
 
 
 
dbdcc14
70c2acf
 
 
dbdcc14
70c2acf
dbdcc14
 
 
 
70c2acf
dbdcc14
70c2acf
 
 
 
dbdcc14
 
70c2acf
 
dbdcc14
70c2acf
 
dbdcc14
 
70c2acf
 
dbdcc14
70c2acf
dbdcc14
70c2acf
 
dbdcc14
 
70c2acf
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
---
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