Tantangan NER Multibahasa
Model Named Entity Recognition (NER) yang dilatih dalam bahasa Inggris menghasilkan skor F1 yang mengesankan — 85-92% pada benchmark standar. Terapkan model yang sama untuk bahasa Arab atau Mandarin? Akurasi seringkali turun ke 50-70%.
Untuk deteksi PII, kesenjangan ini sangat kritis. Tingkat deteksi 70% berarti 30% data sensitif tidak terlindungi.
Mengapa Model Bahasa Inggris Gagal
1. Batas Kata
Bahasa Inggris: Kata-kata dipisahkan oleh spasi.
"John Smith lives in New York"
→ ["John", "Smith", "lives", "in", "New", "York"]
Bahasa Mandarin: Tidak ada batas kata sama sekali.
"张伟住在北京"
→ Perlu segmentasi dulu: ["张伟", "住在", "北京"]
Bahasa Arab: Kata-kata terhubung, dan vokal pendek tidak ditulis.
"محمد يعيش في دبي"
→ Tulisan bersambung, kanan ke kiri, vokal dihilangkan
Aturan tokenisasi bahasa Inggris tidak berlaku di sini.
2. Kompleksitas Morfologi
Morfologi bahasa Inggris: Relatif sederhana
run → runs, running, ran
Morfologi bahasa Arab: Sangat kompleks (sistem akar-pola)
كتب (k-t-b, akar "tulis")
→ كاتب (penulis), كتاب (buku), مكتبة (perpustakaan), يكتب (dia menulis)
Satu akar bahasa Arab menghasilkan puluhan kata terkait. Model NER harus memahami sistem derivasi ini.
3. Konvensi Nama
Nama bahasa Inggris: Nama Depan Belakang
John Smith, Mary Johnson
Nama bahasa Arab: Terdiri dari beberapa komponen
محمد بن عبد الله بن عبد المطلب
(Muhammad putra Abdullah putra Abdul-Muttalib)
Nama bahasa Mandarin: Nama keluarga di depan, sering 2-3 karakter total
张伟 (Zhang Wei) - 2 karakter
欧阳修 (Ouyang Xiu) - 3 karakter
4. Arah Penulisan
Bahasa Inggris: Kiri ke kanan (LTR) Bahasa Arab/Ibrani: Kanan ke kiri (RTL) Teks campuran: Dua arah (BiDi) - sangat kompleks
Ketika nama bahasa Inggris muncul dalam teks bahasa Arab:
التقيت بـ John Smith في المؤتمر
(Saya bertemu John Smith di konferensi itu)
Urutan rendering, urutan logis, dan urutan tampilan semuanya berbeda.
Akurasi per Bahasa
Performa NER di dunia nyata bervariasi secara dramatis:
| Bahasa | Aksara | Rentang F1-Score | Tingkat Kesulitan |
|---|---|---|---|
| Inggris | Latin | 85-92% | Rendah |
| Jerman | Latin | 82-88% | Rendah |
| Prancis | Latin | 80-87% | Rendah |
| Spanyol | Latin | 81-86% | Rendah |
| Rusia | Sirilik | 75-83% | Sedang |
| Arab | Arab | 55-75% | Tinggi |
| Mandarin | Hanzi | 60-78% | Tinggi |
| Jepang | Campuran | 65-80% | Tinggi |
| Thailand | Thai | 50-70% | Sangat Tinggi |
| Hindi | Devanagari | 60-75% | Tinggi |
Bahasa dengan morfologi kompleks, aksara non-Latin, atau tanpa batas kata secara konsisten menunjukkan performa lebih rendah.
Pendekatan Tiga Tingkat anonym.legal
Kami mengatasi NER multibahasa melalui tiga tingkat khusus:
Tingkat 1: spaCy (25 bahasa)
Untuk bahasa dengan sumber daya tinggi dan model yang baik:
- Inggris, Jerman, Prancis, Spanyol, Italia, Portugis
- Belanda, Polandia, Rusia, Yunani
- Dan 15 bahasa lain dengan akurasi yang andal
Tingkat 2: Stanza (7 bahasa)
Untuk bahasa dengan morfologi kompleks:
- Arab (morfologi akar-pola)
- Mandarin (memerlukan segmentasi kata)
- Jepang (beberapa aksara)
- Korea (aglutinasi)
- Dan 3 bahasa lainnya
Tingkat 3: XLM-RoBERTa (16 bahasa)
Untuk bahasa dengan sumber daya rendah tanpa model khusus:
- Thailand, Vietnam, Indonesia
- Hindi, Bengali, Tamil
- Ibrani, Turki, Persia
- Dan lainnya
Cara Kerjanya
Teks input dengan deteksi bahasa
↓
[Router Bahasa]
↓
┌───────┴───────┐
↓ ↓
Sumber daya tinggi Kompleks/Sumber daya rendah
(spaCy) (Stanza/XLM-RoBERTa)
↓ ↓
└───────┬───────┘
↓
[Overlay regex untuk data terstruktur]
↓
[Penggabungan kepercayaan]
↓
Entitas akhir
Overlay Regex
Beberapa pola tidak bergantung bahasa:
- Alamat email:
[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,} - Kartu kredit:
\d{4}[\s-]?\d{4}[\s-]?\d{4}[\s-]?\d{4} - Nomor telepon: Berbagai pola per negara
Kami menerapkan regex terlebih dahulu untuk data terstruktur, terlepas dari bahasanya.
Penanganan Aksara RTL
Bahasa kanan ke kiri memerlukan penanganan khusus:
Algoritma Teks Dua Arah
Ketika bahasa Arab mengandung teks bahasa Inggris:
Visual: المؤتمر في John Smith بـ التقيت
Logis: التقيت بـ John Smith في المؤتمر
Pemrosesan kami:
- Normalisasi ke urutan logis
- Jalankan NER pada urutan logis
- Petakan posisi entitas kembali ke urutan visual
- Kembalikan posisi konsisten untuk rendering apapun
Deteksi Batas Entitas
Batas entitas bahasa Arab itu kompleks:
"محمد" - hanya nama
"لمحمد" - "kepada Muhammad" (preposisi tersambung)
"ومحمد" - "dan Muhammad" (konjungsi tersambung)
Kami melepas imbuhan sebelum NER dan menempelkannya kembali setelahnya.
Pergantian Kode
Teks nyata sering mencampur bahasa:
"El meeting con John es at 3pm"
(Campuran Spanyol-Inggris)
"我今天跟John去shopping"
(Campuran Mandarin-Inggris)
Pendekatan kami:
- Segmentasikan teks per bahasa
- Proses setiap segmen dengan model yang sesuai
- Gabungkan hasil dengan pemetaan posisi
Benchmark Performa
Pengujian internal pada dataset multibahasa:
| Skenario | F1-Score |
|---|---|
| Hanya bahasa Inggris | 91% |
| Hanya bahasa Jerman | 88% |
| Hanya bahasa Arab | 79% |
| Hanya bahasa Mandarin | 81% |
| Campuran Inggris-Arab | 83% |
| Campuran Inggris-Mandarin | 84% |
| Campuran Inggris-Jerman | 89% |
Pendekatan hibrida kami mempertahankan akurasi tinggi bahkan pada bahasa yang menantang.
Tips Implementasi
Untuk Pengguna API
Tentukan bahasa jika diketahui:
{
"text": "محمد بن عبد الله",
"language": "ar"
}
Biarkan sistem mendeteksi otomatis jika tidak diketahui:
{
"text": "محمد بن عبد الله",
"language": "auto"
}
Untuk Pengguna Aplikasi Desktop
Aplikasi mendeteksi bahasa secara otomatis per dokumen. Untuk file multibahasa, setiap segmen diproses secara tepat.
Untuk Tipe Entitas Kustom
Pola kustom harus memperhitungkan aksara:
# ID karyawan bahasa Inggris
EMP-[0-9]{6}
# ID karyawan bahasa Arab (termasuk angka Arab)
موظف-[٠-٩0-9]{6}
Kesimpulan
Model NER yang dilatih dalam bahasa Inggris gagal pada teks non-Inggris karena bahasa-bahasa tersebut berbeda secara fundamental dalam:
- Batas kata (atau ketidakadaannya)
- Kompleksitas morfologi
- Arah aksara
- Konvensi nama
Deteksi PII multibahasa yang efektif membutuhkan:
- Model spesifik bahasa untuk aksara yang kompleks
- Pola regex untuk data terstruktur
- Penanganan RTL/BiDi yang tepat
- Dukungan pergantian kode
anonym.legal mendukung 48 bahasa melalui pendekatan tiga tingkat kami, mencapai akurasi konsisten di semua bahasa.
Coba sendiri:
Sumber: