Restauração de Pontuação no Texto em Português com BERT
O projeto se propõe a resolver um desafio comum na processamento de linguagem natural: a restauração de pontuação
. Utilizando o modelo BERT-base-portuguese-cased, foi realizada a tarefa de treinamento de um sistema que restaura pontuações e a capitalização de palavras em textos na língua portuguesa.
Descrição do Projeto
O projeto, intitulado bert-restore-punctuation-ptbr, utiliza o modelo BERT (baseado na arquitetura Transformer) e foi implementado na biblioteca PyTorch. Ele foi treinado no conjunto de dados WikiLingua, que contém um amplo espectro de exemplos na língua portuguesa.
Este modelo é projetado para uso direto como um restaurador de pontuação para o português em geral. Alternativamente, ele também pode ser utilizado para o aprimoramento em textos específicos de um domínio para tarefas de restauração de pontuação.
As pontuações restauradas pelo modelo incluem [! ? . , - : ; ' ], além da recuperação de letras maiúsculas em palavras.
Como Usar
O projeto foi empacotado de forma a facilitar a utilização, bastando instalar a biblioteca respunct
através do comando pip install respunct
. Após isso, a restauração de pontuação em um texto pode ser feita de maneira simples:
from respunct import RestorePuncts
model = RestorePuncts()
model.restore_puncts("henrique foi no lago pescar com o pedro mais tarde foram para a casa do pedro fritar os peixes")
# Saída:
# Henrique foi no lago pescar com o Pedro. Mais tarde, foram para a casa do Pedro fritar os peixes.
Precisão do Modelo
A precisão geral do modelo é de 96%. As métricas F1, precisão e recall também foram calculadas para cada tipo de pontuação. Por exemplo, o modelo tem uma precisão de 86% e recall de 93% para a recuperação do ponto final (Full stop/period - .O).
label | precision | recall | f1-score | support |
---|---|---|---|---|
Upper - OU | 0.89 | 0.91 | 0.90 | 69376 |
None - OO | 0.99 | 0.98 | 0.98 | 857659 |
Full stop/period - .O | 0.86 | 0.93 | 0.89 | 60410 |
Comma - ,O | 0.85 | 0.83 | 0.84 | 48608 |
Upper + Comma - ,U | 0.73 | 0.76 | 0.75 | 3521 |
Question - ?O | 0.68 | 0.78 | 0.73 | 1168 |
Upper + period - .U | 0.66 | 0.72 | 0.69 | 1884 |
Upper + colon - :U | 0.59 | 0.63 | 0.61 | 352 |
Colon - :O | 0.70 | 0.53 | 0.60 | 2420 |
Question Mark - ?U | 0.50 | 0.56 | 0.53 | 36 |
Upper + Exclam. - !U | 0.38 | 0.32 | 0.34 | 38 |
Exclamation Mark - !O | 0.30 | 0.05 | 0.08 | 783 |
Semicolon - ;O | 0.35 | 0.04 | 0.08 | 1557 |
Apostrophe - 'O | 0.00 | 0.00 | 0.00 | 3 |
Hyphen - -O | 0.00 | 0.00 | 0.00 | 3 |
accuracy | 0.96 | 1047818 | ||
macro avg | 0.57 | 0.54 | 0.54 | 1047818 |
weighted avg | 0.96 | 0.96 | 0.96 | 1047818 |