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ásrendszer | F1-érték tartomány | Nehézségi szint |
|---|---|---|---|
| Angol | Latin | 85-92% | Alacsony |
| Német | Latin | 82-88% | Alacsony |
| Francia | Latin | 80-87% | Alacsony |
| Spanyol | Latin | 81-86% | Alacsony |
| Orosz | Cirill | 75-83% | Közepes |
| Arab | Arab | 55-75% | Magas |
| Kínai | Hanzi | 60-78% | Magas |
| Japán | Vegyes | 65-80% | Magas |
| Thai | Thai | 50-70% | Nagyon magas |
| Hindi | Devanagari | 60-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:
- Normalizálás logikai sorrendbe
- NER futtatása a logikai sorrendű szövegen
- Entitáspozíciók visszaképzése vizuális sorrendbe
- 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:
- Szöveg szegmentálása nyelvek szerint
- Az egyes szegmensek feldolgozása a megfelelő modellel
- 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önyv | F1-érték |
|---|---|
| Csak angol | 91% |
| Csak német | 88% |
| Csak arab | 79% |
| Csak kínai | 81% |
| Angol-arab keverék | 83% |
| Angol-kínai keverék | 84% |
| Angol-német keverék | 89% |
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:
- Nyelvspecifikus modellek az összetett írásrendszerekhez
- Regex-minták a strukturált adatokhoz
- Helyes RTL/BiDi-kezelés
- 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: