Višejezični NER: Izazovi u detekciji osobnih podataka
Ažurirano za 2026.
Jaz u točnosti
NER modeli obučeni na engleskom dosežu 85–92% F1 na standardnim testovima. Primijenite te iste modele na arapski ili kineski tekst. Točnost pada na 50–70%.
Za rad s osobnim podacima, taj jaz je problem. Stopa pogodaka od 70% znači da 30% osjetljivih podataka ostaje neprimijećeno.
Uzroci nisu greške. Dolaze iz razlika u načinu pisanja.
Četiri korijenskih uzroka
1. Granice riječi
Engleski dijeli riječi razmacima. Tokenizacija je jednostavna.
Kineski nema nikakvih razmaka.
"张伟住在北京"
→ Najprije podijeliti: ["张伟", "住在", "北京"]
Model ne može označiti ono što ne može pronaći. Razdvajanje mora doći prije NER-a.
Arapski spaja slova unutar riječi. Kratki samoglasnici se izostavljaju. Tekst teče s desna na lijevo.
"محمد يعيش في دبي"
→ Bez kratkih samoglasnika, s desna na lijevo, spojena slova
2. Morfologija
Engleski glagoli se mijenjaju na nekoliko načina. Arapski koristi sustav korijena. Jedan korijen stvara desetke riječi.
كتب (k-t-b, "pisati")
→ كاتب (pisac), كتاب (knjiga), مكتبة (knjižnica)
NER mora analizirati korijene kako bi pronašao imena u izvedenim oblicima riječi.
3. Konvencije imenovanja
Latinska imena idu prvo Ime pa Prezime. Imena u jezicima koji se pišu s desna na lijevo nižu obiteljske veze.
محمد بن عبد الله
(Muhammad sin-od Abdullah)
Kineska imena stavljaju obiteljsko ime prvo. Većina imena je duga dva ili tri znaka.
张伟 (Zhang Wei) — 2 znaka
欧阳修 (Ouyang Xiu) — 3 znaka
Model izgrađen na zapadnim uzorcima imenovanja propustit će te strukture.
4. Smjer teksta
Neki jezici teku s desna na lijevo. Kada RTL tekst sadrži englesko ime, vizualni i logički redoslijed se razilaze. To se naziva BiDi tekst. Zahtijeva pažljivo raščlanjivanje.
F1 ocjene po pismu
| Jezik | Pismo | F1 raspon | Razina |
|---|---|---|---|
| Engleski | Latinica | 85–92% | Niska |
| Njemački | Latinica | 82–88% | Niska |
| Francuski | Latinica | 80–87% | Niska |
| Španjolski | Latinica | 81–86% | Niska |
| Ruski | Ćirilica | 75–83% | Srednja |
| Arapski | Abjad | 55–75% | Visoka |
| Kineski | Hanzi | 60–78% | Visoka |
| Japanski | Mješovito | 65–80% | Visoka |
| Tajlandski | Tajlandsko | 50–70% | Vrlo visoka |
| Hindi | Devanagari | 60–75% | Visoka |
Ne-latinska pisma i nedostajuće granice između riječi snižavaju ocjene.
Trorazinska rješenja
Koristimo tri razine za pokrivanje 48 jezika i pisama.
Razina 1: spaCy — 25 jezika
Za jezike s jakim, testiranim modelima. Pokriva engleski, njemački, francuski, španjolski, talijanski, portugalski, nizozemski, poljski, ruski i grčki.
Razina 2: Stanza — složeni jezici
Stanford Stanza rukuje arapskim, kineskim, japanskim i korejskim. Provodi dijeljenje riječi i analizu korijena prije NER-a.
Razina 3: XLM-RoBERTa — jezici s manje resursa
Za jezike bez namjenskih modela. Tajlandski, vijetnamski, hindi, bengalski, hebrejski, turski i perzijski idu ovdje. Rukuje mješovitim jezičnim tekstovima bez potrebe za eksplicitnim oznakama.
RTL i BiDi
Tekst koji teče s desna na lijevo zahtijeva dodatne korake.
Naš cjevovod:
- Normalizira tekst na logički redoslijed.
- Pokušava NER na tom redoslijedu.
- Preslikava pozicije entiteta natrag na vizualni redoslijed.
Uklanjamo priložene prefikse prije NER-a i dodajemo ih natrag nakon.
"محمد" — samo ime
"لمحمد" — "za Muhammada" (prefiks dodan)
Prebacivanje između kodova
Pravi dokumenti često miješaju jezike u jednom retku.
"El meeting con John es at 3pm"
"我今天跟John去shopping"
Naš cjevovod dijeli po jeziku. Na svakom dijelu pokušava odgovarajući model. Zatim spaja rezultate s preslikavanjem pozicija.
Interni benchmarci
Rezultati internih testova na višejezičnim podacima:
| Scenarij | F1 |
|---|---|
| Samo engleski | 91% |
| Samo njemački | 88% |
| Samo arapski | 79% |
| Samo kineski | 81% |
| Mješoviti engleski-arapski | 83% |
| Mješoviti engleski-kineski | 84% |
| Mješoviti engleski-njemački | 89% |
Napomene o postavljanju
Desktop aplikacija automatski otkriva jezik po dokumentu. Za datoteke s miješanim jezicima, obrađuje svaki segment s odgovarajućim modelom. Nije potreban ručni korak.
Postavite jezik u API-ju kada ga znate:
{
"text": "محمد بن عبد الله",
"language": "ar"
}
Koristite automatsko otkrivanje kada ga ne znate:
{
"text": "محمد بن عبد الله",
"language": "auto"
}
Prilagođeni uzorci trebaju pokrivati cifre specifične za lokalizaciju:
# Latinički ID zaposlenika
EMP-[0-9]{6}
# Arapski ID zaposlenika (uključuje arapsko-indijske cifre)
موظف-[٠-٩0-9]{6}
Pogledajte puni popis entiteta. Za postavljanje API-ja, posjetite stranicu o API značajkama. Naš vodič o GDPR usklađenosti pokriva kako praznine u detekciji utječu na pravo zaštite podataka.
anonym.legal koristi trostupanjski NER skup — spaCy, Stanza i XLM-RoBERTa — kako bi pokrio 48 jezika uz dosljednu detekciju osobnih podataka.