Come misuriamo l’IA di Anonimatum in 10 lingue: corpus, recall e precisione

Uno strumento di anonimizzazione si giudica da ciò che gli sfugge. Per questo, ogni volta che l’IA di Anonimatum cambia, la mettiamo alla prova su un corpus di 6123 documenti in 10 lingue (spagnolo, catalano, galiziano, basco, inglese, francese, tedesco, italiano, portoghese e rumeno) e confrontiamo ciò che rileva con ciò che dovrebbe rilevare. Questo articolo spiega cosa c’è nel corpus, come misuriamo e quali sono i numeri di oggi, compresi quelli che non ci soddisfano ancora.
Cosa contiene il corpus di test
Il corpus mescola due tipi di documenti. Quelli reali (4805) sono in gran parte pubblicazioni di enti pubblici con licenza di riutilizzo: gazzette e bollettini ufficiali, sentenze e ordinanze, decisioni delle autorità per la protezione dei dati e per la trasparenza, verbali, convenzioni e normativa dell’Unione europea. Quelli sintetici (1318) li generiamo con dati inventati per coprire ciò che nei reali compare poco: buste paga, fatture, contratti, referti medici, moduli, e-mail, fogli di calcolo e file Word od OpenDocument con impaginazioni complesse. Tra questi ci sono fatture in ogni forma: PDF con testo, scansionate, fotografate con il telefono, in Word ed Excel, allegate a un’e-mail e fatture elettroniche in XML.
1272 documenti sono scansioni: prima di cercare dati personali passano dall’OCR con il modello della lingua del documento. Ci sono pagine storte o ruotate, timbri, macchie, fax, foto scattate con il telefono e testo scritto a mano, perché è lì che l’anonimizzazione fallisce nella pratica (ne parliamo in i rischi dell’OCR nei documenti scansionati).
| Lingua | Documenti | Scansioni | Tipi di documento | Reali | Sintetici | Rivisti a mano |
|---|---|---|---|---|---|---|
| Spagnolo | 645 | 114 | 43 | 515 | 130 | 84 |
| Catalano | 615 | 143 | 38 | 485 | 130 | 72 |
| Galiziano | 573 | 101 | 35 | 443 | 130 | 71 |
| Basco | 575 | 112 | 52 | 445 | 130 | 53 |
| Inglese | 627 | 110 | 41 | 491 | 136 | 56 |
| Francese | 637 | 208 | 39 | 501 | 136 | 62 |
| Tedesco | 666 | 107 | 39 | 530 | 136 | 61 |
| Italiano | 635 | 103 | 45 | 499 | 136 | 55 |
| Portoghese | 580 | 98 | 34 | 444 | 136 | 57 |
| Rumeno | 570 | 176 | 54 | 452 | 118 | 32 |
| Totale | 6123 | 1272 | — | 4805 | 1318 | 603 |
Come misuriamo: recall e precisione
- Recall (richiamo): di tutti i dati personali presenti in un documento, quale parte rileva l’IA. Un recall di 0,95 significa che ne sfuggono 5 su 100. È la metrica che conta di più nell’anonimizzazione: ciò che non viene rilevato viene pubblicato.
- Precisione: di tutto ciò che l’IA segna, quale parte è davvero un dato personale. Una precisione bassa non fa trapelare dati, ma costringe a togliere segni di troppo durante la revisione.
- Identificativi strutturati (numeri di documento d’identità, codici fiscali, IBAN…): devono essere rilevati tutti nei documenti con livello di testo; nelle scansioni si tollera che l’OCR legga male qualche cifra.
Rivisti a mano o con annotazione automatica
Per misurare il recall bisogna sapere quali dati personali contiene ogni documento. Per i sintetici lo sappiamo perché li abbiamo inventati. Per i reali ci sono due livelli:
Documenti reali rivisti a mano (603)
Una persona segna tutto ciò che andrebbe anonimizzato: nomi, indirizzi, telefoni, identificativi e aziende. È la misura più affidabile e quella che esigiamo: almeno 20 documenti per lingua e un recall minimo di 0,95 (0,92 per il basco, per ora).
Documenti reali con annotazione automatica (4182)
Sono segnati solo i nomi forniti dai metadati della pubblicazione stessa, come i componenti di un collegio giudicante o il relatore. Non è un’annotazione completa, ma copre migliaia di documenti e punta ai casi difficili: firme nelle scansioni e nomi isolati senza contesto.
Per questo diamo due valori di recall sui reali: quello dei rivisti a mano, che rispecchia meglio un documento completo, e quello di tutti i reali (a mano più annotazione automatica), più severo perché concentra i nomi proprio dove è più facile sbagliare. La precisione si misura sui sintetici e sui rivisti a mano, dove tutto è segnato.
Risultati per lingua
Dati dell’esecuzione n. 18 dei test dell’IA, del 21 ottobre 2026. La precisione è compresa tra 0,966 e 0,993 in tutte le lingue.
- Reali rivisti a mano
- Tutti i reali (a mano + automatica)
- Spagnolo
- Reali rivisti a mano: 0,985Tutti i reali (a mano + automatica): 0,916
- Catalano
- Reali rivisti a mano: 0,957Tutti i reali (a mano + automatica): 0,920
- Galiziano
- Reali rivisti a mano: 0,956Tutti i reali (a mano + automatica): 0,944
- Basco
- Reali rivisti a mano: 0,921Tutti i reali (a mano + automatica): 0,975
- Inglese
- Reali rivisti a mano: 0,981Tutti i reali (a mano + automatica): 0,925
- Francese
- Reali rivisti a mano: 0,981Tutti i reali (a mano + automatica): 0,960
- Tedesco
- Reali rivisti a mano: 0,987Tutti i reali (a mano + automatica): 0,985
- Italiano
- Reali rivisti a mano: 1,000Tutti i reali (a mano + automatica): 0,899
- Portoghese
- Reali rivisti a mano: 0,994Tutti i reali (a mano + automatica): 0,870
- Rumeno
- Reali rivisti a mano: 0,974Tutti i reali (a mano + automatica): 0,855
| Lingua | Recall sintetici | Recall rivisti a mano | Recall tutti i reali | Precisione |
|---|---|---|---|---|
| Spagnolo | 0,982 | 0,985 | 0,916 | 0,966 |
| Catalano | 0,974 | 0,957 | 0,920 | 0,974 |
| Galiziano | 0,977 | 0,956 | 0,944 | 0,989 |
| Basco | 0,966 | 0,921 | 0,975 | 0,985 |
| Inglese | 0,987 | 0,981 | 0,925 | 0,984 |
| Francese | 0,978 | 0,981 | 0,960 | 0,991 |
| Tedesco | 0,986 | 0,987 | 0,985 | 0,992 |
| Italiano | 0,979 | 1,000 | 0,899 | 0,990 |
| Portoghese | 0,986 | 0,994 | 0,870 | 0,989 |
| Rumeno | 0,963 | 0,974 | 0,855 | 0,993 |
Sui reali rivisti a mano, 9 lingue su 10 arrivano a 0,95 o più; il valore più basso è 0,921 (basco). Su tutti i reali i valori più bassi sono 0,855 (rumeno), 0,870 (portoghese) e 0,899 (italiano). Nei sintetici, che raccolgono i casi più difficili del corpus (scansioni scritte a mano, fax, macchie, pagine ruotate), il valore più basso è 0,963 (rumeno).
Cosa è cambiato a ottobre 2026
Prima dei miglioramenti di questo mese i numeri erano decisamente peggiori. Per le lingue della penisola iberica confrontiamo il recall sui reali rivisti a mano; per le altre, quello su tutti i reali, dove stava il problema.
- Prima dei miglioramenti
- Ora
- Spagnolo
- Prima dei miglioramenti: 0,921Ora: 0,985
- Catalano
- Prima dei miglioramenti: 0,814Ora: 0,957
- Galiziano
- Prima dei miglioramenti: 0,895Ora: 0,956
- Basco
- Prima dei miglioramenti: 0,597Ora: 0,921
- Prima dei miglioramenti
- Ora
- Inglese
- Prima dei miglioramenti: 0,832Ora: 0,925
- Francese
- Prima dei miglioramenti: 0,809Ora: 0,960
- Tedesco
- Prima dei miglioramenti: 0,745Ora: 0,985
- Italiano
- Prima dei miglioramenti: 0,846Ora: 0,899
- Portoghese
- Prima dei miglioramenti: 0,769Ora: 0,870
- Rumeno
- Prima dei miglioramenti: 0,412Ora: 0,855
- Basco (0,597 → 0,921): indirizzi con il tipo di via dopo il nome della strada («kalea», «hiribidea», «solairua»), firme in maiuscolo, appellativi come «andrea» e «jauna» e forme giuridiche come «S. Koop.» o «Fundazioa».
- Francese, tedesco, italiano, portoghese, inglese e rumeno (il rumeno da 0,412 a 0,855): appellativi davanti al nome, composizione dei collegi giudicanti, elenchi di nomi, codice fiscale, indirizzi e forme giuridiche di ogni paese.
- Nessun passo indietro: ogni miglioramento si prova sul corpus completo, quindi ciò che guadagna una lingua non può farlo perdere a un’altra.
Cosa resta da migliorare
Ciò che sfugge oggi si concentra in due casi, visibili soprattutto nel valore di tutti i reali:
- Nomi letti male dall’OCR. In una scansione un nome può uscire attaccato alla parola vicina, spezzato con un trattino a fine riga o con lettere scambiate. Se l’OCR non lo legge come un nome, l’IA non lo riconosce.
- Nomi isolati senza contesto. Un cognome poco comune in un elenco, senza appellativo, carica o verbo accanto, è difficile da distinguere da una parola qualsiasi. È ciò che separa di più i due valori nelle lingue con il recall più basso su tutti i reali.
- In basco, inoltre, cognomi spezzati con la desinenza attaccata e nomi stranieri. Il suo minimo provvisorio di 0,92 può solo salire, fino allo 0,95 delle altre lingue.
Nel frattempo la risposta pratica resta la stessa: il rilevamento automatico propone e una persona rivede prima di applicare, soprattutto con le scansioni. L’anonimizzazione visiva per aree copre ciò che l’OCR non riesce a leggere.
Si esegue a ogni modifica dell’IA
Questi test non sono una foto per il blog. Il corpus completo passa in integrazione continua a ogni modifica dell’IA, prima che arrivi in produzione: si estrae il testo (con OCR per le scansioni), si rilevano i dati personali e si confronta il risultato con quello atteso. Ogni lingua ha un minimo di recall e di precisione che può solo salire; una modifica che scende sotto non viene integrata. I numeri di questo articolo vengono da quei report e li aggiorneremo quando cambieranno.
Domande frequenti
Che cosa significa un recall di 0,98?
Che su 100 dati personali presenti nei documenti l’IA ne rileva 98. Gli altri 2 devono emergere nella revisione umana prima di applicare l’anonimizzazione.
Perché il recall su tutti i reali è più basso che sui rivisti a mano?
Perché l’annotazione automatica segna solo i nomi forniti dalla pubblicazione (componenti di un collegio, relatori…), che spesso stanno in firme scansionate o in elenchi senza contesto, proprio dove il rilevamento sbaglia di più. I rivisti a mano misurano il documento intero.
Viene pubblicato qualche documento del corpus?
No. Pubblichiamo solo conteggi e percentuali per lingua. Nessun documento, testo, nome o dato personale del corpus esce dai test.
