NER หลายภาษา: ความท้าทายในการตรวจจับ PII
อัปเดตสำหรับปี 2026
ช่องว่างด้านความแม่นยำ
โมเดล NER ที่ฝึกด้วยภาษาอังกฤษได้คะแนน F1 85–92% ในการทดสอบมาตรฐาน แต่เมื่อนำโมเดลเดียวกันไปใช้กับข้อความภาษาอาหรับหรือจีน ความแม่นยำลดลงเหลือ 50–70%
สำหรับงาน PII ช่องว่างนี้คือปัญหาร้ายแรง อัตราการตรวจพบ 70% หมายความว่า ข้อมูลสำคัญ 30% ไม่ถูกตรวจพบ
สาเหตุไม่ใช่ข้อบกพร่องในโปรแกรม แต่มาจากความแตกต่างของระบบการเขียน
สาเหตุหลัก 4 ประการ
1. ขอบเขตคำ
ภาษาอังกฤษแบ่งคำด้วยช่องว่าง การแบ่ง token ทำได้ง่าย ภาษาจีนไม่มีช่องว่างเลย โมเดลไม่สามารถแท็กสิ่งที่หาไม่พบ การแบ่งคำต้องมาก่อน NER
ภาษาอาหรับเชื่อมตัวอักษรภายในคำ ไม่ใส่สระสั้น และเขียนจากขวาไปซ้าย
2. สัณฐานวิทยา
ภาษาอาหรับใช้ระบบรากศัพท์ รากเดียวสร้างคำได้หลายสิบคำ NER ต้องวิเคราะห์รากศัพท์เพื่อหาชื่อในรูปแบบคำที่ดัดแปลง ตัวอย่างเช่น รากคำ k-t-b ("เขียน") ให้กำเนิดคำว่า นักเขียน หนังสือ และห้องสมุด
3. รูปแบบชื่อ
ชื่อภาษาละตินเป็นชื่อต้นตามด้วยนามสกุล ชื่อในภาษา RTL เชื่อมโยงสายสัมพันธ์ครอบครัว เช่น "มูฮัมมัด บุตรชายของ อับดุลลาห์" ชื่อภาษาจีนใส่นามสกุลก่อน ส่วนใหญ่ยาวสองหรือสามตัวอักษร โมเดลที่สร้างบนรูปแบบชื่อตะวันตกจะพลาดโครงสร้างเหล่านี้
4. ทิศทางข้อความ
บางภาษาอ่านจากขวาไปซ้าย เมื่อข้อความ RTL มีชื่อภาษาอังกฤษ ลำดับการแสดงผลและลำดับทางตรรกะแยกออกจากกัน เรียกว่าข้อความ BiDi ซึ่งต้องการการแยกวิเคราะห์อย่างระมัดระวัง
คะแนน F1 ตามระบบการเขียน
| ภาษา | ระบบการเขียน | ช่วง F1 | ระดับ |
|---|---|---|---|
| อังกฤษ | ละติน | 85–92% | ต่ำ |
| เยอรมัน | ละติน | 82–88% | ต่ำ |
| ฝรั่งเศส | ละติน | 80–87% | ต่ำ |
| สเปน | ละติน | 81–86% | ต่ำ |
| รัสเซีย | ซีริลลิก | 75–83% | ปานกลาง |
| อาหรับ | อับจาด | 55–75% | สูง |
| จีน | ฮันจี | 60–78% | สูง |
| ญี่ปุ่น | ผสม | 65–80% | สูง |
| ไทย | ไทย | 50–70% | สูงมาก |
| ฮินดี | เทวนาครี | 60–75% | สูง |
ระบบที่ไม่ใช่ละตินและการขาดช่องว่างระหว่างคำทำให้คะแนนลดลงโดยรวม
โซลูชันสามระดับ
เราใช้สามระดับเพื่อครอบคลุม 48 ภาษาและระบบการเขียน
ระดับ 1: spaCy — 25 ภาษา
สำหรับภาษาที่มีโมเดลที่ผ่านการทดสอบแล้ว ครอบคลุมภาษาอังกฤษ เยอรมัน ฝรั่งเศส สเปน อิตาลี โปรตุเกส ดัตช์ โปแลนด์ รัสเซีย และกรีก
ระดับ 2: Stanza — ภาษาที่ซับซ้อน
Stanford Stanza จัดการภาษาอาหรับ จีน ญี่ปุ่น และเกาหลี โดยรันการแบ่งคำและการวิเคราะห์รากศัพท์ก่อน NER
ระดับ 3: XLM-RoBERTa — ภาษาที่มีทรัพยากรน้อย
สำหรับภาษาที่ไม่มีโมเดลเฉพาะ ได้แก่ ไทย เวียดนาม ฮินดี เบงกาลี ฮีบรู ตุรกี และฟาร์ซี รองรับข้อความหลายภาษาผสมกันโดยไม่ต้องระบุภาษาอย่างชัดเจน
RTL และ BiDi
Pipeline ของเรา: (1) ปรับข้อความให้เป็นลำดับทางตรรกะ (2) รัน NER บนลำดับนั้น (3) แมปตำแหน่ง entity กลับไปยังลำดับการแสดงผล เราตัด prefix ที่ติดกันออกก่อน NER และเพิ่มกลับหลังจากนั้น
การสลับโค้ด
เอกสารจริงมักผสมภาษาในบรรทัดเดียวกัน เช่น "El meeting con John es at 3pm" Pipeline ของเราแบ่งตามภาษา รันโมเดลที่เหมาะสมในแต่ละส่วน จากนั้นรวมผลลัพธ์พร้อมการแมปตำแหน่ง
ผลการทดสอบภายใน
ผลจากการทดสอบภายในบนข้อมูลหลายภาษาผสมกัน:
| สถานการณ์ | F1 |
|---|---|
| ภาษาอังกฤษเท่านั้น | 91% |
| ภาษาเยอรมันเท่านั้น | 88% |
| ภาษาอาหรับเท่านั้น | 79% |
| ภาษาจีนเท่านั้น | 81% |
| ผสมอังกฤษ-อาหรับ | 83% |
| ผสมอังกฤษ-จีน | 84% |
| ผสมอังกฤษ-เยอรมัน | 89% |
หมายเหตุการตั้งค่า
Desktop App ตรวจจับภาษาอัตโนมัติต่อเอกสาร สำหรับไฟล์ที่มีหลายภาษา จะประมวลผลแต่ละส่วนด้วยโมเดลที่เหมาะสม ไม่ต้องทำขั้นตอนด้วยตนเอง
ระบุภาษาใน API เมื่อทราบ ด้วย "language": "ar" ใช้ "language": "auto" เมื่อไม่ทราบ
ดู รายการ entity ครบถ้วน สำหรับการตั้งค่า API เยี่ยมชม หน้าฟีเจอร์ API คู่มือการปฏิบัติตาม GDPR ของเราครอบคลุมว่าช่องว่างในการตรวจจับส่งผลต่อกฎหมายคุ้มครองข้อมูลอย่างไร
anonym.legal ใช้ stack NER สามระดับ — spaCy, Stanza และ XLM-RoBERTa — เพื่อครอบคลุม 48 ภาษาด้วยการตรวจจับ PII ที่สม่ำเสมอ