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ęzyk | Skrypt | Zakres F1-Score | Poziom wyzwania |
|---|---|---|---|
| Angielski | Łaciński | 85-92% | Niski |
| Niemiecki | Łaciński | 82-88% | Niski |
| Francuski | Łaciński | 80-87% | Niski |
| Hiszpański | Łaciński | 81-86% | Niski |
| Rosyjski | Cyrylica | 75-83% | Średni |
| Arabski | Arabski | 55-75% | Wysoki |
| Chiński | Hanzi | 60-78% | Wysoki |
| Japoński | Mieszany | 65-80% | Wysoki |
| Tajski | Tajski | 50-70% | Bardzo wysoki |
| Hindi | Devanagari | 60-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:
- Normalizacja do kolejności logicznej
- Uruchomienie NER w kolejności logicznej
- Mapowanie pozycji jednostek z powrotem do kolejności wizualnej
- 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:
- Segmentacja tekstu według języka
- Przetwarzanie każdego segmentu odpowiednim modelem
- Łączenie wyników z mapowaniem pozycji
Benchmarki wydajności
Testy wewnętrzne na zestawach danych w mieszanych językach:
| Scenariusz | F1-Score |
|---|---|
| Tylko angielski | 91% |
| Tylko niemiecki | 88% |
| Tylko arabski | 79% |
| Tylko chiński | 81% |
| Mieszanka angielsko-arabska | 83% |
| Mieszanka angielsko-chińska | 84% |
| Mieszanka angielsko-niemiecka | 89% |
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:
- Specyficznych dla języka modeli dla złożonych skryptów
- Wzorów regex dla danych strukturalnych
- Odpowiedniej obsługi RTL/BiDi
- 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: