Powrót do blogaTechniczne

Wielojęzyczne NER: Dlaczego Twój model trenowany na...

Modele NER w języku angielskim osiągają dokładność 85-92%. A arabski i chiński? Często 50-70%.

February 26, 20268 min czytania
NERmultilingualArabic NLPChinese NLPPII detection

Wyzwanie wielojęzycznego NER

Modele rozpoznawania nazwanych jednostek (NER) trenowane na języku angielskim osiągają imponujące wyniki — 85-92% wyników F1 w standardowych benchmarkach. Zastosowanie tych samych modeli do arabskiego lub chińskiego? Dokładność często spada do 50-70%.

Dla wykrywania PII ta różnica jest krytyczna. Wskaźnik wykrywania na poziomie 70% oznacza, że 30% wrażliwych danych pozostaje niechronionych.

Dlaczego modele angielskie zawodzą

1. Granice słów

Angielski: Słowa są oddzielone spacjami.

"John Smith lives in New York"
→ ["John", "Smith", "lives", "in", "New", "York"]

Chiński: Brak granic słów.

"张伟住在北京"
→ Wymaga segmentacji najpierw: ["张伟", "住在", "北京"]

Arabski: Słowa są połączone, a krótkie samogłoski nie są pisane.

"محمد يعيش في دبي"
→ Połączony skrypt, od prawej do lewej, samogłoski pominięte

Reguły tokenizacji w języku angielskim po prostu nie mają zastosowania.

2. Złożoność morfologiczna

Morfologia angielska: Relatywnie prosta

run → runs, running, ran

Morfologia arabska: Ekstremalnie złożona (system korzeniowy)

كتب (k-t-b, "korzeń pisać")
→ كاتب (pisarz), كتاب (książka), مكتبة (biblioteka), يكتب (on pisze)

Jeden arabski korzeń generuje dziesiątki pokrewnych słów. Modele NER muszą rozumieć ten system pochodzenia.

3. Konwencje nazwisk

Nazwy angielskie: Imię Nazwisko

John Smith, Mary Johnson

Nazwy arabskie: Wiele komponentów

محمد بن عبد الله بن عبد المطلب
(Muhammad syn Abdullaha syn Abdul-Muttaliba)

Nazwy chińskie: Nazwisko najpierw, często 2-3 znaki łącznie

张伟 (Zhang Wei) - 2 znaki
欧阳修 (Ouyang Xiu) - 3 znaki

4. Kierunek pisma

Angielski: Od lewej do prawej (LTR) Arabski/Hebrajski: Od prawej do lewej (RTL) Tekst mieszany: Dwukierunkowy (BiDi) - ekstremalnie złożony

Kiedy angielskie imię pojawia się w arabskim tekście:

التقيت بـ John Smith في المؤتمر
(I met John Smith at the conference)

Różnią się kolejność renderowania, kolejność logiczna i kolejność wyświetlania.

Dokładność według języka

Wydajność NER w rzeczywistych warunkach różni się dramatycznie:

JęzykSkryptZakres F1-ScorePoziom wyzwania
AngielskiŁaciński85-92%Niski
NiemieckiŁaciński82-88%Niski
FrancuskiŁaciński80-87%Niski
HiszpańskiŁaciński81-86%Niski
RosyjskiCyrylica75-83%Średni
ArabskiArabski55-75%Wysoki
ChińskiHanzi60-78%Wysoki
JapońskiMieszany65-80%Wysoki
TajskiTajski50-70%Bardzo wysoki
HindiDevanagari60-75%Wysoki

Języki o złożonej morfologii, nielatynowych skryptach lub braku granic słów konsekwentnie osiągają słabsze wyniki.

Trójwarstwowe podejście anonym.legal

Rozwiązujemy wielojęzyczne NER poprzez trzy specjalistyczne warstwy:

Warstwa 1: spaCy (25 języków)

Dla języków o wysokich zasobach z dobrymi modelami:

  • Angielski, Niemiecki, Francuski, Hiszpański, Włoski, Portugalski
  • Holenderski, Polski, Rosyjski, Grecki
  • I 15 innych z niezawodną dokładnością

Warstwa 2: Stanza (7 języków)

Dla języków o złożonej morfologii:

  • Arabski (morfologia oparte na korzeniach)
  • Chiński (wymagana segmentacja słów)
  • Japoński (wiele skryptów)
  • Koreański (aglutynacyjny)
  • I 3 inne

Warstwa 3: XLM-RoBERTa (16 języków)

Dla języków o niskich zasobach bez dedykowanych modeli:

  • Tajski, Wietnamski, Indonezyjski
  • Hindi, Bengalski, Tamilski
  • Hebrajski, Turecki, Perski
  • I inne

Jak to działa

Input text with language detection
        ↓
[Language Router]
        ↓
┌───────┴───────┐
↓               ↓
High-resource   Complex/Low-resource
(spaCy)         (Stanza/XLM-RoBERTa)
↓               ↓
└───────┬───────┘
        ↓
[Regex overlay for structured data]
        ↓
[Confidence merger]
        ↓
Final entities

Nakładka Regex

Niektóre wzory są niezależne od języka:

  • Adresy e-mail: [a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}
  • Karty kredytowe: \d{4}[\s-]?\d{4}[\s-]?\d{4}[\s-]?\d{4}
  • Numery telefonów: Różne wzory w zależności od kraju

Najpierw stosujemy regex dla danych strukturalnych, niezależnie od języka.

Obsługa skryptów RTL

Języki od prawej do lewej wymagają specjalnej obsługi:

Algorytm tekstu dwukierunkowego

Gdy arabski zawiera angielski:

Wizualnie: المؤتمر في John Smith بـ التقيت
Logicznie: التقيت بـ John Smith في المؤتمر

Nasze przetwarzanie:

  1. Normalizacja do kolejności logicznej
  2. Uruchomienie NER w kolejności logicznej
  3. Mapowanie pozycji jednostek z powrotem do kolejności wizualnej
  4. Zwrócenie spójnych pozycji dla jakiegokolwiek renderowania

Wykrywanie granic jednostek

Granice jednostek w języku arabskim są złożone:

"محمد" - tylko imię
"لمحمد" - "do Muhammada" (przyimek dołączony)
"ومحمد" - "i Muhammad" (spójnik dołączony)

Usuwamy affiksy przed NER i ponownie je dołączamy później.

Mieszanie języków

Rzeczywisty tekst często miesza języki:

"El meeting con John es at 3pm"
(mieszanie hiszpańsko-angielskie)

"我今天跟John去shopping"
(mieszanie chińsko-angielskie)

Nasze podejście:

  1. Segmentacja tekstu według języka
  2. Przetwarzanie każdego segmentu odpowiednim modelem
  3. Łączenie wyników z mapowaniem pozycji

Benchmarki wydajności

Testy wewnętrzne na zestawach danych w mieszanych językach:

ScenariuszF1-Score
Tylko angielski91%
Tylko niemiecki88%
Tylko arabski79%
Tylko chiński81%
Mieszanka angielsko-arabska83%
Mieszanka angielsko-chińska84%
Mieszanka angielsko-niemiecka89%

Nasze hybrydowe podejście utrzymuje wysoką dokładność nawet w przypadku trudnych języków.

Wskazówki dotyczące wdrożenia

Dla użytkowników API

Określ język, gdy jest znany:

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

Pozwól nam na automatyczne wykrywanie, gdy nie jest znany:

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

Dla użytkowników aplikacji desktopowej

Aplikacja automatycznie wykrywa język w każdym dokumencie. Dla plików w mieszanych językach przetwarza każdy segment odpowiednio.

Dla niestandardowych typów jednostek

Niestandardowe wzory powinny uwzględniać skrypty:

# Angielski identyfikator pracownika
EMP-[0-9]{6}

# Arabski identyfikator pracownika (zawiera cyfry arabskie)
موظف-[٠-٩0-9]{6}

Podsumowanie

Modele NER trenowane na angielskim zawodzą w przypadku tekstu nieangielskiego, ponieważ języki różnią się fundamentalnie w:

  • Granicach słów (lub ich braku)
  • Złożoności morfologicznej
  • Kierunku pisma
  • Konwencjach nazwisk

Skuteczne wielojęzyczne wykrywanie PII wymaga:

  1. Specyficznych dla języka modeli dla złożonych skryptów
  2. Wzorów regex dla danych strukturalnych
  3. Odpowiedniej obsługi RTL/BiDi
  4. Wsparcia dla mieszania języków

anonym.legal obsługuje 48 języków dzięki naszemu trójwarstwowemu podejściu, osiągając spójną dokładność we wszystkich.

Wypróbuj to sam:


Źródła:

Gotowy, aby chronić swoje dane?

Rozpocznij anonimizację PII z 285+ typami podmiotów w 48 językach.