Многоезично NER: Предизвикателства при разпознаване на лични данни
Актуализирано за 2026 г.
Пропастта в точността
NER моделите, обучени на английски, достигат 85–92% F1 при стандартни тестове. Приложете същите модели към арабски или китайски текст. Точността спада до 50–70%.
За работа с лични данни тази пропаст е проблем. Резултат от 70% означава, че 30% от чувствителните данни остават незабелязани.
Причините не са грешки в кода. Те произтичат от начина, по който се различават писмените системи.
Четири основни причини
1. Граници на думите
Английският разделя думите с интервали. Токенизацията е лесна.
Китайският изобщо няма интервали.
"张伟住在北京"
→ Разделяне първо: ["张伟", "住在", "北京"]
Моделът не може да маркира това, което не може да намери. Разделянето трябва да предхожда NER.
Арабският свързва буквите вътре в думата. Кратките гласни се пропускат. Текстът върви отдясно наляво.
"محمد يعيش في دبي"
→ Без кратки гласни, отдясно наляво, свързани букви
2. Морфология
Английските глаголи се изменят по ограничен брой начини. Арабският използва коренна система. Един корен създава десетки думи.
كتب (k-t-b, "пиша")
→ كاتب (писател), كتاب (книга), مكتبة (библиотека)
NER трябва да анализира корените, за да открие имена в производни форми.
3. Именни конвенции
Латинските имена следват реда Собствено-Фамилно. Имената в RTL езиците свързват семейни връзки.
محمد بن عبد الله
(Мухаммад, син на Абдуллах)
Китайските имена поставят фамилното на първо място. Повечето имена са с дължина две или три знака.
张伟 (Zhang Wei) — 2 знака
欧阳修 (Ouyang Xiu) — 3 знака
Модел, изграден върху западни именни шаблони, ще пропусне тези структури.
4. Посока на текста
Някои езици вървят отдясно наляво. Когато RTL текст съдържа английско име, визуалният и логическият ред се разминават. Това се нарича BiDi текст. Изисква внимателно обработване.
F1 резултати по писмена система
| Език | Писмена система | F1 диапазон | Ниво |
|---|---|---|---|
| Английски | Латиница | 85–92% | Ниско |
| Немски | Латиница | 82–88% | Ниско |
| Френски | Латиница | 80–87% | Ниско |
| Испански | Латиница | 81–86% | Ниско |
| Руски | Кирилица | 75–83% | Средно |
| Арабски | Абджад | 55–75% | Високо |
| Китайски | Ханзъ | 60–78% | Високо |
| Японски | Смесена | 65–80% | Високо |
| Тайландски | Тайска | 50–70% | Много високо |
| Хинди | Деванагари | 60–75% | Високо |
Не-латинските системи и липсата на интервали между думите намаляват резултатите навсякъде.
Триниво решение
Използваме три нива за покриване на 48 езика и писмени системи.
Ниво 1: spaCy — 25 езика
За езици със силни, тествани модели. Покрива английски, немски, френски, испански, италиански, португалски, нидерландски, полски, руски и гръцки.
Ниво 2: Stanza — Сложни езици
Stanford Stanza обработва арабски, китайски, японски и корейски. Изпълнява разделянето на думи и анализа на корените преди NER.
Ниво 3: XLM-RoBERTa — Езици с ограничени ресурси
За езици без специализирани модели. Тайландски, виетнамски, хинди, бенгалски, иврит, турски и персийски. Обработва смесен текст без изрично посочване на езика.
RTL и BiDi
Текстът отдясно наляво изисква допълнителни стъпки извън разделянето.
Нашият конвейер:
- Нормализира текста към логически ред.
- Изпълнява NER върху логическия ред.
- Проектира позициите на обектите обратно към визуалния ред.
Префиксите се отстраняват преди NER и се добавят обратно след това.
"محمد" — само името
"لمحمد" — "на Мухаммад" (с префикс)
Превключване между кодове
Реалните документи често смесват езиците в един ред.
"El meeting con John es at 3pm"
"我今天跟John去shopping"
Нашият конвейер разделя по език. Изпълнява правилния модел за всяка част. После обединява резултатите с картографиране на позициите.
Вътрешни бенчмаркове
Резултати от вътрешни тестове върху многоезични данни:
| Сценарий | F1 |
|---|---|
| Само английски | 91% |
| Само немски | 88% |
| Само арабски | 79% |
| Само китайски | 81% |
| Английско-арабска смес | 83% |
| Английско-китайска смес | 84% |
| Английско-немска смес | 89% |
Бележки за настройка
Desktop App автоматично открива езика за всеки документ. При смесеноезикови файлове обработва всеки сегмент с правилния модел. Не е необходима ръчна стъпка.
Задайте езика в API, когато го знаете:
{
"text": "محمد بن عبد الله",
"language": "ar"
}
Използвайте автоматично разпознаване, когато не го знаете:
{
"text": "محمد بن عبد الله",
"language": "auto"
}
Персонализираните шаблони трябва да покриват специфичните за региона цифри:
# Латински идентификатор на служител
EMP-[0-9]{6}
# Арабски идентификатор на служител (включва арабско-индийски цифри)
موظف-[٠-٩0-9]{6}
Вижте пълния списък с обекти. За настройка на API посетете страницата с функции на API. Нашето ръководство за съответствие с GDPR обхваща как пропуските в разпознаването влияят на законодателството за защита на данните.
anonym.legal използва триниво NER стек — spaCy, Stanza и XLM-RoBERTa — за покриване на 48 езика с последователно разпознаване на лични данни.