NER Multilingv: Provocări în Detectarea PII
Actualizat pentru 2026
Decalajul de Acuratețe
Modelele NER antrenate pe engleză ating 85–92% F1 pe testele standard. Aplică aceleași modele pe text arab sau chinezesc. Acuratețea scade la 50–70%.
Pentru lucrul cu PII, acel decalaj este o problemă. O rată de detecție de 70% înseamnă că 30% din datele sensibile rămân nevăzute.
Cauzele nu sunt erori de programare. Ele vin din modul în care diferă sistemele de scriere.
Patru Cauze Principale
1. Limitele Cuvintelor
Engleza separă cuvintele cu spații. Tokenizarea este simplă.
Chineza nu are spații deloc.
"张伟住在北京"
→ Împarte mai întâi: ["张伟", "住在", "北京"]
Un model nu poate eticheta ce nu poate găsi. Împărțirea trebuie să preceadă NER.
Araba leagă literele în interiorul unui cuvânt. Vocalele scurte sunt omise. Textul curge de la dreapta la stânga.
"محمد يعيش في دبي"
→ Fără vocale scurte, dreapta-la-stânga, litere legate
2. Morfologia
Verbele engleze se modifică în câteva moduri. Araba folosește un sistem de rădăcini. O rădăcină creează zeci de cuvinte.
كتب (k-t-b, „a scrie”)
→ كاتب (scriitor), كتاب (carte), مكتبة (bibliotecă)
NER trebuie să parseze rădăcinile pentru a găsi numele în formele derivate ale cuvintelor.
3. Convențiile de Denumire
Numele latine merg Prenume apoi Nume de Familie. Numele în limbile RTL înlănțuie legături de familie.
محمد بن عبد الله
(Muhammad fiul lui Abdullah)
Numele chinezești pun numele de familie pe primul loc. Majoritatea numelor au două sau trei caractere.
张伟 (Zhang Wei) — 2 caractere
欧阳修 (Ouyang Xiu) — 3 caractere
Un model construit pe tipare de denumire occidentale va rata aceste structuri.
4. Direcția Textului
Unele limbi curg de la dreapta la stânga. Când textul RTL conține un nume englezesc, ordinea vizuală și cea logică se despart. Acesta se numește text BiDi. Necesită parsare atentă.
Scoruri F1 pe Sistem de Scriere
| Limbă | Sistem de Scriere | Interval F1 | Nivel |
|---|---|---|---|
| Engleză | Latin | 85–92% | Scăzut |
| Germană | Latin | 82–88% | Scăzut |
| Franceză | Latin | 80–87% | Scăzut |
| Spaniolă | Latin | 81–86% | Scăzut |
| Rusă | Chirilic | 75–83% | Mediu |
| Arabă | Abjad | 55–75% | Ridicat |
| Chineză | Hanzi | 60–78% | Ridicat |
| Japoneză | Mixt | 65–80% | Ridicat |
| Thailandeză | Thai | 50–70% | Foarte Ridicat |
| Hindi | Devanagari | 60–75% | Ridicat |
Sistemele non-latine și lipsa spațiilor între cuvinte reduc scorurile în general.
Soluție pe Trei Niveluri
Folosim trei niveluri pentru a acoperi 48 de limbi și sisteme de scriere.
Nivelul 1: spaCy — 25 de Limbi
Pentru limbi cu modele puternice, testate. Acoperă engleza, germana, franceza, spaniola, italiana, portugheza, olandeza, poloneza, rusa și greaca.
Nivelul 2: Stanza — Limbi Complexe
Stanford Stanza gestionează araba, chineza, japoneza și coreana. Rulează împărțiri de cuvinte și analiză de rădăcini înainte de NER.
Nivelul 3: XLM-RoBERTa — Limbi cu Resurse Reduse
Pentru limbi fără modele dedicate. Thailandeza, vietnameza, hindi, bengali, ebraica, turca și persana intră aici. Gestionează text mixt multilingv fără marcaje explicite.
RTL și BiDi
Textul de la dreapta la stânga necesită pași suplimentari față de simpla împărțire.
Pipeline-ul nostru:
- Normalizează textul la ordinea logică.
- Rulează NER pe acea ordine.
- Mapează pozițiile entităților înapoi la ordinea vizuală.
Strip-uim prefixele atașate înainte de NER și le adăugăm înapoi după.
"محمد" — doar numele
"لمحمد" — „lui Muhammad” (prefix atașat)
Comutarea de Cod
Documentele reale amestecă adesea limbi pe aceeași linie.
"El meeting con John es at 3pm"
"我今天跟John去shopping"
Pipeline-ul nostru împarte pe limbi. Rulează modelul potrivit pe fiecare parte. Apoi unește rezultatele cu maparea pozițiilor.
Benchmarkuri Interne
Rezultate din teste interne pe date multilingve mixte:
| Scenariu | F1 |
|---|---|
| Numai engleză | 91% |
| Numai germană | 88% |
| Numai arabă | 79% |
| Numai chineză | 81% |
| Mix engleză-arabă | 83% |
| Mix engleză-chineză | 84% |
| Mix engleză-germană | 89% |
Note de Configurare
Aplicația desktop detectează automat limba per document. Pentru fișiere cu limbi mixte, procesează fiecare segment cu modelul potrivit. Nu este necesar niciun pas manual.
Setează limba în API când o cunoști:
{
"text": "محمد بن عبد الله",
"language": "ar"
}
Folosește auto-detecția când nu o cunoști:
{
"text": "محمد بن عبد الله",
"language": "auto"
}
Tiparele personalizate ar trebui să acopere cifrele specifice localei:
# ID angajat latin
EMP-[0-9]{6}
# ID angajat arab (include cifre arabo-indice)
موظف-[٠-٩0-9]{6}
Vezi lista completă de entități. Pentru configurarea API, vizitează pagina de funcționalități API. Ghidul nostru de conformitate GDPR acoperă modul în care lacunele de detecție afectează legea privind protecția datelor.
anonym.legal folosește un stack NER pe trei niveluri — spaCy, Stanza și XLM-RoBERTa — pentru a acoperi 48 de limbi cu detectare PII consistentă.