ข้ามไปยังเนื้อหาหลัก

ภาษาไทยไม่มีช่องว่าง: ระบบรู้จำเสียงจัดการการตัดคำและการประเมินผลอย่างไร

ภาษาไทยเขียนโดยไม่เว้นวรรคระหว่างคำ ช่องว่างมักปรากฏเฉพาะระหว่างวลีหรือประโยค ทำให้ “ผลที่รู้จำได้ควรแบ่งคำตรงไหน” กลายเป็นปัญหาแยกต่างหาก และทำให้อัตราความผิดพลาดระดับคำ (WER) ซึ่งเป็นตัวชี้วัดที่ใช้กันทั่วไป ไม่คงที่เมื่อใช้กับภาษาไทย บทความนี้อธิบายตัวชี้วัดและวิธีปรับข้อความให้เป็นมาตรฐานที่เราใช้ในการประเมินการรู้จำเสียงภาษาไทย

1. ทำไมภาษาไทยจึงไม่มีช่องว่าง

ภาษาไทยเป็นระบบเขียนที่เขียนติดกัน คำในประโยคต่อกันโดยไม่เว้นวรรค ผู้อ่านแบ่งคำเองจากความรู้เรื่องคำศัพท์ ช่องว่างในภาษาไทยทำหน้าที่คล้ายจุลภาคหรือมหัพภาค คือใช้คั่นวลีและประโยค

สำหรับการรู้จำเสียง โมเดลจะให้ผลลัพธ์เป็นสายอักขระต่อเนื่อง หากระบบปลายทางต้องการค้นหา แปล หรือขึ้นบรรทัดใหม่ในซับไตเติล ก็ต้องตัดคำอีกครั้ง และการตัดคำเองก็กำกวม สายอักขระเดียวกันอาจตัดได้ถูกต้องมากกว่าหนึ่งแบบ ตัวตัดคำแต่ละตัวยังใช้พจนานุกรมและกฎต่างกันด้วย

ตากลมสายอักขระเดียวกัน ตัดได้สองแบบ
ตา | กลมดวงตากลมตาก | ลมผึ่งลม
ตัวอย่างความกำกวมของการตัดคำภาษาไทยที่พบบ่อย

2. ทำไม WER จึงไม่คงที่กับภาษาไทย

อัตราความผิดพลาดระดับคำ (WER) นับจำนวนการแทนที่ การลบ และการแทรกเป็นรายคำ แล้วหารด้วยจำนวนคำในข้อความอ้างอิง สำหรับภาษาไทย ทั้งข้อความอ้างอิงและผลการรู้จำต้องผ่านการตัดคำก่อนจึงจะคำนวณได้ ตัวตัดคำจึงกลายเป็นส่วนหนึ่งของการประเมินผล เมื่อเปลี่ยนตัวตัดคำ จำนวนคำและการจัดแนวก็เปลี่ยนไป ค่า WER จึงเปลี่ยนตามไปด้วย

อัตราความผิดพลาดระดับอักขระ (CER) นับเป็นรายอักขระ ไม่ต้องตัดคำ ผลลัพธ์จึงขึ้นกับข้อความสองชุดนั้นเท่านั้น ด้วยเหตุนี้การรู้จำเสียงภาษาไทยจึงนิยมใช้ CER เป็นตัวชี้วัดหลัก

CER = (S + D + I) / N

S  จำนวนอักขระที่ถูกแทนที่
D  จำนวนอักขระที่ถูกลบ
I  จำนวนอักขระที่ถูกเพิ่ม
N  จำนวนอักขระในข้อความอ้างอิง

CER ก็มีข้อจำกัด คือนับการผิดหนึ่งอักขระกับการผิดหนึ่งคำเท่ากัน และบอกไม่ได้โดยตรงว่าประโยคอ่านลื่นหรือไม่ เราจึงรายงาน WER ที่ใช้ตัวตัดคำคงที่ไว้ด้วยเพื่อใช้อ้างอิง

3. การปรับข้อความให้เป็นมาตรฐานก่อนประเมินผล

สระและวรรณยุกต์ในภาษาไทยเขียนไว้เหนือหรือใต้พยัญชนะ ตัวอักษรที่ดูเหมือนกันอาจเข้ารหัสใน Unicode ได้หลายแบบ:

  • สระ ำ (U+0E33) อาจเขียนเป็น ํ (U+0E4D) ตามด้วย า (U+0E32) ซึ่งแสดงผลเกือบเหมือนกัน
  • ลำดับการพิมพ์วรรณยุกต์กับสระบนที่ต่างกัน จะได้ลำดับรหัสอักขระที่ต่างกัน
  • เลขไทย ๑๒๓ กับเลขอารบิก 123 ปะปนกัน รวมถึงสัญลักษณ์แบบเต็มความกว้างและครึ่งความกว้างปะปนกัน

หากไม่ปรับให้ตรงกันก่อน ความต่างเหล่านี้จะถูกนับเป็นข้อผิดพลาดของการรู้จำทั้งหมด ก่อนคำนวณตัวชี้วัด เราจึงปรับข้อความอ้างอิงและผลการรู้จำด้วยวิธีเดียวกัน ได้แก่ ปรับตามมาตรฐาน Unicode, [กฎลำดับสระและวรรณยุกต์], ทำให้ตัวเลขและเครื่องหมายวรรคตอนเป็นรูปแบบเดียวกัน และตัดช่องว่างส่วนเกิน

4. สิ่งที่เราทำ

  1. ตัวชี้วัดหลักคือ CER คำนวณหลังปรับข้อความตามขั้นตอนข้างต้น
  2. ตัวชี้วัดอ้างอิงคือ WER โดยตัดคำด้วย [ชื่อและเวอร์ชันของตัวตัดคำ] เสมอ
  3. ทุกตัวเลขระบุชุดทดสอบ เวอร์ชันโมเดล ฮาร์ดแวร์ และวันที่ทดสอบ
  4. ดูวิธีประเมินผลฉบับเต็มและดาวน์โหลดผลลัพธ์ดิบ (CSV) ได้ที่หน้าผลทดสอบสาธารณะ
ทีมงาน DataArc