anonym.legal
Înapoi la BlogTehnic

NER Multilingv: De ce modelele antrenate pe limba...

Modelele NER în limba engleză ating 85-92% acuratețe. Arabă și chineză? Adesea 50-70%.

February 26, 20268 min citire
NERmultilingualArabic NLPChinese NLPPII detection

Provocarea NER Multilingvă

Modelele Named Entity Recognition (NER) antrenate pe limba engleză obțin rezultate impresionante—scoruri F1 de 85-92% pe benchmark-uri standard. Aplicați aceleași modele pe arabă sau chineză? Acuratețea scade adesea la 50-70%.

Pentru detecția PII, această diferență este critică. O rată de detecție de 70% înseamnă 30% din datele sensibile rămân neprotejate.

De ce eșuează modelele în limba engleză

1. Limitele cuvintelor

Engleză: Cuvintele sunt separate prin spații.

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

Chineză: Fără delimitări de cuvinte.

"张伟住在北京"
→ Necesită segmentare mai întâi: ["张伟", "住在", "北京"]

Arabă: Cuvintele se conectează, iar vocalele scurte nu sunt scrise.

"محمد يعيش في دبي"
→ Script conectat, de la dreapta la stânga, vocale omise

Regulile de tokenizare din limba engleză pur și simplu nu se aplică.

2. Complexitate morfologică

Morfologie engleză: Relativ simplă

run → runs, running, ran

Morfologie arabă: Extrem de complexă (sistem rădăcină-model)

كتب (k-t-b, rădăcina "a scrie")
→ كاتب (scriitor), كتاب (carte), مكتبة (bibliotecă), يكتب (el scrie)

O singură rădăcină arabă generează zeci de cuvinte conexe. Modelele NER trebuie să înțeleagă acest sistem de derivare.

3. Convenții de denumire

Nume în limba engleză: Prenume Nume

John Smith, Mary Johnson

Nume arabe: Multiple componente

محمد بن عبد الله بن عبد المطلب
(Muhammad fiul-lui Abdullah fiul-lui Abdul-Muttalib)

Nume chineze: Nume de familie mai întâi, adesea 2-3 caractere în total

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

4. Direcția scriptului

Engleză: De la stânga la dreapta (LTR) Arabă/Ebraică: De la dreapta la stânga (RTL) Text mixt: Bidirecțional (BiDi) - extrem de complex

Când un nume în limba engleză apare în text arab:

التقيت بـ John Smith في المؤتمر
(M-am întâlnit cu John Smith la conferință)

Ordinea de redare, ordinea logică și ordinea de afișare diferă toate.

Acuratețe după limbă

Performanța NER din lumea reală variază dramatic:

LimbăScriptInterval F1-ScoreNivel de dificultate
EnglezăLatin85-92%Scăzut
GermanăLatin82-88%Scăzut
FrancezăLatin80-87%Scăzut
SpaniolăLatin81-86%Scăzut
RusăChirilic75-83%Mediu
ArabăArabă55-75%Ridicat
ChinezăHanzi60-78%Ridicat
JaponezăMixt65-80%Ridicat
TailandezăTailandeză50-70%Foarte ridicat
HindiDevanagari60-75%Ridicat

Limbile cu morfologie complexă, scripturi non-latine sau fără delimitări de cuvinte performează în mod constant mai slab.

Abordarea cu trei niveluri a anonym.legal

Rezolvăm NER multilingv prin trei niveluri specializate:

Nivelul 1: spaCy (25 de limbi)

Pentru limbi cu resurse bogate cu modele bune:

  • Engleză, germană, franceză, spaniolă, italiană, portugheză
  • Olandeză, poloneză, rusă, greacă
  • Și 15 altele cu acuratețe fiabilă

Nivelul 2: Stanza (7 limbi)

Pentru limbi cu morfologie complexă:

  • Arabă (morfologie rădăcină-model)
  • Chineză (segmentare de cuvinte necesară)
  • Japoneză (scripturi multiple)
  • Coreeană (aglutinativă)
  • Și 3 altele

Nivelul 3: XLM-RoBERTa (16 limbi)

Pentru limbi cu resurse reduse fără modele dedicate:

  • Tailandeză, vietnameză, indoneziană
  • Hindi, bengali, tamil
  • Ebraică, turcă, farsi
  • Și altele

Cum funcționează

Text de intrare cu detectare limbă
        ↓
[Router de limbă]
        ↓
┌───────┴───────┐
↓               ↓
Rezurse bogate  Resurse complexe/reduse
(spaCy)         (Stanza/XLM-RoBERTa)
↓               ↓
└───────┬───────┘
        ↓
[Suprapunere regex pentru date structurate]
        ↓
[Fuzionare încredere]
        ↓
Entități finale

Suprapunere Regex

Unele modele sunt independente de limbă:

  • Adrese de e-mail: [a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}
  • Carduri de credit: \d{4}[\s-]?\d{4}[\s-]?\d{4}[\s-]?\d{4}
  • Numere de telefon: Diverse modele pe țară

Aplicăm regex mai întâi pentru date structurate, indiferent de limbă.

Gestionarea scripturilor RTL

Limbile de la dreapta la stânga necesită tratament special:

Algoritm de text bidirecțional

Când arabă conține engleză:

Vizual: المؤتمر في John Smith بـ التقيت
Logic: التقيت بـ John Smith في المؤتمر

Procesarea noastră:

  1. Normalizare la ordine logică
  2. Rulare NER pe ordine logică
  3. Mapare poziții entități înapoi la ordine vizuală
  4. Returnare poziții consistente pentru orice redare

Detecție limite entități

Limitele entităților arabe sunt complexe:

"محمد" - doar numele
"لمحمد" - "pentru Muhammad" (prepoziție atașată)
"ومحمد" - "și Muhammad" (conjuncție atașată)

Eliminum afixele înainte de NER și le reattașam după.

Schimbare de cod

Textul real adesea amestecă limbi:

"El meeting con John es at 3pm"
(Amestec spaniol-engleză)

"我今天跟John去shopping"
(Amestec chinez-engleză)

Abordarea noastră:

  1. Segmentare text după limbă
  2. Procesare fiecare segment cu model potrivit
  3. Fuzionare rezultate cu mapare poziție

Benchmark-uri de performanță

Testare internă pe seturi de date multilingve:

ScenariuF1-Score
Doar engleză91%
Doar germană88%
Doar arabă79%
Doar chineză81%
Amestec engleză-arabă83%
Amestec engleză-chineză84%
Amestec engleză-germană89%

Abordarea noastră hibridă menține acuratețe ridicată chiar și pe limbi provocatoare.

Sfaturi de implementare

Pentru utilizatorii API

Specificați limba când este cunoscută:

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

Lăsați detectare automată când este necunoscută:

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

Pentru utilizatorii aplicației desktop

Aplicația detectează automat limba per-document. Pentru fișiere multilingve, procesează fiecare segment în mod corespunzător.

Pentru tipuri de entități personalizate

Modelele personalizate ar trebui să țină cont de scripturi:

# ID angajat în limba engleză
EMP-[0-9]{6}

# ID angajat în arabă (include cifre arabe)
موظف-[٠-٩0-9]{6}

Concluzie

Modelele NER antrenate pe limba engleză eșuează pe text non-englez deoarece limbile diferă fundamental în:

  • Delimitări de cuvinte (sau lipsa acestora)
  • Complexitate morfologică
  • Direcție script
  • Convenții de denumire

Detecția PII multilingvă eficace necesită:

  1. Modele specifice limbii pentru scripturi complexe
  2. Modele regex pentru date structurate
  3. Gestionare corectă RTL/BiDi
  4. Suport schimbare de cod

anonym.legal suportă 48 de limbi prin abordarea noastră cu trei niveluri, realizând acuratețe consistentă pe toate.

Încercați-o singuri:


Surse:

Pregătit să vă protejați datele?

Începeți să anonimizati PII cu 285+ tipuri de entități în 48 de limbi.