Tantangan NER Multi-Bahasa
Model Named Entity Recognition (NER) yang dilatih pada bahasa Inggris mencapai hasil yang mengesankan—skor F1 85-92% pada tolok ukur standar. Terapkan model yang sama pada bahasa Arab atau Mandarin? Akurasi sering turun menjadi 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: Sama sekali tidak ada batas kata.
"张伟住在北京"
→ Perlu segmentasi terlebih dahulu: ["张伟", "住在", "北京"]
Bahasa Arab: Kata-kata saling terhubung, dan vokal pendek tidak ditulis.
"محمد يعيش في دبي"
→ Skrip yang terhubung, kanan-ke-kiri, vokal dihilangkan
Aturan tokenisasi bahasa Inggris tidak berlaku.
2. Kompleksitas Morfologi
Morfologi Inggris: Relatif sederhana
run → runs, running, ran
Morfologi Arab: Sangat kompleks (sistem akar-pola)
كتب (k-t-b, akar "menulis")
→ كاتب (penulis), كتاب (buku), مكتبة (perpustakaan), يكتب (dia menulis)
Satu akar Arab menghasilkan puluhan kata terkait. Model NER harus memahami sistem derivasi ini.
3. Konvensi Nama
Nama Inggris: Nama depan Nama belakang
John Smith, Mary Johnson
Nama Arab: Beberapa komponen
محمد بن عبد الله بن عبد المطلب
(Muhammad putra-dari Abdullah putra-dari Abdul-Muttalib)
Nama Mandarin: Nama keluarga terlebih dahulu, biasanya 2-3 karakter total
张伟 (Zhang Wei) - 2 karakter
欧阳修 (Ouyang Xiu) - 3 karakter
4. Arah Skrip
Bahasa Inggris: Kiri-ke-kanan (LTR) Arab/Ibrani: Kanan-ke-kiri (RTL) Teks campuran: Dua arah (BiDi) - sangat kompleks
Ketika nama bahasa Inggris muncul dalam teks Arab:
التقيت بـ John Smith في المؤتمر
(Saya bertemu John Smith di konferensi)
Urutan rendering, urutan logis, dan urutan tampilan semuanya berbeda.
Akurasi per Bahasa
Kinerja NER di dunia nyata bervariasi secara dramatis:
| Bahasa | Skrip | Kisaran F1-Score | Tingkat Tantangan |
|---|---|---|---|
| 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 yang kompleks, skrip non-Latin, atau tanpa batas kata secara konsisten berkinerja buruk.
Pendekatan Tiga Tingkat anonym.legal
Kami memecahkan NER multibahasa melalui tiga tingkat khusus:
Tingkat 1: spaCy (25 bahasa)
Untuk bahasa dengan sumber daya tinggi dan model yang bagus:
- Inggris, Jerman, Prancis, Spanyol, Italia, Portugis
- Belanda, Polandia, Rusia, Yunani
- Dan 15 bahasa lagi dengan akurasi yang andal
Tingkat 2: Stanza (7 bahasa)
Untuk bahasa dengan morfologi yang kompleks:
- Arab (morfologi akar-pola)
- Mandarin (segmentasi kata diperlukan)
- Jepang (beberapa skrip)
- 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, Farsi
- Dan banyak lagi
Cara Kerjanya
Teks input dengan deteksi bahasa
↓
[Router Bahasa]
↓
┌───────┴───────┐
↓ ↓
Sumber daya tinggi Kompleks/Rendah sumber daya
(spaCy) (Stanza/XLM-RoBERTa)
↓ ↓
└───────┬───────┘
↓
[Overlay regex untuk data terstruktur]
↓
[Penggabung 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, tanpa memandang bahasa.
Penanganan Skrip RTL
Bahasa kanan-ke-kiri memerlukan penanganan khusus:
Algoritma Teks Dua Arah
Ketika bahasa Arab mengandung 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 Arab yang kompleks:
"محمد" - hanya nama
"لمحمد" - "kepada Muhammad" (preposisi yang melekat)
"ومحمد" - "dan Muhammad" (konjungsi yang melekat)
Kami melepas afiks sebelum NER dan melampirkannya kembali setelahnya.
Code-Switching
Teks nyata sering mencampur bahasa:
"El meeting con John es at 3pm"
(pencampuran Spanyol-Inggris)
"我今天跟John去shopping"
(pencampuran Mandarin-Inggris)
Pendekatan kami:
- Segmentasikan teks berdasarkan bahasa
- Proses setiap segmen dengan model yang sesuai
- Gabungkan hasil dengan pemetaan posisi
Tolok Ukur Kinerja
Pengujian internal pada dataset multi-bahasa:
| Skenario | Skor F1 |
|---|---|
| Bahasa Inggris saja | 91% |
| Bahasa Jerman saja | 88% |
| Bahasa Arab saja | 79% |
| Bahasa Mandarin saja | 81% |
| Campuran Inggris-Arab | 83% |
| Campuran Inggris-Mandarin | 84% |
| Campuran Inggris-Jerman | 89% |
Pendekatan hybrid kami mempertahankan akurasi tinggi bahkan pada bahasa yang menantang.
Tips Implementasi
Untuk Pengguna API
Tentukan bahasa jika diketahui:
{
"text": "محمد بن عبد الله",
"language": "ar"
}
Biarkan kami mendeteksi secara otomatis jika tidak diketahui:
{
"text": "محمد بن عبد الله",
"language": "auto"
}
Untuk Pengguna Aplikasi Desktop
Aplikasi mendeteksi bahasa secara otomatis per dokumen. Untuk file multi-bahasa, ia memproses setiap segmen dengan tepat.
Kesimpulan
Model NER yang dilatih bahasa Inggris gagal pada teks non-Inggris karena bahasa berbeda secara fundamental dalam:
- Batas kata (atau ketiadaannya)
- Kompleksitas morfologi
- Arah skrip
- Konvensi nama
Deteksi PII multibahasa yang efektif memerlukan:
- Model khusus bahasa untuk skrip yang kompleks
- Pola regex untuk data terstruktur
- Penanganan RTL/BiDi yang tepat
- Dukungan code-switching
anonym.legal mendukung 48 bahasa melalui pendekatan tiga tingkat kami, mencapai akurasi yang konsisten di seluruh bahasa.
Coba sendiri:
Sumber: