Vissza a BlograTechnikai

Többnyelvű NER: Az angol modellek megbuknak arabban

Az angol NER-modellek 85-92%-os pontosságot érnek el. Arabul és kínaiul? Gyakran csak 50-70%. Megismerheti a technikai kihívásokat és azt, hogyan építhet valóban hatékony megoldást.

February 26, 20268 perc olvasás
NERmultilingualArabic NLPChinese NLPPII detection

A többnyelvű NER kihívása

Az angolra tanított névfelismerő (NER) modellek lenyűgöző eredményeket érnek el – 85-92%-os F1-értékeket a szabványos teszteken. De ha ugyanezeket a modelleket arabra vagy kínaira alkalmazzuk? A pontosság gyakran 50-70%-ra esik vissza.

A személyes adat felismerés esetén ez a különbség kritikus. Egy 70%-os felismerési arány azt jelenti, hogy az érzékeny adatok 30%-a védtelen marad.

Miért buknak meg az angol modellek?

1. Szóhatárok

Angol: A szavakat szóközök választják el. ``` "John Smith lives in New York" → ["John", "Smith", "lives", "in", "New", "York"] ```

Kínai: Egyáltalán nincsenek szóhatárok. ``` "张伟住在北京" → Előbb szegmentálás szükséges: ["张伟", "住在", "北京"] ```

Arab: A szavak összekötve jelennek meg, és a rövid magánhangzókat nem írják ki. ``` "محمد يعيش في دبي" → Összefüggő írás, jobbról balra, magánhangzók nélkül ```

Az angol tokenizációs szabályok egyszerűen nem alkalmazhatók.

2. Morfológiai összetettség

Angol morfológia: Viszonylag egyszerű ``` run → runs, running, ran ```

Arab morfológia: Rendkívül összetett (gyök-minta rendszer) ``` كتب (k-t-b, "ír" gyök) → كاتب (író), كتاب (könyv), مكتبة (könyvtár), يكتب (ő ír) ```

Egyetlen arab gyökből tucatnyi kapcsolódó szó képezhető. A NER-modelleknek érteniük kell ezt a szóképzési rendszert.

3. Névkonvenciók

Angol nevek: Utónév Vezéknév ``` John Smith, Mary Johnson ```

Arab nevek: Több összetevőből állnak ``` محمد بن عبد الله بن عبد المطلب (Muhammad, Abdullah fia, Abdul-Muttalib unokája) ```

Kínai nevek: Előbb a családnév, általában 2-3 karakter összesen ``` 张伟 (Zhang Wei) – 2 karakter 欧阳修 (Ouyang Xiu) – 3 karakter ```

4. Írásirány

Angol: Balról jobbra (LTR) Arab/héber: Jobbról balra (RTL) Kevert szöveg: Kétirányú (BiDi) – rendkívül összetett

Ha egy angol név arab szövegben jelenik meg: ``` التقيت بـ John Smith في المؤتمر (Találkoztam John Smith-szel a konferencián) ``` A renderelési sorrend, a logikai sorrend és a megjelenítési sorrend mind különbözik.

Pontosság nyelvek szerint

A valós NER-teljesítmény rendkívül változó:

NyelvÍrásrendszerF1-érték tartományNehézségi szint
AngolLatin85-92%Alacsony
NémetLatin82-88%Alacsony
FranciaLatin80-87%Alacsony
SpanyolLatin81-86%Alacsony
OroszCirill75-83%Közepes
ArabArab55-75%Magas
KínaiHanzi60-78%Magas
JapánVegyes65-80%Magas
ThaiThai50-70%Nagyon magas
HindiDevanagari60-75%Magas

Az összetett morfológiájú, nem latin betűs vagy szóhatár nélküli nyelvek következetesen gyengébb eredményt mutatnak.

Az anonym.legal háromszintű megközelítése

A többnyelvű NER-t három specializált szinten keresztül oldjuk meg:

1. szint: spaCy (25 nyelv)

Nagy erőforrású nyelvekhez, ahol megbízható modellek léteznek:

  • Angol, német, francia, spanyol, olasz, portugál
  • Holland, lengyel, orosz, görög
  • És még 15 megbízható pontosságú nyelv

2. szint: Stanza (7 nyelv)

Összetett morfológiájú nyelvekhez:

  • Arab (gyök-minta morfológia)
  • Kínai (szósegmentálás szükséges)
  • Japán (több írásrendszer)
  • Koreai (agglutináló)
  • És még 3 nyelv

3. szint: XLM-RoBERTa (16 nyelv)

Dedikált modellek nélküli alacsony erőforrású nyelvekhez:

  • Thai, vietnámi, indonéz
  • Hindi, bengáli, tamil
  • Héber, török, perzsa
  • És további nyelvek

Működési elv

``` Bemeneti szöveg nyelvfelismeréssel ↓ [Nyelvi útválasztó] ↓ ┌───────┴───────┐ ↓ ↓ Nagy erőforrású Összetett/alacsony erőforrású (spaCy) (Stanza/XLM-RoBERTa) ↓ ↓ └───────┬───────┘ ↓ [Regex-réteg strukturált adatokhoz] ↓ [Megbízhatósági összesítő] ↓ Végleges entitások ```

Regex-réteg

Néhány minta nyelvfüggetlen:

  • E-mail-cím: `[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}`
  • Bankkártya: `\d{4}[\s-]?\d{4}[\s-]?\d{4}[\s-]?\d{4}`
  • Telefonszám: Országonkénti eltérő minták

Ezeket strukturált adatokhoz mindig alkalmazzuk, nyelvtől függetlenül.

RTL írásirány kezelése

A jobbról balra olvasott nyelvek különleges kezelést igényelnek:

Kétirányú szövegalgoritmus

Ha az arab szövegben angol szó szerepel: ``` Vizuális: المؤتمر في John Smith بـ التقيت Logikai: التقيت بـ John Smith في المؤتمر ```

Feldolgozásunk:

  1. Normalizálás logikai sorrendbe
  2. NER futtatása a logikai sorrendű szövegen
  3. Entitáspozíciók visszaképzése vizuális sorrendbe
  4. Konzisztens pozíciók visszaadása minden rendereléshez

Entitáshatárok azonosítása

Az arab entitáshatárok összetettebbek: ``` "محمد" – csak a név "لمحمد" – "Muhammadnak" (csatolt elöljárószó) "ومحمد" – "és Muhammad" (csatolt kötőszó) ```

A toldalékokat NER előtt eltávolítjuk, utána visszaillesztjük.

Kódváltás (code-switching)

A valódi szöveg gyakran kever több nyelvet:

``` "El meeting con John es at 3pm" (Spanyol-angol keverék)

"我今天跟John去shopping" (Kínai-angol keverék) ```

Megközelítésünk:

  1. Szöveg szegmentálása nyelvek szerint
  2. Az egyes szegmensek feldolgozása a megfelelő modellel
  3. Eredmények összesítése pozícióleképzéssel

Teljesítmény-összehasonlítók

Belső tesztelés vegyes nyelvű adatkészleteken:

ForgatókönyvF1-érték
Csak angol91%
Csak német88%
Csak arab79%
Csak kínai81%
Angol-arab keverék83%
Angol-kínai keverék84%
Angol-német keverék89%

Hibrid megközelítésünk még a nehezebb nyelveken is magas pontosságot tart fenn.

Megvalósítási tippek

API-felhasználóknak

Ha ismert, adja meg a nyelvet: ```json { "text": "محمد بن عبد الله", "language": "ar" } ```

Ha ismeretlen, engedje meg az automatikus felismerést: ```json { "text": "محمد بن عبد الله", "language": "auto" } ```

Asztali alkalmazás felhasználóknak

Az alkalmazás dokumentumonként automatikusan felismeri a nyelvet. Vegyes nyelvű fájloknál minden szegmenst megfelelően dolgoz fel.

Egyéni entitástípusokhoz

Az egyéni minták vegyék figyelembe az írásrendszereket: ```

Angol alkalmazotti azonosító

EMP-[0-9]{6}

Arab alkalmazotti azonosító (arab számjegyekkel)

موظف-[٠-٩0-9]{6} ```

Következtetés

Az angolra tanított NER-modellek nem működnek nem angol szövegeknél, mert a nyelvek alapvetően különböznek:

  • Szóhatárok (vagy azok hiánya)
  • Morfológiai összetettség
  • Írásirány
  • Névkonvenciók

Hatékony többnyelvű személyes adat felismeréshez szükséges:

  1. Nyelvspecifikus modellek az összetett írásrendszerekhez
  2. Regex-minták a strukturált adatokhoz
  3. Helyes RTL/BiDi-kezelés
  4. Kódváltás-támogatás

Az anonym.legal 48 nyelvet támogat háromszintű megközelítésünkkel, következetesen magas pontossággal.

Próbálja ki maga is:


Források:

Készen áll az adatai védelmére?

Kezdje el a PII anonimizálását 273 entitástípuson 48 nyelven.