Wielojęzyczny NER: Wyzwania w Wykrywaniu PII
Zaktualizowano na rok 2026
Luka w Dokładności
Modele NER trenowane na angielskim osiągają 85–92% F1 na standardowych testach. Zastosuj te same modele do tekstu arabskiego lub chińskiego. Dokładność spada do 50–70%.
Dla pracy z PII ta luka stanowi problem. Wynik 70% oznacza, że 30% wrażliwych danych pozostaje niewykryte.
Przyczyny nie są błędami. Wynikają z różnic w systemach pisma.
Cztery Główne Przyczyny
1. Granice Wyrazów
Angielski rozdziela słowa spacjami. Tokenizacja jest prosta.
Chiński nie ma spacji w ogóle.
"张伟住在北京"
→ Najpierw podziel: ["张伟", "住在", "北京"]
Model nie może oznaczyć tego, czego nie może znaleźć. Podział musi poprzedzać NER.
Arabski łączy litery wewnątrz wyrazów. Krótkie samogłoski są pomijane. Tekst biegnie od prawej do lewej.
2. Morfologia
Angielskie czasowniki zmieniają się na kilka sposobów. Arabski używa systemu rdzeni. Jeden rdzeń tworzy dziesiątki słów.
NER musi analizować rdzenie, by znaleźć imiona w pochodnych formach wyrazów.
3. Konwencje Imion
Imiona łacińskie mają kolejność Imię–Nazwisko. Imiona w językach RTL tworzą łańcuch powiązań rodzinnych.
Chińskie imiona mają nazwisko na pierwszym miejscu. Większość imion ma dwa lub trzy znaki.
Model zbudowany na wzorcach zachodnich imion pominie te struktury.
4. Kierunek Tekstu
Niektóre języki biegną od prawej do lewej. Gdy tekst RTL zawiera angielskie imię, wizualna kolejność i logiczna kolejność rozchodzą się. To nazywa się tekstem BiDi. Wymaga starannego parsowania.
Wyniki F1 według Systemu Pisma
| Język | System Pisma | Zakres F1 | Poziom Trudności |
|---|---|---|---|
| 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 | Abdżad | 55–75% | Wysoki |
| Chiński | Hanzi | 60–78% | Wysoki |
| Japoński | Mieszany | 65–80% | Wysoki |
| Tajski | Tajski | 50–70% | Bardzo Wysoki |
| Hindi | Dewanagari | 60–75% | Wysoki |
Rozwiązanie Trójwarstwowe
Stosujemy trzy warstwy, by objąć 48 języków i systemów pisma.
Warstwa 1: spaCy — 25 Języków
Dla języków z silnymi, przetestowanymi modelami. Obejmuje angielski, niemiecki, francuski, hiszpański, włoski, portugalski, holenderski, polski, rosyjski i grecki.
Warstwa 2: Stanza — Złożone Języki
Stanford Stanza obsługuje arabski, chiński, japoński i koreański. Uruchamia podział wyrazów i analizę rdzeni przed NER.
Warstwa 3: XLM-RoBERTa — Języki Niskozasobowe
Dla języków bez dedykowanych modeli. Tajski, wietnamski, hindi, bengalski, hebrajski, turecki i perski trafiają tutaj. Obsługuje mieszane języki bez jawnych flag.
RTL i BiDi
Tekst od prawej do lewej wymaga dodatkowych kroków poza podziałem.
Nasz pipeline:
- Normalizuje tekst do kolejności logicznej.
- Uruchamia NER na tej kolejności.
- Mapuje pozycje encji z powrotem do kolejności wizualnej.
Przełączanie Kodów
Prawdziwe dokumenty często mieszają języki w jednej linii.
Nasz pipeline dzieli według języka, uruchamia właściwy model dla każdej części, a następnie łączy wyniki z mapowaniem pozycji.
Wewnętrzne Benchmarki
| Scenariusz | F1 |
|---|---|
| Tylko angielski | 91% |
| Tylko niemiecki | 88% |
| Tylko arabski | 79% |
| Tylko chiński | 81% |
| Mieszanka angielski-arabski | 83% |
| Mieszanka angielski-chiński | 84% |
| Mieszanka angielski-niemiecki | 89% |
Uwagi do Konfiguracji
Aplikacja desktopowa automatycznie wykrywa język dla każdego dokumentu. Dla plików mieszanojęzycznych przetwarza każdy segment właściwym modelem. Nie wymagany żaden ręczny krok.
Podaj język w API gdy go znasz:
{
"text": "محمد بن عبد الله",
"language": "ar"
}
Użyj automatycznego wykrywania gdy nie znasz:
{
"text": "محمد بن عبد الله",
"language": "auto"
}
Pełna lista encji na stronie encji. Konfiguracja API na stronie funkcji API. Nasz przewodnik zgodności RODO opisuje wpływ luk wykrywania na prawo ochrony danych.
anonym.legal używa trójwarstwowego stosu NER — spaCy, Stanza i XLM-RoBERTa — obejmującego 48 języków ze spójnym wykrywaniem PII.