BERTunino

Um modelo pequeno, brasileiro, que percebe quando alguém promete fazer algo numa mensagem de chat e grifa o que foi prometido.

"blz amanhã cedo te mando o orçamento revisado" → promessa · Mandar o orçamento revisado (amanhã cedo)

Feito para o Saturnino, um companheiro de mesa para quem tem TDAH, que lembra das promessas que a pessoa faz no meio da conversa. O BERTunino roda no computador da pessoa, só no processador, em cerca de 10 ms por mensagem. As mensagens não precisam sair dali.

Calibrado a partir do BERTimbau (NeuralMind/Unicamp).

O que ele faz

Lê a mensagem que a pessoa enviou (e, se houver, as últimas linhas da conversa) e responde duas coisas:

  1. É uma promessa de quem escreveu? Algo que a pessoa se comprometeu a fazer e ainda não fez.
  2. Quais palavras são a ação, o objeto, a pessoa e o prazo. O modelo não escreve: ele grifa, e a tarefa é montada com esses pedaços.

Ele entende o português escrito às pressas: abreviação ("vc", "hj", "amnh"), sem acento, erro de digitação, mensagem longa com a promessa no meio, promessa vaga ("vou ver", "já respondo") e as armadilhas ("vou almoçar", "a Ana vai mandar", "já mandei", "me manda o relatório").

Como usar

pip install onnxruntime tokenizers numpy
python usar.py "blz amanhã cedo te mando o orçamento revisado"
python usar.py "mando já" --contexto "Ana: cadê a nota fiscal de setembro?"
from usar import BERTunino
b = BERTunino()
b.ler("vou revisar o contrato hoje à tarde e te aviso")
# {"promessa": True, "confianca": 1.0, "tarefa": "Revisar o contrato (hoje à tarde)", "partes": {...}}
arquivo o que é
bertunino-int8.onnx o modelo, comprimido (104 MB)
tokenizer.json o vocabulário do BERTimbau
verbos.json "mando" → "mandar", para a tarefa sair no infinitivo
usar.py leitura pronta: promessa, confiança, tarefa e partes
regua-pt.jsonl a régua de avaliação (abaixo)

Como foi medido

A régua (regua-pt.jsonl): 138 mensagens de WhatsApp escritas à mão (a régua completa tem 145; sete vieram de conversas reais e não são publicadas), separadas por jeito de prometer ("vou + verbo", "mando amanhã", "deixa comigo", abreviado, hesitante, frase cortada…) e jeito de não prometer (conversa, pergunta, pedido, "já fiz", "vou almoçar"…). Nenhuma mensagem da régua, nem nada parecido, entrou no treino.

filtro de frases (antes) BERTunino
promessas detectadas 66 de 85 (78%) 84 de 85 (99%)
conversas tomadas por promessa 0 de 54 4 de 54

Numa segunda prova, com 98 mensagens reais de uso do Saturnino, julgadas à mão por quem as escreveu e não publicadas, ele reconheceu entre 74% e 86% das promessas, conforme o treino. A diferença entre as duas provas é o aviso mais importante: mensagem real é mais difícil que mensagem de teste.

Limites

  • Esta é a versão pública. A versão dentro do Saturnino é mais nova e também se ajusta ao jeito de escrever de cada pessoa.
  • Buscar o objeto nas linhas anteriores da conversa ("mando já" depois de "cadê a nota fiscal?") ainda falha com frequência.
  • Às vezes toma uma frase de ação imediata por promessa ("vou almoçar, volto já"). Nesses casos costuma não grifar nenhuma ação, o que serve de sinal para descartar.
  • Treinado com mensagens inventadas no jeito do WhatsApp brasileiro, em ambiente de trabalho, casa e estudo. Em outros domínios, meça antes de confiar.
  • Só português brasileiro.

Treino

BERTimbau Base com duas saídas (promessa sim/não no [CLS], e marcação BIO de ação/objeto/pessoa/prazo em cada token), entrada em par (conversa, mensagem), 4 épocas. Cerca de 3.500 mensagens de treino inventadas, escritas uma a uma (não por modelo de frase), com três estilos de escrita (certinho, emendado, torto). Depois, quantizado para int8 com ONNX Runtime.

Licença e créditos

  • BERTunino: CC BY-NC 4.0. Pode estudar, testar e adaptar, citando a fonte. Uso comercial não é permitido.
  • BERTimbau (base deste modelo): MIT, © 2020 NeuralMind (Fabio Capuano de Souza, Rodrigo Nogueira, Roberto de Alencar Lotufo). O aviso completo está em NOTICE-BERTimbau.txt. A NeuralMind não tem relação com o Saturnino nem endossa este modelo.

Se usar em pesquisa, cite o BERTimbau:

Souza, F., Nogueira, R., Lotufo, R. (2020). BERTimbau: pretrained BERT models for Brazilian Portuguese. BRACIS 2020.

Downloads last month

-

Downloads are not tracked for this model. How to track
Inference Providers NEW
This model isn't deployed by any Inference Provider. 🙋 Ask for provider support

Model tree for saturnino-app/BERTunino

Quantized
(12)
this model