Básico6 min de leituraAtualizado
O que é um classificador de texto e como decide?
Um classificador de texto lê uma frase e devolve uma probabilidade para cada categoria. Como é construído, o que significa a pontuação e onde erra.
A ideia numa frase
Um classificador de texto é um programa que lê um texto e diz a que categorias pertence. Um filtro de spam é um classificador com duas categorias (spam, não spam). Um modelo de moderação é um classificador com várias: tóxico, insulto, ódio, ameaça, conteúdo sexual, automutilação, etc.
Das regras à aprendizagem
Os primeiros classificadores eram listas de regras: «se a mensagem contém esta palavra, bloqueia-a». São rápidos e fáceis de explicar, mas falham em duas direções:
- deixam passar tudo o que não está na lista (um insulto novo, um erro de escrita, outra língua);
- bloqueiam mensagens inocentes que por acaso contêm uma palavra da lista («a orca assassina», uma citação, uma piada entre amigos).
A um classificador de aprendizagem automática não se dão regras. Dão-se milhares de exemplos com a resposta certa, escrita por pessoas, e ele aprende sozinho que padrões importam. É por isso que consegue reconhecer um insulto que nunca viu, numa frase escrita de um modo que ninguém tinha previsto.
O que sai: uma pontuação, não um veredicto
Para cada categoria, o classificador devolve uma probabilidade entre 0 e 1:
| Mensagem | toxic | insult | threat |
|---|---|---|---|
| «que jogo incrível esta noite» | 0.01 | 0.00 | 0.00 |
| «és um idiota» | 0.98 | 0.97 | 0.01 |
| «vou arrasar-te na final 😄» | 0.12 | 0.03 | 0.08 |
Uma pontuação não é uma decisão. Para decidir, compara-se com um limiar: acima dele a mensagem é assinalada, abaixo não. Escolher o limiar é um equilíbrio entre deixar passar mensagens nocivas e assinalar mensagens boas, e merece um guia próprio.
Várias categorias ao mesmo tempo
Uma mensagem pode ser um insulto e uma ameaça ao mesmo tempo. Os modelos de moderação costumam ser multi-rótulo: cada categoria recebe a sua própria pontuação independente, em vez de se escolher uma única vencedora. Na VigiMod, por exemplo, um insulto, um ataque de ódio ou uma ameaça também contam como tóxicos.
Como aprende
O treino funciona mais ou menos assim:
- O modelo lê um exemplo e produz pontuações.
- As pontuações são comparadas com o rótulo dado por pessoas.
- Os seus números internos (os pesos) são ligeiramente ajustados para que da próxima vez a resposta fique um pouco mais perto.
- Repete-se com centenas de milhares de exemplos.
No fim, o modelo não decorou os exemplos: construiu uma representação interna do que torna uma mensagem insultuosa, ameaçadora ou inofensiva. Os classificadores modernos partem de um modelo de linguagem que já compreende texto em geral (ver como os modelos de linguagem leem o texto) e depois são afinados (fine-tuning) com exemplos de moderação.
Onde os classificadores erram
- Dados que nunca viram. Um modelo treinado sobretudo com conversas em inglês é mais fraco em turco ou coreano.
- Exemplos enviesados. Se no treino havia poucas frases inocentes com certos nomes ou identidades, o modelo pode associar esses nomes a algo nocivo. O enviesamento tem um guia próprio.
- Falta de contexto. «Ele morre no fim» é inofensivo sozinho e um spoiler numa conversa sobre uma série. Os classificadores que leem a conversa saem-se melhor.
- Rótulos errados. Se os exemplos de treino estiverem mal rotulados, o modelo aprende os erros.
Na prática
Um bom classificador é um primeiro leitor rápido e coerente. Pontua cada mensagem em milissegundos, por isso as pessoas só têm de olhar para as duvidosas. Trata as pontuações como indícios, escolhe limiares adequados à tua comunidade e mantém uma pessoa no processo para ações sérias como banimentos.
Teste-se
Responda às perguntas e depois verifique as respostas.
Continue a aprender
Veja em mensagens reais
Experimente a demo ao vivo ou leia como funciona a API.