La Sfida del NER Multilingue
I modelli di Riconoscimento delle Entità Nominate (NER) addestrati in inglese ottengono risultati impressionanti: punteggi F1 dell'85-92% su benchmark standard. Applicare quegli stessi modelli all'arabo o al cinese? L'accuratezza spesso scende al 50-70%.
Per la rilevazione PII, questo divario è critico. Un tasso di rilevazione del 70% significa che il 30% dei dati sensibili non è protetto.
Perché i Modelli Inglesi Falliscono
1. Confini delle Parole
Inglese: Le parole sono separate da spazi.
"John Smith lives in New York"
→ ["John", "Smith", "lives", "in", "New", "York"]
Cinese: Nessun confine di parola.
"张伟住在北京"
→ Necessita di segmentazione prima: ["张伟", "住在", "北京"]
Arabo: Le parole si connettono e le vocali brevi non sono scritte.
"محمد يعيش في دبي"
→ Scrittura connessa, da destra a sinistra, vocali omesse
Le regole di tokenizzazione inglesi semplicemente non si applicano.
2. Complessità Morfologica
Morfologia inglese: Relativamente semplice
run → runs, running, ran
Morfologia araba: Estremamente complessa (sistema radice-modello)
كتب (k-t-b, "radice scrivere")
→ كاتب (scrittore), كتاب (libro), مكتبة (biblioteca), يكتب (scrive)
Una singola radice araba genera decine di parole correlate. I modelli NER devono comprendere questo sistema di derivazione.
3. Convenzioni sui Nomi
Nomi inglesi: Nome Cognome
John Smith, Mary Johnson
Nomi arabi: Componenti multipli
محمد بن عبد الله بن عبد المطلب
(Muhammad figlio di Abdullah figlio di Abdul-Muttalib)
Nomi cinesi: Cognome prima, spesso 2-3 caratteri in totale
张伟 (Zhang Wei) - 2 caratteri
欧阳修 (Ouyang Xiu) - 3 caratteri
4. Direzione della Scrittura
Inglese: Da sinistra a destra (LTR) Arabo/Ebraico: Da destra a sinistra (RTL) Testo misto: Bidirezionale (BiDi) - estremamente complesso
Quando un nome inglese appare in un testo arabo:
التقيت بـ John Smith في المؤتمر
(Ho incontrato John Smith alla conferenza)
L'ordine di rendering, l'ordine logico e l'ordine di visualizzazione differiscono tutti.
Accuratezza per Lingua
Le prestazioni NER nel mondo reale variano drasticamente:
| Lingua | Scrittura | Intervallo F1-Score | Livello di Sfida |
|---|---|---|---|
| Inglese | Latino | 85-92% | Basso |
| Tedesco | Latino | 82-88% | Basso |
| Francese | Latino | 80-87% | Basso |
| Spagnolo | Latino | 81-86% | Basso |
| Russo | Cirillico | 75-83% | Medio |
| Arabo | Arabo | 55-75% | Alto |
| Cinese | Hanzi | 60-78% | Alto |
| Giapponese | Misto | 65-80% | Alto |
| Thai | Thai | 50-70% | Molto Alto |
| Hindi | Devanagari | 60-75% | Alto |
Le lingue con morfologia complessa, scritture non latine o senza confini di parola mostrano costantemente prestazioni inferiori.
L'Approccio a Tre Livelli di anonym.legal
Risolviamo il NER multilingue attraverso tre livelli specializzati:
Livello 1: spaCy (25 lingue)
Per lingue ad alta risorsa con buoni modelli:
- Inglese, Tedesco, Francese, Spagnolo, Italiano, Portoghese
- Olandese, Polacco, Russo, Greco
- E altre 15 con accuratezza affidabile
Livello 2: Stanza (7 lingue)
Per lingue con morfologia complessa:
- Arabo (morfologia radice-modello)
- Cinese (richiesta di segmentazione delle parole)
- Giapponese (script multipli)
- Coreano (agglutinativo)
- E altre 3
Livello 3: XLM-RoBERTa (16 lingue)
Per lingue a bassa risorsa senza modelli dedicati:
- Thai, Vietnamita, Indonesiano
- Hindi, Bengali, Tamil
- Ebraico, Turco, Farsi
- E altro
Come Funziona
Input di testo con rilevamento della lingua
↓
[Router di Lingua]
↓
┌───────┴───────┐
↓ ↓
Alta risorsa Complesso/Bassa risorsa
(spaCy) (Stanza/XLM-RoBERTa)
↓ ↓
└───────┬───────┘
↓
[Overlay Regex per dati strutturati]
↓
[Fusione della fiducia]
↓
Entità finali
Overlay Regex
Alcuni modelli sono indipendenti dalla lingua:
- Indirizzi email:
[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,} - Carte di credito:
\d{4}[\s-]?\d{4}[\s-]?\d{4}[\s-]?\d{4} - Numeri di telefono: Vari modelli per paese
Applichiamo prima il regex per i dati strutturati, indipendentemente dalla lingua.
Gestione degli Script RTL
Le lingue da destra a sinistra richiedono una gestione speciale:
Algoritmo di Testo Bidirezionale
Quando l'arabo contiene inglese:
Visivo: المؤتمر في John Smith بـ التقيت
Logico: التقيت بـ John Smith في المؤتمر
Il nostro processo:
- Normalizza all'ordine logico
- Esegui NER nell'ordine logico
- Mappa le posizioni delle entità di nuovo all'ordine visivo
- Restituisci posizioni coerenti per qualsiasi rendering
Rilevamento dei Confini delle Entità
I confini delle entità arabe sono complessi:
"محمد" - solo il nome
"لمحمد" - "a Muhammad" (preposizione attaccata)
"ومحمد" - "e Muhammad" (congiunzione attaccata)
Rimuoviamo i suffissi prima del NER e li riattacchiamo dopo.
Code-Switching
Il testo reale spesso mescola lingue:
"El meeting con John es at 3pm"
(miscela spagnolo-inglese)
"我今天跟John去shopping"
(miscela cinese-inglese)
Il nostro approccio:
- Segmenta il testo per lingua
- Elabora ogni segmento con il modello appropriato
- Unisci i risultati con mappatura delle posizioni
Benchmark delle Prestazioni
Test interni su dataset multilingue:
| Scenario | F1-Score |
|---|---|
| Solo inglese | 91% |
| Solo tedesco | 88% |
| Solo arabo | 79% |
| Solo cinese | 81% |
| Mix inglese-arabo | 83% |
| Mix inglese-cinese | 84% |
| Mix inglese-tedesco | 89% |
Il nostro approccio ibrido mantiene alta accuratezza anche su lingue difficili.
Consigli per l'Implementazione
Per gli Utenti API
Specifica la lingua quando nota:
{
"text": "محمد بن عبد الله",
"language": "ar"
}
Lasciaci rilevare automaticamente quando sconosciuto:
{
"text": "محمد بن عبد الله",
"language": "auto"
}
Per gli Utenti dell'App Desktop
L'app rileva automaticamente la lingua per documento. Per file multilingue, elabora ogni segmento in modo appropriato.
Per Tipi di Entità Personalizzati
I modelli personalizzati dovrebbero tenere conto degli script:
# ID dipendente inglese
EMP-[0-9]{6}
# ID dipendente arabo (include numeri arabi)
موظف-[٠-٩0-9]{6}
Conclusione
I modelli NER addestrati in inglese falliscono su testi non inglesi perché le lingue differiscono fondamentalmente in:
- Confini delle parole (o mancanza di essi)
- Complessità morfologica
- Direzione della scrittura
- Convenzioni sui nomi
Una rilevazione PII multilingue efficace richiede:
- Modelli specifici per lingua per script complessi
- Modelli regex per dati strutturati
- Gestione adeguata RTL/BiDi
- Supporto per code-switching
anonym.legal supporta 48 lingue attraverso il nostro approccio a tre livelli, raggiungendo un'accuratezza coerente in tutte.
Provalo tu stesso:
Fonti: