Udfordringen med flersproget NER
Named Entity Recognition-modeller (NER) trænet på engelsk opnår imponerende resultater – F1-scorer på 85-92% på standardbenchmarks. Anvend de samme modeller på arabisk eller kinesisk? Nøjagtigheden falder ofte til 50-70%.
For PII-detektion er dette gab kritisk. En detektionsrate på 70% betyder, at 30% af følsomme data er ubeskyttede.
Hvorfor engelske modeller fejler
1. Ordgrænser
Engelsk: Ord adskilles af mellemrum. ``` "John Smith lives in New York" → ["John", "Smith", "lives", "in", "New", "York"] ```
Kinesisk: Ingen ordgrænser overhovedet. ``` "张伟住在北京" → Kræver segmentering først: ["张伟", "住在", "北京"] ```
Arabisk: Ord forbindes, og korte vokaler skrives ikke. ``` "محمد يعيش في دبي" → Forbundet skrift, højre-til-venstre, vokaler udeladt ```
Engelsk tokenisering kan simpelthen ikke anvendes her.
2. Morfologisk kompleksitet
Engelsk morfologi: Relativt enkel ``` run → runs, running, ran ```
Arabisk morfologi: Ekstremt kompleks (rod-mønstersystem) ``` كتب (k-t-b, "skrive"-rod) → كاتب (skribent), كتاب (bog), مكتبة (bibliotek), يكتب (han skriver) ```
En enkelt arabisk rod genererer snesevis af beslægtede ord. NER-modeller skal forstå dette afledningssystem.
3. Navnekonventioner
Engelske navne: Fornavn Efternavn ``` John Smith, Mary Johnson ```
Arabiske navne: Flere komponenter ``` محمد بن عبد الله بن عبد المطلب (Muhammad søn af Abdullah søn af Abdul-Muttalib) ```
Kinesiske navne: Familienavn først, ofte 2-3 tegn i alt ``` 张伟 (Zhang Wei) - 2 tegn 欧阳修 (Ouyang Xiu) - 3 tegn ```
4. Skriftretning
Engelsk: Venstre-til-højre (LTR) Arabisk/Hebraisk: Højre-til-venstre (RTL) Blandet tekst: Tovejs (BiDi) – ekstremt kompleks
Når et engelsk navn optræder i arabisk tekst: ``` التقيت بـ John Smith في المؤتمر (Jeg mødte John Smith på konferencen) ``` Visningsrækkefølge, logisk rækkefølge og displayrækkefølge afviger alle fra hinanden.
Nøjagtighed efter sprog
Reelle NER-resultater varierer markant:
| Sprog | Skrift | F1-scoreinterval | Sværhedsgrad |
|---|---|---|---|
| Engelsk | Latinsk | 85-92% | Lav |
| Tysk | Latinsk | 82-88% | Lav |
| Fransk | Latinsk | 80-87% | Lav |
| Spansk | Latinsk | 81-86% | Lav |
| Russisk | Kyrillisk | 75-83% | Middel |
| Arabisk | Arabisk | 55-75% | Høj |
| Kinesisk | Hanzi | 60-78% | Høj |
| Japansk | Blandet | 65-80% | Høj |
| Thai | Thai | 50-70% | Meget høj |
| Hindi | Devanagari | 60-75% | Høj |
Sprog med kompleks morfologi, ikke-latinske skriftsystemer eller manglende ordgrænser klarer sig konsekvent dårligere.
anonym.legals tre-niveaus tilgang
Vi løser flersproget NER via tre specialiserede niveauer:
Niveau 1: spaCy (25 sprog)
Til højtressourcesprog med gode modeller:
- Engelsk, tysk, fransk, spansk, italiensk, portugisisk
- Nederlandsk, polsk, russisk, græsk
- Og 15 yderligere med pålidelig nøjagtighed
Niveau 2: Stanza (7 sprog)
Til sprog med kompleks morfologi:
- Arabisk (rod-mønsternmorfologi)
- Kinesisk (kræver ordsegmentering)
- Japansk (flere skriftsystemer)
- Koreansk (agglutinativt)
- Og 3 yderligere
Niveau 3: XLM-RoBERTa (16 sprog)
Til lavressourcesprog uden dedikerede modeller:
- Thai, vietnamesisk, indonesisk
- Hindi, bengali, tamil
- Hebraisk, tyrkisk, farsi
- Og flere
Sådan fungerer det
``` Inputtekst med sprogdetektion ↓ [Sprogrouter] ↓ ┌───────┴───────┐ ↓ ↓ Højtressource Kompleks/Lavressource (spaCy) (Stanza/XLM-RoBERTa) ↓ ↓ └───────┬───────┘ ↓ [Regex-overlay for strukturerede data] ↓ [Konfidenssammenlægger] ↓ Endelige entiteter ```
Regex-overlay
Nogle mønstre er sproguafhængige:
- E-mailadresser: `[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}`
- Kreditkort: `\d{4}[\s-]?\d{4}[\s-]?\d{4}[\s-]?\d{4}`
- Telefonnumre: Forskellige mønstre pr. land
Vi anvender regex først for strukturerede data, uanset sprog.
Håndtering af RTL-skrift
Højre-til-venstre-sprog kræver særlig behandling:
Tovejstekstalgoritme
Når arabisk indeholder engelsk: ``` Visuelt: المؤتمر في John Smith بـ التقيت Logisk: التقيت بـ John Smith في المؤتمر ```
Vores behandling:
- Normalisér til logisk rækkefølge
- Kør NER på logisk rækkefølge
- Kortlæg entitetspositioner tilbage til visuel rækkefølge
- Returnér konsistente positioner til enhver rendering
Detektion af entitetsgrænser
Arabiske entitetsgrænser er komplekse: ``` "محمد" - kun navnet "لمحمد" - "til Muhammad" (vedhæftet præposition) "ومحمد" - "og Muhammad" (vedhæftet konjunktion) ```
Vi fjerner affikser før NER og tilføjer dem igen bagefter.
Sprogskift
Reel tekst blander ofte sprog:
``` "El meeting con John es at 3pm" (Spansk-engelsk blanding)
"我今天跟John去shopping" (Kinesisk-engelsk blanding) ```
Vores tilgang:
- Segmentér tekst efter sprog
- Behandl hvert segment med passende model
- Sammenlæg resultater med positionskortlægning
Ydelsesresultater
Intern test på blandede sprogs datasæt:
| Scenarie | F1-score |
|---|---|
| Kun engelsk | 91% |
| Kun tysk | 88% |
| Kun arabisk | 79% |
| Kun kinesisk | 81% |
| Engelsk-arabisk blanding | 83% |
| Engelsk-kinesisk blanding | 84% |
| Engelsk-tysk blanding | 89% |
Vores hybride tilgang opretholder høj nøjagtighed selv på udfordrende sprog.
Implementeringstips
Til API-brugere
Angiv sprog, når det kendes: ```json { "text": "محمد بن عبد الله", "language": "ar" } ```
Lad os auto-registrere, når det er ukendt: ```json { "text": "محمد بن عبد الله", "language": "auto" } ```
Til Desktop App-brugere
Appen auto-registrerer sprog pr. dokument. For filer med blandede sprog behandler den hvert segment hensigtsmæssigt.
Til tilpassede entitetstyper
Tilpassede mønstre bør tage højde for skriftsystemer: ```
Engelsk medarbejder-ID
EMP-[0-9]{6}
Arabisk medarbejder-ID (inkluderer arabiske taller)
موظف-[٠-٩0-9]{6} ```
Konklusion
Engelsktrænede NER-modeller fejler på ikke-engelsk tekst, fordi sprog adskiller sig fundamentalt i:
- Ordgrænser (eller mangel derpå)
- Morfologisk kompleksitet
- Skriftretning
- Navnekonventioner
Effektiv flersproget PII-detektion kræver:
- Sprogspecifikke modeller til komplekse skriftsystemer
- Regexmønstre til strukturerede data
- Korrekt RTL/BiDi-håndtering
- Understøttelse af sprogskift
anonym.legal understøtter 48 sprog via vores tre-niveaus tilgang og opnår konsekvent nøjagtighed på tværs af alle.
Prøv det selv:
Kilder: