Flerspråklig NER-utfordring
Navngitt entitetsgjenkjenning (NER) modeller trent på engelsk oppnår imponerende resultater—85-92% F1-poeng på standard referanser. Bruker du de samme modellene på arabisk eller kinesisk? Nøyaktigheten faller ofte til 50-70%.
For PII-detektering er dette gapet kritisk. En 70% deteksjonsrate betyr at 30% av sensitiv data forblir ubeskyttet.
Hvorfor engelske modeller feiler
1. Ordboundaries
Engelsk: Ord er atskilt med mellomrom.
"John Smith lives in New York"
→ ["John", "Smith", "lives", "in", "New", "York"]
Kinesisk: Ingen ordboundaries i det hele tatt.
"张伟住在北京"
→ Trenger segmentering først: ["张伟", "住在", "北京"]
Arabisk: Ord er sammenkoblet, og korte vokaler er ikke skrevet.
"محمد يعيش في دبي"
→ Sammenkoblet skrift, høyre-til-venstre, vokaler utelatt
Engelske tokeniseringsregler gjelder rett og slett ikke.
2. Morfologisk kompleksitet
Engelsk morfologi: Relativt enkel
run → runs, running, ran
Arabisk morfologi: Ekstremt kompleks (rot-mønster system)
كتب (k-t-b, "skrive" rot)
→ كاتب (forfatter), كتاب (bok), مكتبة (bibliotek), يكتب (han skriver)
En enkelt arabisk rot genererer dusinvis av relaterte ord. NER-modeller må forstå dette avledningssystemet.
3. Navnekonvensjoner
Engelske navn: Første Etternavn
John Smith, Mary Johnson
Arabiske navn: Flere komponenter
محمد بن عبد الله بن عبد المطلب
(Muhammad sønn av Abdullah sønn av Abdul-Muttalib)
Kinesiske navn: Etternavn først, ofte 2-3 tegn totalt
张伟 (Zhang Wei) - 2 tegn
欧阳修 (Ouyang Xiu) - 3 tegn
4. Skriftretning
Engelsk: Venstre-til-høyre (LTR) Arabisk/Hebraisk: Høyre-til-venstre (RTL) Blandet tekst: To-retning (BiDi) - ekstremt kompleks
Når et engelsk navn vises i arabisk tekst:
التقيت بـ John Smith في المؤتمر
(Jeg møtte John Smith på konferansen)
Rendering-rekkefølgen, logisk rekkefølge, og visningsrekkefølge er alle forskjellige.
Nøyaktighet etter språk
Den virkelige NER-ytelsen varierer dramatisk:
| Språk | Skrift | F1-Score Område | Utfordringsnivå |
|---|---|---|---|
| Engelsk | Latin | 85-92% | Lav |
| Tysk | Latin | 82-88% | Lav |
| Fransk | Latin | 80-87% | Lav |
| Spansk | Latin | 81-86% | Lav |
| Russisk | Kyrillisk | 75-83% | Medium |
| Arabisk | Arabisk | 55-75% | Høy |
| Kinesisk | Hanzi | 60-78% | Høy |
| Japansk | Blandet | 65-80% | Høy |
| Thai | Thai | 50-70% | Veldig Høy |
| Hindi | Devanagari | 60-75% | Høy |
Språk med kompleks morfologi, ikke-latinske skrifter, eller ingen ordboundaries presterer konsekvent dårligere.
anonym.legal's Tre-nivå tilnærming
Vi løser flerspråklig NER gjennom tre spesialiserte nivåer:
Nivå 1: spaCy (25 språk)
For høyressurs språk med gode modeller:
- Engelsk, Tysk, Fransk, Spansk, Italiensk, Portugisisk
- Nederlandsk, Polsk, Russisk, Gresk
- Og 15 flere med pålitelig nøyaktighet
Nivå 2: Stanza (7 språk)
For språk med kompleks morfologi:
- Arabisk (rot-mønster morfologi)
- Kinesisk (ordsegmentering nødvendig)
- Japansk (flere skrifter)
- Koreansk (agglutinativ)
- Og 3 flere
Nivå 3: XLM-RoBERTa (16 språk)
For lavressurs språk uten dedikerte modeller:
- Thai, Vietnamesisk, Indonesisk
- Hindi, Bengali, Tamil
- Hebraisk, Tyrkisk, Farsi
- Og mer
Hvordan det fungerer
Inndata tekst med språkdetection
↓
[Språk Router]
↓
┌───────┴───────┐
↓ ↓
Høyressurs Komplisert/Lavressurs
(spaCy) (Stanza/XLM-RoBERTa)
↓ ↓
└───────┬───────┘
↓
[Regex overlay for structured data]
↓
[Confidence merger]
↓
Endelige enheter
Regex Overlay
Noen mønstre er språk-uavhengige:
- E-postadresser:
[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,} - Kredittkort:
\d{4}[\s-]?\d{4}[\s-]?\d{4}[\s-]?\d{4} - Telefonnummer: Ulike mønstre per land
Vi bruker regex først for strukturerte data, uavhengig av språk.
RTL Skriftbehandling
Høyre-til-venstre språk krever spesiell behandling:
To-retningstekstalgoritme
Når arabisk inneholder engelsk:
Visuell: المؤتمر في John Smith بـ التقيت
Logisk: التقيت بـ John Smith في المؤتمر
Vår prosess:
- Normaliser til logisk rekkefølge
- Kjør NER på logisk rekkefølge
- Kartlegg enhetsposisjoner tilbake til visuell rekkefølge
- Returner konsistente posisjoner for enhver rendering
Enhetsgrense Deteksjon
Arabiske enhetsgrenser er komplekse:
"محمد" - bare navnet
"لمحمد" - "til Muhammad" (vedlagt preposisjon)
"ومحمد" - "og Muhammad" (vedlagt konjunksjon)
Vi fjerner affikser før NER og fester dem på nytt etterpå.
Kodeskifting
Ekte tekst blander ofte språk:
"El meeting con John es at 3pm"
(spansk-engelsk blanding)
"我今天跟John去shopping"
(kinesisk-engelsk blanding)
Vår tilnærming:
- Segmenter tekst etter språk
- Behandle hvert segment med passende modell
- Slå sammen resultater med posisjonskartlegging
Ytelsesmål
Intern testing på blandede språk datasett:
| Scenario | 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% |
Vår hybride tilnærming opprettholder høy nøyaktighet selv på utfordrende språk.
Implementeringstips
For API-brukere
Spesifiser språk når kjent:
{
"text": "محمد بن عبد الله",
"language": "ar"
}
La oss auto-detektere når ukjent:
{
"text": "محمد بن عبد الله",
"language": "auto"
}
For Desktop App-brukere
Appen auto-detekterer språk per dokument. For blandede språkfiler, behandler den hvert segment på passende måte.
For tilpassede enhetstyper
Tilpassede mønstre bør ta hensyn til skrifter:
# Engelsk ansatt-ID
EMP-[0-9]{6}
# Arabisk ansatt-ID (inkluderer arabiske tall)
موظف-[٠-٩0-9]{6}
Konklusjon
Engelsktrente NER-modeller feiler på ikke-engelsk tekst fordi språkene er fundamentalt forskjellige i:
- Ordboundaries (eller mangel på dem)
- Morfologisk kompleksitet
- Skriftretning
- Navnekonvensjoner
Effektiv flerspråklig PII-detektering krever:
- Språkspesifikke modeller for komplekse skrifter
- Regex-mønstre for strukturerte data
- Riktig RTL/BiDi håndtering
- Kodeskifting støtte
anonym.legal støtter 48 språk gjennom vår tre-nivå tilnærming, og oppnår konsekvent nøyaktighet på tvers av alle.
Prøv det selv:
Kilder: