NER multilingue: sfide nel rilevamento delle PII
Aggiornato per il 2026
Il divario di precisione
I modelli NER addestrati in inglese raggiungono F1 dell'85–92% nei test standard. Applica gli stessi modelli a testi in arabo o cinese. La precisione crolla al 50–70%.
Per il rilevamento delle PII, questo divario è un problema critico. Un tasso di rilevamento del 70% significa che il 30% dei dati sensibili rimane invisibile.
Le cause non sono bug software. Derivano da come i sistemi di scrittura differiscono tra loro.
Quattro cause profonde
1. Confini delle parole
L'inglese separa le parole con spazi. La tokenizzazione è semplice.
Il cinese non usa spazi.
"张伟住在北京"
→ Segmentazione prima: ["张伟", "住在", "北京"]
Un modello non può classificare ciò che non riesce a individuare. La segmentazione deve precedere il NER.
L'arabo unisce le lettere all'interno delle parole. Le vocali brevi sono omesse. Il testo scorre da destra a sinistra.
"محمد يعيش في دبي"
→ Nessuna vocale breve, da destra a sinistra, lettere congiunte
2. Morfologia
I verbi inglesi hanno poche varianti. L'arabo utilizza un sistema di radici. Una singola radice genera decine di parole.
كتب (k-t-b, "scrivere")
→ كاتب (scrittore), كتاب (libro), مكتبة (biblioteca)
Il NER deve analizzare le radici per trovare i nomi nelle forme derivate.
3. Convenzioni per i nomi propri
I nomi latini seguono l'ordine Nome-Cognome. I nomi nelle lingue RTL concatenano legami familiari.
محمد بن عبد الله
(Muhammad figlio-di Abdullah)
I nomi cinesi mettono il cognome per primo. La maggior parte dei nomi è composta da due o tre caratteri.
张伟 (Zhang Wei) — 2 caratteri
欧阳修 (Ouyang Xiu) — 3 caratteri
Un modello costruito su pattern di nomi occidentali mancerà queste strutture.
4. Direzione del testo
Alcune lingue scorrono da destra a sinistra. Quando un testo RTL contiene un nome inglese, l'ordine visivo e l'ordine logico divergono. Si chiama testo BiDi e richiede un'analisi attenta.
Punteggi F1 per sistema di scrittura
| Lingua | Sistema di scrittura | Intervallo F1 | Difficoltà |
|---|---|---|---|
| Inglese | Latino | 85–92% | Bassa |
| Tedesco | Latino | 82–88% | Bassa |
| Francese | Latino | 80–87% | Bassa |
| Spagnolo | Latino | 81–86% | Bassa |
| Russo | Cirillico | 75–83% | Media |
| Arabo | Abjad | 55–75% | Alta |
| Cinese | Hanzi | 60–78% | Alta |
| Giapponese | Misto | 65–80% | Alta |
| Tailandese | Thai | 50–70% | Molto alta |
| Hindi | Devanagari | 60–75% | Alta |
I sistemi non latini e l'assenza di spazi tra le parole abbassano i punteggi in modo generalizzato.
Soluzione a tre livelli
Utilizziamo tre livelli per coprire 48 lingue e sistemi di scrittura.
Livello 1: spaCy — 25 lingue
Per le lingue con modelli robusti e consolidati. Include inglese, tedesco, francese, spagnolo, italiano, portoghese, olandese, polacco, russo e greco.
Livello 2: Stanza — lingue complesse
Stanford Stanza gestisce arabo, cinese, giapponese e coreano. Esegue la segmentazione delle parole e l'analisi morfologica prima del NER.
Livello 3: XLM-RoBERTa — lingue a basse risorse
Per le lingue prive di modelli dedicati. Tailandese, vietnamita, hindi, bengali, ebraico, turco e farsi rientrano qui. Gestisce testi in più lingue senza necessità di indicatori espliciti.
RTL e BiDi
I testi da destra a sinistra richiedono passaggi aggiuntivi rispetto alla semplice segmentazione.
La nostra pipeline:
- Normalizza il testo nell'ordine logico.
- Esegue il NER su quell'ordine.
- Rimappa le posizioni delle entità all'ordine visivo.
Rimoviamo i prefissi prima del NER e li ripristiniamo dopo.
"محمد" — solo il nome
"لمحمد" — "a Muhammad" (con prefisso)
Code-switching
I documenti reali spesso mescolano lingue in una stessa riga.
"El meeting con John es at 3pm"
"我今天跟John去shopping"
La nostra pipeline segmenta per lingua, applica il modello corretto a ciascuna parte, quindi unisce i risultati con la mappatura delle posizioni.
Benchmark interni
Risultati ottenuti da test interni su dati multilingue:
| Scenario | F1 |
|---|---|
| Solo inglese | 91% |
| Solo tedesco | 88% |
| Solo arabo | 79% |
| Solo cinese | 81% |
| Mix inglese-arabo | 83% |
| Mix inglese-cinese | 84% |
| Mix inglese-tedesco | 89% |
Note di configurazione
L'app desktop rileva automaticamente la lingua per ogni documento. Per file multilingue, elabora ogni segmento con il modello appropriato. Non è richiesto alcun intervento manuale.
Specifica la lingua nell'API quando la conosci:
{
"text": "محمد بن عبد الله",
"language": "ar"
}
Usa il rilevamento automatico quando non la conosci:
{
"text": "محمد بن عبد الله",
"language": "auto"
}
I pattern personalizzati devono coprire le cifre specifiche della lingua:
# ID dipendente in caratteri latini
EMP-[0-9]{6}
# ID dipendente in caratteri arabo-indiani
موظف-[٠-٩0-9]{6}
Consulta l'elenco completo delle entità. Per la configurazione API, visita la pagina delle funzionalità API. La nostra guida alla conformità GDPR spiega come le lacune nel rilevamento influiscano sul diritto alla protezione dei dati.
anonym.legal utilizza uno stack NER a tre livelli — spaCy, Stanza e XLM-RoBERTa — per coprire 48 lingue con rilevamento coerente delle PII.