สถาบันข้อมูลขนาดใหญ่ (องค์การมหาชน)

Logo BDI For web

คลังข้อความภาษาไทย (Thai text corpus)

Apr 4, 2022

ในยุคของการวิเคราะห์ข้อมูลขนาดใหญ่ในปัจจุบัน การประมวลผลภาษาธรรมชาติ (natural language processing) ก็เป็นแขนงหนึ่งที่มีการใช้งานมากมาย ไม่ว่าจะเป็นการพัฒนาระบบแนะนำ (recommendation system) เครื่องมือที่ถูกพัฒนาขึ้นมาเพื่อช่วยตอบคำถามอัตโนมัติ (chatbot) หรือการแปลภาษาโดยอัตโนมัติ (machine translation) ซึ่งในการพัฒนาระบบเหล่านี้ก็จะต้องใช้ข้อมูลในลักษณะของข้อความจำนวนมหาศาล ซึ่งเรียกกันว่า คลังข้อความ หรือ corpus

รูปที่ 1 ตัวอย่างการประยุกต์ใช้งานของการประมวลผลภาษาธรรมชาติ (จาก KDnuggets)

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

ตัวอย่างคลังข้อความที่รู้จักกันเป็นอย่างดี อาทิ IMDb Movie Reviews ซึ่งเป็นคลังข้อความที่รวบรวมความเห็นภาพยนตร์พร้อมมีการกำกับแต่ละความเห็นว่าเป็นเชิงบวกหรือเชิงลบ และ GLUE (General Language Understanding Evaluation benchmark) ซึ่งเป็นคลังข้อความทดสอบทางด้านการเข้าใจภาษาธรรมชาติในภาษาอังกฤษ หากสนใจเพิ่มเติมสามารถเข้าไปดูได้ที่นี่ อย่างไรก็ตาม หากท่านต้องการโมเดลด้านการประมวลผลภาษาไทย ท่านก็ควรใช้คลังข้อความภาษาไทย ซึ่งผู้เขียนได้รวบรวมไว้ในตามตารางที่ 1

ตัวอย่างคลังข้อความภาษาไทยในปัจจุบัน

ชื่อคลังข้อความ รายละเอียด ผู้พัฒนา
Thai National Corpusคลังคำศัพท์พร้อมค่าความถี่จากการประมวลผลข้อมูลจำนวน 33 ล้านคำ[1]
Thai Textbook Corpusคลังข้อมูลหนังสือเรียนวิชาภาษาไทยในระดับชั้นเริ่มเรียนจนถึงมัธยมศึกษาปีที่ 6 จากหลักสูตรปีพ.ศ. 2503 – 2544[1]
Volubilis dictionaryคลังคำศัพท์ไทย-อังกฤษ-ฝรั่งเศส ประกอบด้วยคำศัพท์ ชนิดของคำ และการอ่านออกเสียง[2]
Lexitron 2.0คลังคำศัพท์ไทย-อังกฤษ ประกอบด้วยคำศัพท์ ชนิดของคำ คำแปล คำเหมือน และประโยคตัวอย่างการใช้งาน[3]
BEST 2010คลังข้อความภาษาไทยที่มีการกำกับขอบเขตของคำจากข้อมูลรวมจำนวน 5 ล้านคำ[3]
Thai Plagiarismชุดข้อมูลเอกสารที่มีการคัดลอก ซึ่งเป็นการจำลองการสร้างข้อความที่มีการคัดลอกด้วยคน โดยใช้บทความวิกิพีเดียภาษาไทยและเว็บเพจเป็นฐานข้อมูล[3]
Thai WIKI QAคลังข้อมูลที่ใช้ในการแข่งขันพัฒนาโปรแกรมถามตอบจากคลังข้อมูลวิกิพีเดีย ประกอบด้วย คำถามที่เป็นข้อเท็จจริง คำถามตอบรับหรือปฏิเสธ และคลังข้อมูลวิกิพีเดียภาษาไทยที่ใช้ในการสร้างคู่คำถาม[3]
ชุดข้อมูลคู่ประโยคภาษาอังกฤษ-ไทย กว่า 1 ล้านคู่ประโยคชุดข้อมูลคู่ประโยคนี้ ได้รวบรวมจากหลายข้อมูลแหล่ง อาทิ ประโยคจากบทสนทนา ข้อมูลจากเว็บไซต์ข่าวหรือองค์กรที่มีเนื้อหาในสองภาษา บทความวิกิพีเดีย และเอกสารราชการ[4]
ตารางที่ 1 ตัวอย่างคลังข้อความภาษาไทยในปัจจุบัน
ผู้พัฒนา: [1] คณะอักษรศาสตร์ จุฬาลงกรณ์มหาวิทยาลัย [2] Belisan Volubilis [3] ศูนย์เทคโนโลยีอิเล็กทรอนิกส์และคอมพิวเตอร์แห่งชาติ (เนคเทค) [4] สถาบันวิจัยปัญญาประดิษฐ์ประเทศไทย

เนื่องจากแต่ละคลังข้อความถูกพัฒนามาจากข้อมูลตั้งต้นที่ต่างกัน ทำให้แต่ละคลังข้อความเหมาะกับโมเดลการประมวลผลภาษาธรรมชาติที่ต่างกันด้วย เช่น หากท่านต้องการพัฒนาโมเดลการแปลภาษา (machine translation) ท่านควรใช้ชุดข้อมูลคู่ประโยคภาษาอังกฤษ-ไทย กว่า 1 ล้านคู่ประโยค ร่วมกับข้อมูลพจนานุกรม Volubilis dictionary และ Lexitron 2.0 เป็นต้น

แนะนำคลังข้อความภาษาไทย LST20 Corpus

รูปที่ 2 ตัวอย่างกลุ่มคำในบทความนี้ในรูปแบบของ word cloud

LST20 Corpus เป็นคลังข้อมูลภาษาไทยพัฒนาโดยเนคเทคตัวล่าสุดที่เปิดให้นำไปใช้งานได้ฟรี สามารถเข้าไปดาวน์โหลดได้ที่เว็บไซต์ AI FOR THAI (ท่านจำเป็นต้องสมัครสมาชิกก่อน) ซึ่งคลังข้อความนี้มีการกำกับด้วยข้อมูลทางภาษา 5 ระดับ ได้แก่

  1. ขอบเขตของคำ (word boundaries) จำนวน 3 ล้านกว่าคำ สำหรับแก้โจทย์ การตัดคำ (word segmentation)
  2. ชนิดของคำ (part of speech) ซึ่งแบ่งเป็น คำนาม คำกริยา คำวิเศษณ์ คำสันธาน และอื่น ๆ รวม 16 ประเภท สำหรับแก้โจทย์ การระบุประเภทของคำ (part-of-speech tagging)
  3. ขอบเขตและชนิดของชื่อเฉพาะ (named entities) จำนวน 280,000 ชื่อเฉพาะ ซึ่งมีการแบ่งเป็น ชื่อบุคคล ชื่อองค์กร ชื่อสถานที่ และอื่น ๆ รวม 10 ประเภท สำหรับแก้โจทย์ การระบุประเภทเฉพาะของคำ (name entity recognition)
  4. ขอบเขตของประโยคย่อย (clause boundaries) จำนวนเกือบ 250,000 ประโยคย่อย สำหรับแก้โจทย์ การตัดประโยคย่อย (clause segmentation)
  5. ขอบเขตประโยคใหญ่ (sentence boundaries) จำนวนกว่า 70,000 ประโยคใหญ่ สำหรับแก้โจทย์ การตัดประโยคใหญ่ (sentence segmentation)

เมื่อทำการดาวน์โหลดไฟล์ข้อมูลมาแล้ว ข้อมูลจะถูกแบ่งเป็น 3 โฟลเดอร์ (train, test, eval สำหรับ training, testing และ evaluation) พร้อมแก่การนำไปพัฒนาและวัดผลโมเดลอยู่แล้ว จากรูปด้านล่างเป็นหนึ่งในตัวอย่างข้อมูลในรูปแบบของ CoNLL-2003 format ที่มี 4 คอลัมน์ คือ 1. คำ 2. ชนิดของคำ 3. ชนิดของชื่อเฉพาะ 4. ขอบเขตของประโยคย่อย โดยที่แต่ละแถวจะถูกแบ่งด้วยการเว้นวรรคใหญ่ (tab) ใช้การเว้นบรรทัดสำหรับการแบ่งประโยคย่อย ทั้งนี้หากประโยคย่อยมีการเว้นวรรค ทางเนคเทคใช้ “_” แทนการเว้นวรรคทั่วไป

รูปที่ 3 ตัวอย่างข้อความในคลังข้อความภาษไทย LST20 Corpus

รูปที่ 3 เป็นตัวอย่างข้อความ ซึ่งประกอบไปด้วย 2 ประโยคย่อย  โดยประโยคแรก เริ่มต้นด้วยคำว่า “เจ้าพ่อ” ซึ่งเป็นคำนาม (NN) แต่ไม่ใช่ชื่อเฉพาะ (O) และเป็นคำขึ้นต้นประโยคย่อย (B_CLS) มีการกล่าวถึงชื่อเฉพาะบุคคล (B_PER, I_PER, E_PER) ด้วยวลี “รูเพิร์ท เมอร์ดอค” ปิดท้ายด้วยคำว่า “สำเร็จ” ซึ่งเป็นคำกริยา (VV) แต่ไม่ใช่ชื่อเฉพาะ (O) และเป็นคำปิดท้ายประโยคย่อย (E_CLS) สำหรับประโยคที่สองนั้นมีการกล่าวถึงระยะเวลาเจาะจงอยู่ 2 แห่งคือ “1 สิงคาคม 2550” และ “11:33 น.” สำหรับการแปลความของประโยคทั้งหมด สามารถอ่านเพิ่มเติมได้จาก Guideline ของ LST20 Corpus

สำหรับท่านที่ต้องการใช้ python ในการวิเคราะห์และพัฒนาโมเดลต่อยอดจากคลังข้อมูลดังกล่าว ผู้เขียนได้สร้าง code สำหรับการใช้งานเบื้องต้นได้ผ่านทาง Google Colab ของผู้เขียน

เนื้อหาโดย ธนกร ทำอิ่นแก้ว
ตรวจทานและปรับปรุงโดย ดร. นนทวิทย์ ชีวเรืองโรจน์

Thanakorn Thaminkaew

Data Scientist at Big Data Institute (Public Organization), BDI

© Big Data Institute | Privacy Notice