Višejezični NER: Izazovi u detekciji PII
Ažurirano za 2026.
Jaz u tačnosti
NER modeli trenirani na engleskom postižu F1 od 85–92% na standardnim testovima. Primenite te iste modele na arapski ili kineski tekst. Tačnost pada na 50–70%.
Za rad sa PII podacima, taj jaz je problem. Stopa pogotka od 70% znači da 30% osetljivih podataka ostaje nevidljivo.
Uzroci nisu greške. Potiču iz načina na koji se sistemi pisanja razlikuju.
Četiri osnovna uzroka
1. Granice reči
Engleski razdvaja reči razmacima. Tokenizacija je jednostavna.
Kineski nema nikakve razmake.
"张伟住在北京"
→ Prvo podeli: ["张伟", "住在", "北京"]
Model ne može da označi ono što ne može da pronađe. Deljenje mora da prethodi NER-u.
Arapski spaja slova unutar reči. Kratki samoglasnici se izostavljaju. Tekst teče s desna na levo.
"محمد يعيش في دبي"
→ Bez kratkih samoglasnika, s desna na levo, spojena slova
2. Morfologija
Engleski glagoli se menjaju na nekoliko načina. Arapski koristi sistem korena. Jedan koren stvara desetine reči.
كتب (k-t-b, "pisati")
→ كاتب (pisac), كتاب (knjiga), مكتبة (biblioteka)
NER mora da analizira korenove kako bi pronašao imena u izvedenim oblicima reči.
3. Konvencije imenovanja
Latinska imena idu Ime pa Prezime. Imena u jezicima koji teku s desna na levo vezuju porodičnim vezama.
محمد بن عبد الله
(Muhammad sin Abdullaha)
Kineski stavlja porodično ime na prvo mesto. Većina imena su dugačka dva ili tri karaktera.
张伟 (Zhang Wei) — 2 karaktera
欧阳修 (Ouyang Xiu) — 3 karaktera
Model izgrađen na zapadnim obrascima imenovanja propustiće ove strukture.
4. Smer teksta
Neki jezici teku s desna na levo. Kada RTL tekst sadrži englesko ime, vizualni i logički redosled se razdvajaju. To se zove BiDi tekst. Zahteva pažljivo parsiranje.
F1 skorovi prema sistemu pisanja
| Jezik | Sistem pisanja | F1 raspon | Nivo |
|---|---|---|---|
| Engleski | Latinica | 85–92% | Nizak |
| Nemački | Latinica | 82–88% | Nizak |
| Francuski | Latinica | 80–87% | Nizak |
| Španski | Latinica | 81–86% | Nizak |
| Ruski | Ćirilica | 75–83% | Srednji |
| Arapski | Adžad | 55–75% | Visok |
| Kineski | Hanzi | 60–78% | Visok |
| Japanski | Mešoviti | 65–80% | Visok |
| Tajlandski | Tajlandski | 50–70% | Veoma visok |
| Hindi | Devanagari | 60–75% | Visok |
Ne-latinski sistemi i odsustvo razmaka između reči smanjuju skorove na svim nivoima.
Rešenje u tri nivoa
Koristimo tri nivoa za pokrivanje 48 jezika i sistema pisanja.
Nivo 1: spaCy — 25 jezika
Za jezike sa snažnim, testiranim modelima. Pokriva engleski, nemački, francuski, španski, italijanski, portugalski, holandski, poljski, ruski i grčki.
Nivo 2: Stanza — složeni jezici
Stanford Stanza obrađuje arapski, kineski, japanski i korejski. Pokreće deljenje reči i analizu korena pre NER-a.
Nivo 3: XLM-RoBERTa — jezici sa malo resursa
Za jezike bez namenskih modela. Tajlandski, vijetnamski, hindi, bengalski, hebrejski, turski i farsi idu ovde. Obrađuje tekst koji meša jezike bez potrebe za eksplicitnim oznakama.
RTL i BiDi
Tekst koji teče s desna na levo zahteva dodatne korake pored deljenja.
Naš pipeline:
- Normalizuje tekst na logički redosled.
- Pokreće NER na tom redosledu.
- Mapira pozicije entiteta nazad na vizualni redosled.
Skidamo priložene prefikse pre NER-a i vraćamo ih posle.
"محمد" — samo ime
"لمحمد" — "za Muhameda" (prefiks uključen)
Mešanje kodova
Pravi dokumenti često mešaju jezike u jednoj liniji.
"El meeting con John es at 3pm"
"我今天跟John去shopping"
Naš pipeline deli po jeziku. Pokreće odgovarajući model na svakom delu. Zatim spaja rezultate sa mapiranjem pozicija.
Interni benchmark testovi
Rezultati iz internih testova na višejezičnim podacima:
| Scenario | F1 |
|---|---|
| Samo engleski | 91% |
| Samo nemački | 88% |
| Samo arapski | 79% |
| Samo kineski | 81% |
| Engleski-arapski miks | 83% |
| Engleski-kineski miks | 84% |
| Engleski-nemački miks | 89% |
Napomene o podešavanju
Desktop aplikacija automatski detektuje jezik po dokumentu. Za fajlove na mešovitim jezicima, obrađuje svaki segment sa odgovarajućim modelom. Nije potreban ručni korak.
Postavite jezik u API-ju kada ga znate:
{
"text": "محمد بن عبد الله",
"language": "ar"
}
Koristite automatsko prepoznavanje kada ga ne znate:
{
"text": "محمد بن عبد الله",
"language": "auto"
}
Prilagođeni šabloni treba da pokrivaju cifre specifične za lokale:
# Latinski ID zaposlenog
EMP-[0-9]{6}
# Arapski ID zaposlenog (uključuje arapsko-indijanske cifre)
موظف-[٠-٩0-9]{6}
Pogledajte kompletan spisak entiteta. Za podešavanje API-ja, posetite stranicu o funkcionalnostima API-ja. Naš vodič za GDPR usklađenost pokriva kako praznine u detekciji utiču na zakon o zaštiti podataka.
anonym.legal koristi tronivovski NER stek — spaCy, Stanza i XLM-RoBERTa — za pokrivanje 48 jezika sa doslednom detekcijom PII.