Mitmekeelne NER: väljakutsed isikuandmete tuvastamisel
Uuendatud 2026. aastaks
Täpsuse lõhe
Inglise keele peal treenitud NER-mudelid saavutavad standardtestides 85–92% F1. Rakenda samu mudeleid araabia või hiina tekstile. Täpsus langeb 50–70%-le.
Isikuandmete töö jaoks on see lõhe probleem. 70% tabamismäär tähendab, et 30% tundlikest andmetest jääb märkamata.
Põhjused pole vead. Need tulenevad sellest, kuidas kirjasüsteemid erinevad.
Neli juurpõhjust
1. Sõnapiirid
Inglise keel eraldab sõnad tühikutega. Tokeniseerimine on lihtne.
Hiina keeles pole tühikuid üldse.
"张伟住在北京"
→ Jagamine esmalt: ["张伟", "住在", "北京"]
Mudel ei suuda märgistada seda, mida ta ei leia. Jagamine peab tulema enne NER-i.
Araabia keel ühendab tähti sõna sees. Lühikesed vokaalid jäetakse välja. Tekst jookseb paremalt vasakule.
"محمد يعيش في دبي"
→ Lühikesed vokaalid puuduvad, parem-vasak suund, seotud tähed
2. Morfoloogia
Inglise verbid muutuvad mõnel viisil. Araabia keel kasutab juurte süsteemi. Üks juur loob kümneid sõnu.
كتب (k-t-b, "kirjutama")
→ كاتب (kirjutaja), كتاب (raamat), مكتبة (raamatukogu)
NER peab juureid parsima, et leida nimesid tuletatud sõnavormidest.
3. Nimekonventsioonid
Ladina nimed käivad Eesnimi siis Perekonnanimi järjekorras. RTL-keeltes ahelatatakse perekondlikud lingid.
محمد بن عبد الله
(Muhammad, Abdullahi poeg)
Hiina nimed panevad perekonnanimme esikohale. Enamik nimesid on kaks kuni kolm märki pikad.
张伟 (Zhang Wei) — 2 märki
欧阳修 (Ouyang Xiu) — 3 märki
Lääne nimemustritel põhinev mudel jätab need struktuurid vahele.
4. Teksti suund
Mõned keeled kulgevad paremalt vasakule. Kui RTL-tekst sisaldab ingliskeelset nime, eralduvad visuaalne järjekord ja loogiline järjekord. Seda nimetatakse BiDi-tekstiks. See nõuab hoolikat parsimist.
F1-skoorid kirjasüsteemi järgi
| Keel | Kirjasüsteem | F1-vahemik | Tase |
|---|---|---|---|
| Inglise | Ladina | 85–92% | Madal |
| Saksa | Ladina | 82–88% | Madal |
| Prantsuse | Ladina | 80–87% | Madal |
| Hispaania | Ladina | 81–86% | Madal |
| Vene | Kirillitsa | 75–83% | Keskmine |
| Araabia | Abdžad | 55–75% | Kõrge |
| Hiina | Hanzi | 60–78% | Kõrge |
| Jaapani | Segatud | 65–80% | Kõrge |
| Tai | Tai | 50–70% | Väga kõrge |
| Hindi | Devanagari | 60–75% | Kõrge |
Mitte-ladina süsteemid ja puuduvad sõnapiirid langetavad skoore kõikjal.
Kolmeastmeline lahendus
Kasutame kolme astet, et katta 48 keelt ja kirjasüsteemi.
1. aste: spaCy — 25 keelt
Keeltele, millel on tugevad, testitud mudelid. See hõlmab inglise, saksa, prantsuse, hispaania, itaalia, portugali, hollandi, poola, vene ja kreeka keelt.
2. aste: Stanza — keerulised keeled
Stanfordi Stanza haldab araabia, hiina, jaapani ja korea keelt. See käivitab sõnajaotuse ja juurteanalüüsi enne NER-i.
3. aste: XLM-RoBERTa — väiksema ressursiga keeled
Keeltele, millel pole pühendunud mudeleid. Tai, vietnami, hindi, bengali, heebrea, türgi ja pärsia keel lähevad siia. See käsitleb segakeelset teksti ilma selgete lippudeta.
RTL ja BiDi
Paremalt vasakule tekst vajab lisasamme peale jaotuse.
Meie pipeline:
- Normaliseerib teksti loogilisse järjestusse.
- Käivitab NER sel järjestusel.
- Kaardistab entiteedi positsioonid tagasi visuaalsesse järjestusse.
Me eemaldame enne NER-i lisatud eesliited ja lisame need pärast tagasi.
"محمد" — ainult nimi
"لمحمد" — "Muhammadile" (eesliide peal)
Koodivahetus
Päris dokumendid segunevad sageli ühes reas mitme keele vahel.
"El meeting con John es at 3pm"
"我今天跟John去shopping"
Meie pipeline jagab keele järgi. See käivitab iga osa jaoks õige mudeli. Seejärel ühendab tulemused positsioonide kaardistamisega.
Sisemised testid
Tulemused sisemistest testidest segakeelsetel andmetel:
| Stsenaarium | F1 |
|---|---|
| Ainult inglise keel | 91% |
| Ainult saksa keel | 88% |
| Ainult araabia keel | 79% |
| Ainult hiina keel | 81% |
| Inglise-araabia segu | 83% |
| Inglise-hiina segu | 84% |
| Inglise-saksa segu | 89% |
Seadistusmärkused
Desktop App tuvastab keele automaatselt dokumendi kaupa. Segakeelte failide puhul töötleb see iga segmenti õige mudeliga. Käsitsi sammu pole vaja.
Määra keel API-s, kui tead seda:
{
"text": "محمد بن عبد الله",
"language": "ar"
}
Kasuta automaatset tuvastust, kui ei tea:
{
"text": "محمد بن عبد الله",
"language": "auto"
}
Kohandatud mustrid peaksid katma lokaadiomased numbrid:
# Ladina töötaja ID
EMP-[0-9]{6}
# Araabia töötaja ID (sisaldab araabia-india numbreid)
موظف-[٠-٩0-9]{6}
Vaata täielikku entiteediloetelu. API seadistuse jaoks külasta API funktsioonide lehte. Meie GDPR-i vastavusjuhend selgitab, kuidas tuvastamise lüngad mõjutavad andmekaitseseadust.
anonym.legal kasutab kolmeastmelist NER-i pinu — spaCy, Stanza ja XLM-RoBERTa — et katta 48 keelt ühtse isikuandmete tuvastamisega.