17 กรกฎาคม 2559

Published กรกฎาคม 17, 2559 by with 0 comment

ทำ NLP ในภาษา Python : ถอดเสียงภาษาไทยเป็น Latin

สวัสดีผู้อ่านทุกท่านครับ บทความนี้ผมจะพาผู้อ่านไปเขียนโปรแกรมถอดเสียงภาษาไทยเป็น Latin ด้วยภาษา Python


หลังจากที่ผมได้ทำ PyThaiNLP ช่วงสองสามวันนี้ ผมได้ทำไฟล์ royin.py https://goo.gl/SNzkqf โดยผมได้ลองเพิ่มสระดูแต่ผมพบว่า โค้ดที่ผมเขียนขาดเงื่อนไขในการถอดเสียงภาษาไทยเป็นอักษรโรมัน ตามหลักราชบัณฑิตยสถาน คือ ต้องถอดตามคำอ่านและมีเงื่อนไขคำควบกล้ำอีก ผมเลยตัดสินใจลบไฟล์ royin.py หลังจากพยายามเขียนมาเป็นเดือนและ Test หลายร้อยครั้ง T_T

ผมจึงลองวิธีใหม่ ผมได้ไปเจอ ISO 11940-2 เป็นมาตรฐาน ISO ระดับโลกสำหรับการถอดเสียงภาษาไทยเป็น Latin และผมพบว่า ICU (International Components for Unicode) ได้รองรับการถอดเสียงภาษาไทยเป็น Latin ตามมาตรฐาน ISO 11940-2 มานานแล้ว ผมเลยกลับมามอง pyicu พบว่ารองรับความสามารถนี้เหมือนกัน มาลองเขียนโปรแกรมถอดเสียงภาษาไทยเป็น Latin กันเลยครับ :D

import icu
thai2latin = icu.Transliterator.createInstance('Thai-Latin')
latin = thai2latin.transliterate("แมว")
print(latin

ผลลัพธ์
mæw

นอกจากนั้น ยังสามารถแปลง Latin กลับมาเป็นภาษาไทยได้

latin2thai = icu.Transliterator.createInstance('Thai-Latin', icu.UTransDirection.REVERSE)
print(latin2thai.transliterate('mæw'))

หรือ

latin2thai = thai2latin.createInverse()
print(latin2thai.transliterate('mæw'))

ผลลัพธ์
แมว

เข้าไปช่วยกันพัฒนา PyThaiNLP ได้ที่ https://github.com/pythainlp/pythainlp ครับ
แหล่งอ้างอิง


ติดตามบทความต่อไปนะครับ
ขอบคุณครับ :D

0 ความคิดเห็น:

แสดงความคิดเห็น

แสดงความคิดเห็นได้ครับ :)