Base6 min di letturaAggiornato

Cos'è un classificatore di testo e come decide?

Un classificatore legge una frase e restituisce una probabilità per ogni categoria. Come è fatto, cosa significa il punteggio e dove sbaglia.

L'idea in una frase

Un classificatore di testo è un programma che legge un testo e dice a quali categorie appartiene. Un filtro antispam è un classificatore con due categorie (spam, non spam). Un modello di moderazione è un classificatore con diverse categorie: tossico, insulto, odio, minaccia, sessuale, autolesionismo e così via.

Dalle regole all'apprendimento

I primi classificatori erano elenchi di regole: «se il messaggio contiene questa parola, bloccalo». Sono veloci e facili da spiegare, ma sbagliano in due direzioni:

  • non vedono tutto quello che non è nella lista (un insulto nuovo, un errore di battitura, un'altra lingua);
  • bloccano messaggi innocenti che contengono per caso una parola della lista («l'orca assassina», una citazione, uno scherzo tra amici).

A un classificatore basato sull'apprendimento automatico non si danno regole. Gli si danno migliaia di esempi con la risposta giusta, scritti da persone, e lui impara da solo quali schemi contano. Per questo riconosce un insulto che non ha mai visto, scritto in un modo che nessuno aveva messo in lista.

Cosa esce: un punteggio, non un verdetto

Per ogni categoria il classificatore restituisce una probabilità tra 0 e 1:

Messaggiotossicoinsultominaccia
«che bella partita stasera»0,010,000,00
«sei un idiota»0,980,970,01
«ti distruggo in finale 😄»0,120,030,08

Un punteggio non è una decisione. Per decidere lo si confronta con una soglia: sopra il messaggio viene segnalato, sotto no. Scegliere la soglia è un compromesso tra lasciar passare messaggi cattivi e segnalarne di buoni, e merita una guida tutta sua.

Più categorie insieme

Un messaggio può essere un insulto e una minaccia nello stesso momento. I modelli di moderazione di solito sono multi-etichetta: ogni categoria ha il suo punteggio indipendente, invece di scegliere un solo vincitore. In VigiMod, per esempio, un insulto, un attacco d'odio o una minaccia contano anche come tossici.

Come impara

L'addestramento funziona più o meno così:

  1. Il modello legge un esempio e produce i punteggi.
  2. I punteggi vengono confrontati con l'etichetta data dalle persone.
  3. I suoi numeri interni (i pesi) vengono corretti un poco, perché la volta dopo la risposta sia più vicina.
  4. Si ripete su centinaia di migliaia di esempi.

Alla fine il modello non ha imparato a memoria gli esempi: si è costruito una rappresentazione interna di cosa rende un messaggio offensivo, minaccioso o innocuo. I classificatori moderni partono da un modello linguistico che capisce già il testo in generale (vedi come leggono il testo i modelli linguistici) e poi vengono riaddestrati (fine-tuning) su esempi di moderazione.

Dove sbagliano i classificatori

  • Dati mai visti. Un modello addestrato soprattutto su chat in inglese è più debole in turco o in coreano.
  • Esempi sbilanciati. Se negli esempi le frasi innocenti con certi nomi o certe identità erano rare, il modello può associare quei nomi a qualcosa di negativo. Il bias ha una guida tutta sua.
  • Contesto mancante. «Alla fine muore lui» da solo è innocuo, in una chat su una serie TV è uno spoiler. I classificatori che leggono la conversazione se la cavano meglio.
  • Etichette sbagliate. Se gli esempi di addestramento sono etichettati male, il modello impara gli errori.

In pratica

Un buon classificatore è un primo lettore veloce e coerente. Valuta ogni messaggio in pochi millisecondi, così le persone devono guardare solo quelli dubbi. Considera i punteggi come indizi, scegli soglie adatte alla tua community e lascia a una persona le azioni gravi come i ban.

Mettiti alla prova

Rispondi alle domande, poi controlla le risposte.

  1. 1. Cosa restituisce un classificatore di moderazione per ogni categoria?
  2. 2. Perché un classificatore addestrato riconosce un insulto mai visto?
  3. 3. «Multi-etichetta» significa che…
  4. 4. Quale di questi NON è una causa tipica di errore?

Tutte le guide →

Guardalo su messaggi veri

Prova la demo dal vivo, o leggi come funziona l'API.