Назад к блогуТехнические

Многоязычное NER: английские модели не справляются с арабским

NER-модели, обученные на английском, достигают 85–92% точности. На арабском и китайском? Зачастую 50–70%. Узнайте о технических сложностях и как построить по-настоящему многоязычную систему.

February 26, 20268 мин чтения
NERmultilingualArabic NLPChinese NLPPII detection

Многоязычное NER: сложности обнаружения PII

Обновлено в 2026 году

Разрыв в точности

NER-модели, обученные на английском, достигают 85–92% F1 на стандартных тестах. Примените те же модели к арабскому или китайскому тексту. Точность падает до 50–70%.

Для задач защиты PII этот разрыв критичен. Показатель обнаружения 70% означает, что 30% конфиденциальных данных остаются невидимыми.

Причины — не ошибки в коде. Они вытекают из различий в письменных системах.

Четыре корневые причины

1. Границы слов

Английский разделяет слова пробелами. Токенизация проста.

В китайском пробелов нет вообще.

"张伟住在北京"
→ Сначала разбить: ["张伟", "住在", "北京"]

Модель не может пометить то, что не может обнаружить. Разбиение на слова должно предшествовать NER.

В арабском буквы связаны внутри слова. Краткие гласные опускаются. Текст идёт справа налево.

"محمد يعيش في دبي"
→ Без кратких гласных, справа налево, связанные буквы

2. Морфология

Английские глаголы изменяются несколькими способами. Арабский использует корневую систему. Один корень порождает десятки слов.

كتب (k-t-b, «писать»)
→ كاتب (писатель), كتاب (книга), مكتبة (библиотека)

NER должен анализировать корни для нахождения имён в производных формах слов.

3. Соглашения об именах

Латинские имена: Имя затем Фамилия. Имена в RTL-языках образуют семейные цепочки.

محمد بن عبد الله
(Мухаммад сын Абдуллы)

Китайские имена ставят фамилию первой. Большинство имён состоят из двух или трёх иероглифов.

张伟 (Чжан Вэй) — 2 иероглифа
欧阳修 (Оуян Сю) — 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 — сложные языки

Stanza от Стэнфорда обрабатывает арабский, китайский, японский и корейский. Выполняет разбиение слов и анализ корней до NER.

Уровень 3: XLM-RoBERTa — малоресурсные языки

Для языков без специализированных моделей. Тайский, вьетнамский, хинди, бенгальский, иврит, турецкий и фарси. Обрабатывает смешанноязычный текст без явных меток.

RTL и BiDi

Текст справа налево требует дополнительных шагов помимо разбиения.

Наш конвейер:

  1. Нормализует текст в логический порядок.
  2. Выполняет NER в этом порядке.
  3. Сопоставляет позиции сущностей обратно с визуальным порядком.

Мы удаляем прикреплённые префиксы до NER и восстанавливаем их после.

"محمد"  — только имя
"لمحمد" — «для Мухаммада» (с префиксом)

Смешение кодов

Реальные документы часто смешивают языки в одной строке.

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

Наш конвейер разбивает текст по языку. Запускает нужную модель для каждой части. Затем объединяет результаты с сопоставлением позиций.

Внутренние бенчмарки

Результаты внутренних тестов на многоязычных данных:

СценарийF1
Только английский91%
Только немецкий88%
Только арабский79%
Только китайский81%
Английский + арабский83%
Английский + китайский84%
Английский + немецкий89%

Примечания по настройке

Настольное приложение автоматически определяет язык для каждого документа. Для многоязычных файлов оно обрабатывает каждый сегмент с помощью нужной модели. Ручных действий не требуется.

Укажите язык в API, если он вам известен:

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

Используйте автоопределение, если нет:

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

Пользовательские шаблоны должны учитывать локальные цифры:

# Табельный номер (латинские цифры)
EMP-[0-9]{6}

# Табельный номер (включает арабско-индийские цифры)
موظف-[٠-٩0-9]{6}

Полный список сущностей — на странице /entities. Настройка API — на странице функций API. Наше руководство по соответствию GDPR охватывает влияние пробелов в обнаружении на законодательство о защите данных.


anonym.legal использует трёхуровневый стек NER — spaCy, Stanza и XLM-RoBERTa — для охвата 48 языков с единообразным обнаружением PII.

Источники

Готовы защитить ваши данные?

Начните анонимизацию PII с 273 типов сущностей на 48 языках.