Daugiakalbis NER: iššūkiai aptinkant ADA
Atnaujinta 2026 m.
Tikslumo spraga
NER modeliai, apmokyti anglų kalbai, standartiniuose testuose pasiekia 85–92 % F1. Taikykite tuos pačius modelius arabų arba kinų tekstui. Tikslumas krenta iki 50–70 %.
ADA darbui ši spraga yra problema. 70 % tikimybė reiškia, kad 30 % jautrių duomenų lieka nepastebėta.
Priežastys nėra klaidos. Jos kyla iš rašymo sistemų skirtumų.
Keturios pagrindinės priežastys
1. Žodžių ribos
Anglų kalba skiria žodžius tarpais. Tokenizacija yra paprasta.
Kinų kalboje tarpų nėra.
"张伟住在北京"
→ Pirma padalinti: ["张伟", "住在", "北京"]
Modelis negali žymėti to, ko neranda. Padalijimas turi eiti prieš NER.
Arabų kalba raidės jungiasi žodžio viduje. Trumpi balsiai praleidžiami. Tekstas eina iš dešinės į kairę.
"محمد يعيش في دبي"
→ Nėra trumpų balsių, iš dešinės į kairę, sujungtos raidės
2. Morfologija
Anglų kalbos veiksmažodžiai keičiasi keliais būdais. Arabų kalba naudoja šaknies sistemą. Viena šaknis sukuria dešimtis žodžių.
كتب (k-t-b, "rašyti")
→ كاتب (rašytojas), كتاب (knyga), مكتبة (biblioteka)
NER turi analizuoti šaknis, kad rastų vardus išvestų žodžių formose.
3. Vardų konvencijos
Lotyniški vardai eina Pirmas vardas, paskui Pavardė. RTL kalbų vardai susieja šeimos ryšius.
محمد بن عبد الله
(Mahometas, Abdulaho sūnus)
Kinų kalboje šeimos vardas eina pirmas. Dauguma vardų sudaryti iš dviejų arba trijų simbolių.
张伟 (Zhang Wei) — 2 simboliai
欧阳修 (Ouyang Xiu) — 3 simboliai
Modelis, sukurtas pagal Vakarų vardų šablonus, praleis šias struktūras.
4. Teksto kryptis
Kai kurios kalbos rašomos iš dešinės į kairę. Kai RTL tekste yra angliškas vardas, vizualinė ir loginė tvarka išsiskiria. Tai vadinama BiDi tekstu. Jam reikia kruopštaus apdorojimo.
F1 balai pagal rašymo sistemą
| Kalba | Rašymo sistema | F1 diapazonas | Lygis |
|---|---|---|---|
| Anglų | Lotynų | 85–92 % | Žemas |
| Vokiečių | Lotynų | 82–88 % | Žemas |
| Prancūzų | Lotynų | 80–87 % | Žemas |
| Ispanų | Lotynų | 81–86 % | Žemas |
| Rusų | Kirilica | 75–83 % | Vidutinis |
| Arabų | Abjad | 55–75 % | Aukštas |
| Kinų | Hanzis | 60–78 % | Aukštas |
| Japonų | Mišrus | 65–80 % | Aukštas |
| Tajų | Tajų | 50–70 % | Labai aukštas |
| Hindi | Devanagari | 60–75 % | Aukštas |
Ne lotynų sistemos ir trūkstamos žodžių ribos mažina balus visoje eilutėje.
Trijų pakopų sprendimas
Naudojame tris pakopas, kad apimtume 48 kalbas ir rašymo sistemas.
1 pakopa: spaCy – 25 kalbos
Kalboms, kurioms yra stiprūs, išbandyti modeliai. Tai apima anglų, vokiečių, prancūzų, ispanų, italų, portugalų, olandų, lenkų, rusų ir graikų kalbas.
2 pakopa: Stanza – sudėtingos kalbos
Stanfordo Stanza tvarko arabų, kinų, japonų ir korėjiečių kalbas. Ji atlieka žodžių padalijimą ir šaknų analizę prieš NER.
3 pakopa: XLM-RoBERTa – mažai išteklių kalboms
Kalboms, kurioms nėra dedikuotų modelių. Čia patenka tajų, vietnamiečių, hindi, bengalų, hebrajų, turkų ir persų kalbos. Ji tvarko mišraus kalbų teksto apdorojimą be aiškių žymių.
RTL ir BiDi
Dešinės-į-kairę teksto apdorojimui reikia papildomų žingsnių po padalijimo.
Mūsų konvejeris:
- Normalizuoja tekstą į loginę tvarką.
- Vykdo NER toje tvarkoje.
- Suskirsto esybių pozicijas atgal į vizualinę tvarką.
Mes nuimame prikibtus prefiksus prieš NER ir juos pridedame po jo.
"محمد" — tik vardas
"لمحمد" — "Mahometui" (prefiksas uždėtas)
Kodo persijungimas
Tikri dokumentai dažnai maišo kalbas vienoje eilutėje.
"El meeting con John es at 3pm"
"我今天跟John去shopping"
Mūsų konvejeris dalija pagal kalbą. Kiekvienai daliai taikomas tinkamas modelis. Tada rezultatai sujungiami su pozicijų žymėjimu.
Vidiniai etalono rodikliai
Rezultatai iš vidinių testų su mišrių kalbų duomenimis:
| Scenarijus | F1 |
|---|---|
| Tik anglų | 91 % |
| Tik vokiečių | 88 % |
| Tik arabų | 79 % |
| Tik kinų | 81 % |
| Anglų ir arabų mišinys | 83 % |
| Anglų ir kinų mišinys | 84 % |
| Anglų ir vokiečių mišinys | 89 % |
Sąrankos pastabos
Programos kompiuteryje versija automatiškai aptinka kalbą kiekvienam dokumentui. Mišrių kalbų failams ji apdoroja kiekvieną segmentą tinkamu modeliu. Rankinis žingsnis nereikalingas.
Nurodykite kalbą API, kai ją žinote:
{
"text": "محمد بن عبد الله",
"language": "ar"
}
Naudokite automatinį aptikimą, kai nežinote:
{
"text": "محمد بن عبد الله",
"language": "auto"
}
Pasirinktiniai šablonai turėtų apimti vietovei būdingus skaitmenis:
# Lotyniška darbuotojo ID
EMP-[0-9]{6}
# Arabiška darbuotojo ID (apima arabiškus-indų skaitmenis)
موظف-[٠-٩0-9]{6}
Žr. pilną esybių sąrašą. API sąrankai apsilankykite API funkcijų puslapyje. Mūsų BDAR atitikties vadovas aprašo, kaip aptikimo spragos veikia duomenų apsaugos teisę.
anonym.legal naudoja trijų pakopų NER krūvą – spaCy, Stanza ir XLM-RoBERTa – kad apimtų 48 kalbas su nuosekliu ADA aptikimu.