Zpět na blogTechnické

Vícejazyčné NER: Proč angličtina selhává u arabštiny

NER modely pro angličtinu dosahují přesnosti 85–92 %. Pro arabštinu a čínštinu? Často jen 50–70 %. Zjistěte technické příčiny a jak vybudovat skutečně vícejazyčné řešení.

February 26, 20268 min čtení
NERmultilingualArabic NLPChinese NLPPII detection

Vícejazyčné NER: Výzvy při detekci PII

Aktualizováno pro rok 2026

Propast v přesnosti

NER modely trénované na angličtině dosahují F1 skóre 85–92 % na standardních testech. Aplikujte tyto modely na arabský nebo čínský text — přesnost klesá na 50–70 %.

Pro ochranu PII je tato mezera problémem. Úspěšnost 70 % znamená, že 30 % citlivých dat zůstane nezachyceno.

Příčiny nejsou chyby v kódu. Vyplývají z toho, jak se jednotlivé písemné systémy od sebe liší.

Čtyři hlavní příčiny

1. Hranice slov

Angličtina odděluje slova mezerami. Tokenizace je snadná.

Čínština nepoužívá mezery vůbec.

"张伟住在北京"
→ Nejprve rozdělit: ["张伟", "住在", "北京"]

Model nemůže označit to, co nedokáže najít. Rozdělení musí předcházet NER.

Arabština spojuje písmena uvnitř slov. Krátké samohlásky se vynechávají. Text se čte zprava doleva.

"محمد يعيش في دبي"
→ Bez krátkých samohlásek, zprava doleva, propojená písmena

2. Morfologie

Anglická slovesa se mění jen několika způsoby. Arabština používá kořenový systém. Z jednoho kořene vznikají desítky slov.

كتب (k-t-b, "psát")
→ كاتب (pisatel), كتاب (kniha), مكتبة (knihovna)

NER musí analyzovat kořeny, aby v odvozených tvarech slov rozpoznal jména.

3. Jmenné konvence

Latinská jména se uvádějí jako jméno a poté příjmení. V jazycích psaných zprava doleva se řetězí rodinné vazby.

محمد بن عبد الله
(Muhammad, syn Abdulláha)

Čínská jména uvádějí příjmení na prvním místě. Většina jmen má dvě nebo tři znaky.

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

Model trénovaný na západních vzorech jmen tyto struktury přehlédne.

4. Směr textu

Některé jazyky se čtou zprava doleva. Když text psaný zprava doleva obsahuje anglické jméno, vizuální a logické pořadí se rozchází. Tato situace se nazývá BiDi text a vyžaduje pečlivé zpracování.

F1 skóre podle písemného systému

JazykPísemný systémRozsah F1Náročnost
AngličtinaLatinka85–92 %Nízká
NěmčinaLatinka82–88 %Nízká
FrancouzštinaLatinka80–87 %Nízká
ŠpanělštinaLatinka81–86 %Nízká
RuštinaCyrilice75–83 %Střední
ArabštinaAbjad55–75 %Vysoká
ČínštinaHanzi60–78 %Vysoká
JaponštinaSmíšený65–80 %Vysoká
ThajštinaThajské písmo50–70 %Velmi vysoká
HindštinaDévanágarí60–75 %Vysoká

Nelatinkové systémy a chybějící mezery mezi slovy snižují skóre napříč všemi jazyky.

Třívrstvé řešení

Pro pokrytí 48 jazyků a písemných systémů používáme tři vrstvy.

Vrstva 1: spaCy — 25 jazyků

Pro jazyky se silnými, otestovanými modely. Zahrnuje angličtinu, němčinu, francouzštinu, španělštinu, italštinu, portugalštinu, holandštinu, polštinu, ruštinu a řečtinu.

Vrstva 2: Stanza — složité jazyky

Stanford Stanza zpracovává arabštinu, čínštinu, japonštinu a korejštinu. Před NER provádí rozdělení slov a analýzu kořenů.

Vrstva 3: XLM-RoBERTa — jazyky s omezenými zdroji

Pro jazyky bez dedikovaných modelů. Thajština, vietnamština, hindština, bengálština, hebrejština, turečtina a perština. Zvládá vícejazyčný text bez nutnosti explicitního označení jazyka.

Text psaný zprava doleva a BiDi

Text psaný zprava doleva vyžaduje další kroky nad rámec rozdělení slov.

Naše pipeline:

  1. Normalizuje text do logického pořadí.
  2. Spustí NER na tomto pořadí.
  3. Mapuje pozice entit zpět na vizuální pořadí.

Před NER odstraňujeme připojené předpony a po zpracování je přidáváme zpět.

"محمد"  — pouze jméno
"لمحمد" — "pro Muhammada" (s předponou)

Přepínání kódu

Reálné dokumenty často mísí jazyky v jednom řádku.

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

Naše pipeline rozdělí text podle jazyka, spustí správný model na každou část a poté spojí výsledky s mapováním pozic.

Interní benchmarky

Výsledky z interních testů na vícejazyčných datech:

ScénářF1
Pouze angličtina91 %
Pouze němčina88 %
Pouze arabština79 %
Pouze čínština81 %
Angličtina-arabština83 %
Angličtina-čínština84 %
Angličtina-němčina89 %

Poznámky k nastavení

Desktopová aplikace automaticky rozpozná jazyk u každého dokumentu. U souborů s více jazyky zpracovává každý segment správným modelem. Žádný ruční krok není potřeba.

Jazyk v API nastavte, pokud ho znáte:

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

Použijte automatické rozpoznávání, pokud ho neznáte:

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

Vlastní vzory by měly pokrývat místně specifické číslice:

# Latinské ID zaměstnance
EMP-[0-9]{6}

# Arabské ID zaměstnance (včetně arabsko-indických číslic)
موظف-[٠-٩0-9]{6}

Celý seznam entit najdete na stránce entit. Pro nastavení API navštivte stránku funkcí API. Náš průvodce GDPR vysvětluje, jak mezery v detekci ovlivňují zákon o ochraně osobních údajů.


anonym.legal používá třívrstvý NER stack — spaCy, Stanza a XLM-RoBERTa — pro pokrytí 48 jazyků s konzistentní detekcí PII.

Zdroje

Připraveni chránit svá data?

Začněte anonymizovat PII s 273 typy entit ve 48 jazycích.