Tillbaka till BloggenTeknisk

Flerspråkig NER: engelska modeller misslyckas med arabiska

Engelska NER-modeller når 85–92% noggrannhet. Arabiska och kinesiska? Ofta 50–70%. Lär dig om de tekniska utmaningarna och hur du bygger verkligt.

February 26, 20268 min läsning
NERmultilingualArabic NLPChinese NLPPII detection

Flerspråkig NER: Utmaningar vid PII-detektering

Uppdaterad för 2026

Noggrannhetsgapet

NER-modeller tränade på engelska når 85–92% F1 på standardtester. Applicera samma modeller på arabisk eller kinesisk text. Noggrannheten sjunker till 50–70%.

För PII-arbete är det gapet ett problem. En träffrate på 70% innebär att 30% av känslig data förblir oupptäckt.

Orsakerna är inte buggar. De kommer från hur skriftsystem skiljer sig åt.

Fyra grundorsaker

1. Ordgränser

Engelska delar ord med mellanslag. Tokenisering är enkel.

Kinesiska har inga mellanslag alls.

``` "张伟住在北京" → Dela först: ["张伟", "住在", "北京"] ```

En modell kan inte märka vad den inte kan hitta. Uppdelning måste komma före NER.

Arabiska binder ihop bokstäver inom ett ord. Korta vokaler utelämnas. Text löper från höger till vänster.

``` "محمد يعيش في دبي" → Inga korta vokaler, höger till vänster, bundna bokstäver ```

2. Morfologi

Engelska verb förändras på några få sätt. Arabiska använder ett rotsystem. En rot skapar dussintals ord.

``` كتب (k-t-b, "skriva") → كاتب (författare), كتاب (bok), مكتبة (bibliotek) ```

NER måste tolka rötter för att hitta namn i härledda ordformer.

3. Namnkonventioner

Latinska namn placerar förnamnet före efternamnet. Namn i RTL-språk kedjar familjeband.

``` محمد بن عبد الله (Muhammad son till Abdullah) ```

Kinesiska namn sätter familjenamnet först. De flesta namn är två eller tre tecken långa.

``` 张伟 (Zhang Wei) — 2 tecken 欧阳修 (Ouyang Xiu) — 3 tecken ```

En modell byggd på västerländska namnmönster missar dessa strukturer.

4. Textriktning

En del språk löper från höger till vänster. När RTL-text innehåller ett engelskt namn splittras visuell ordning och logisk ordning. Detta kallas BiDi-text. Det kräver noggrann tolkning.

F1-poäng per skriftsystem

SpråkSkriftsystemF1-intervallNivå
EngelskaLatinskt85–92%Låg
TyskaLatinskt82–88%Låg
FranskaLatinskt80–87%Låg
SpanskaLatinskt81–86%Låg
RyskaKyrilliskt75–83%Medel
ArabiskaAbjad55–75%Hög
KinesiskaHanzi60–78%Hög
JapanskaBlandat65–80%Hög
ThailändskaThailändskt50–70%Mycket hög
HindiDevanagari60–75%Hög

Icke-latinska system och saknade ordmellanslag sänker poängen generellt.

Trelagers lösning

Vi använder tre lager för att täcka 48 språk och skriftsystem.

Lager 1: spaCy — 25 språk

För språk med starka, testade modeller. Det täcker engelska, tyska, franska, spanska, italienska, portugisiska, holländska, polska, ryska och grekiska.

Lager 2: Stanza — Komplexa språk

Stanford Stanza hanterar arabiska, kinesiska, japanska och koreanska. Det utför orduppdelning och rotanalys före NER.

Lager 3: XLM-RoBERTa — Lågresursspråk

För språk utan dedikerade modeller. Thailändska, vietnamesiska, hindi, bengali, hebreiska, turkiska och persiska placeras här. Det hanterar blandspråkig text utan explicita flaggor.

RTL och BiDi

Höger-till-vänster-text kräver extra steg utöver uppdelning.

Vår pipeline:

  1. Normaliserar text till logisk ordning.
  2. Kör NER på den ordningen.
  3. Mappar entiteternas positioner tillbaka till visuell ordning.

Vi tar bort bundna prefix före NER och lägger till dem igen efteråt.

``` "محمد" — namn enbart "لمحمد" — "till Muhammad" (prefix på) ```

Kodväxling

Verkliga dokument blandar ofta språk på en enda rad.

``` "El meeting con John es at 3pm" "我今天跟John去shopping" ```

Vår pipeline delar upp efter språk. Den kör rätt modell på varje del. Sedan sammanfogar den resultat med positionsmappning.

Interna benchmarks

Resultat från interna tester på flerspråkig data:

ScenarioF1
Endast engelska91%
Endast tyska88%
Endast arabiska79%
Endast kinesiska81%
Engelska-arabiska mix83%
Engelska-kinesiska mix84%
Engelska-tyska mix89%

Installationsanmärkningar

Skrivbordsappen identifierar automatiskt språk per dokument. För filer med blandade språk bearbetar den varje segment med rätt modell. Inget manuellt steg krävs.

Ange språket i API:t när du vet det:

```json { "text": "محمد بن عبد الله", "language": "ar" } ```

Använd auto-detektering när du inte vet:

```json { "text": "محمد بن عبد الله", "language": "auto" } ```

Anpassade mönster bör täcka lokala siffror:

```

Latinskt medarbetar-ID

EMP-[0-9]{6}

Arabiskt medarbetar-ID (inkluderar arabisk-indiska siffror)

موظف-[٠-٩0-9]{6} ```

Se den fullständiga entitetslistan. För API-installation, besök API-funktionssidan. Vår GDPR-efterlevnadsguide täcker hur detekteringsluckor påverkar dataskyddslagstiftningen.


anonym.legal använder en trelagers NER-stack — spaCy, Stanza och XLM-RoBERTa — för att täcka 48 språk med konsekvent PII-detektering.

Källor

Redo att skydda din data?

Börja anonymisera PII med 273 entitetstyper på 48 språk.