n-Gram
n-Gram
บทความเขียนสมัยยังศึกษา ซึ่งเป็นหนึ่งในหลายๆ เทคนิคย่อยของ Search Engine เพื่อทำให้ทราบว่า คอมพิวเตอร์สามารถรู้ได้อย่างไร หากมีประโยคหนึ่งประโยค สามารถตัดคำได้อย่างไร ในหลายๆ เช่น ภาษาอังกฤษ , สเปน หรือภาษาอื่น ๆ ยิ่งหากเป็นภาษาไทย ภาษาเราไม่ได้แบ่งคำโดยใช้การเว้นวรรค (Space) การตัดคำจึงเป็นเรื่องที่ยากกว่าภาษาอังกฤษ ที่ใช้การเว้นวรรค ในการแบ่งคำ เพราะฉะนั้น n-Gram สามารถเข้ามาช่วยเสริมการตัดคำได้ แต่หากให้ได้ผลดี ควรมีคลังข้อมูลของคำขนาดใหญ่ (Corpus) เพื่อช่วยทำการจัดหมวดหมุ่ และความคล้ายคลึงเชิงมุม เพื่อหาว่าคำต่อไปควรเป็นคำว่าอะไร ต่อไป ถึงจะได้ประสิทธิภาพมากที่สุด
1. บทนำ
ระบบการค้นคืนสารสนเทศ (Information Retrieval) ในขั้นตอนการประมวลผลข้อความ (Text processing) สิ่งที่เป็นพื้นฐานที่จำเป็นอย่างยิ่งคือ “หน่วยคำ” ดังนั้นการหาขอบเขตของแต่ละคำจึงเป็นสิ่งแรกที่ต้องคำนึงถึง เพราะหากเลือกการหาขอบเขตคำไม่เหมาะสมอาจนำมาสู่ระบบการประมวลผลข้อความที่ไม่ถูกต้อง สำหรับภาษาไทยการหาขอบเขตคำค่อนข้างเป็นปัญหาเนื่องจากลักษณะการเขียนภาษาไทยนั้นไม่มีการใช้ตัวอักษรหรือสัญลักษณ์ที่นำมาใช้คั่นระหว่างคำหรือว่ามีการวรรคระหว่างคำเหมือนภาษาอังกฤษ งานต่างๆ ในด้านการประมวลผลภาษาไทยนั้น จึงจำเป็นอย่างยิ่งที่ต้องทราบขอบเขตของคำ นั่นคือต้องมีกระบวนการตัดคำ (Word Segmentation) ที่เหมาะสมก่อนเป็นอันดับแรก
ซึ่งนิยามของการตัดคำ คือ การแบ่งตัวอักษรจากข้อความ (String) เพื่อหาขอบเขตของแต่ละหน่วยคำ (Morpheme) เนื่องจากส่วนใหญ่฿าษาไทยมีการเขียนในลักษณะที่ติดกันโดยไม่มีการใช้เครื่องหมายวรรคตอนคั่นระหว่างคำเหมือนภาษาอังกฤษ ซึ่งใช้ช่องว่าง (Space) คั่นระหว่างคำ แต่ภาษาไทยจะมีการเว้นวรรคเป็นระยะเพื่อให้ผู้อ่านทำความเข้าใจกับความหมายของข้อความ การตัดคำและการกำกับหมวดคำภาษาไทยได้รับความสนใจอย่างต่อเนื่องมาเป็นลำดับจนถึงปัจจุบัน โดยเฉพาะงานด้านการตัดคำภาษาไทย มีงานวิจัยจำนวนไม่น้อยที่ได้เสนอวิธีการในการตัดคำภาษาไทยแบบต่าง ๆ โดยมุ่งหวังให้วิธีการที่เสนอมีประสิทธิภาพดีกว่าวิธีการที่ผ่าน ๆ มา ซึ่งบางวิธีการจะได้ผลลัพธ์ทางเลือกในการตัดคำมากกว่าหนึ่งรูปแบบ [1] จึงจำเป็นต้องเลือกทางเลือกใดทางเลือกหนึ่งที่ดีที่สุดโดยอาศัยกฎทางไวยากรณ์ (Syntax) และความหมาย(Semantic) มาช่วยตัดสิน มีผู้นำเสนอวิธีการที่อาศัยความถี่ของการใช้คำภาษาไทยเพื่อเลือกประโยคที่มีการตัดคำที่ถูกต้อง เนื่องจากการใช้กฎไวยากรณ์ภาษาไทยในการเลือกจะทำให้ฐานความรู้มีขนาดใหญ่
วิธีการตัดคำภาษาไทยสามารถแบ่งได้เป็น 3 หลักการใหญ่ คือ หลักการตัดคำโดยใช้กฎ (Rule Base Approach) หลักการตัดคำโดยใช้พจนานุกรม (Dictionary Approach) และหลักการตัดคำโดยใช้คลังข้อมูล (Corpus Based Approach) แต่ละวิธีการต่างก็ให้ผลในด้านความถูกต้อง ความรวดเร็วของการทำงานและปริมาณการใช้ทรัพยากรต่างๆ ที่แตกต่างกัน นอกจากนี้ยังมีการตัดคำแบบที่เรียกว่า N-Gram [2] ซึ่งเป็นลักษณะการตัดคำที่ไม่ใส่ใจในความหมายของคำ
2. ความหมายของ N-Gram
N-Gram คือ แบบจำลองที่ใช้คำนวณค่าความน่าจะเป็นของชุดอักขระ (Character Sequence) ที่เกิดขึ้นร่วมกันเป็นคำ หรือค่าความน่าจะเป็นของคำที่เขียนเรียงกัน (Word Sequence) ที่เกิดขึ้นร่วมกันเป็นประโยค โดยค่าความน่าจะเป็นของชุดอักขระหรือคำ ประมาณได้จากคลังข้อมูลที่สร้างไว้ ซึ่ง N-Gram ได้ใช้หลักการของสถิติในหลาย ๆ ด้านมาประยุกต์ใช้
3. การนำ N-Gram มาประยุกต์ใช้
การเขียนในภาษาไทยนั้นจะมีความแตกต่างกับภาษาอังกฤษอย่างเด่นชัด เนื่องจากภาษาอังกฤษจะมีช่องว่างในการระบุคำแต่ละคำ งานวิจัยที่เกี่ยวข้องกับภาษาไทยส่วนใหญ่นั้นจะอาศัยโปรแกรมตัดคำ โดยใช้พจนานุกรมในการตัดคำแต่ก็ไม่ได้มีประสิทธิภาพที่ดี 100% เนื่องจากมีความเป็นไปได้ที่คำที่ปรากฏในเอกสาร อาจจะไม่ปรากฏในพจนานุกรม ซึ่งงานวิจัยในไทยส่วนใหญ่จึงได้นำเสนอแนวคิดใหม่ โดยทำการนำบางส่วนของข้อความนั้นออกมาเป็นข้อความตามค่า N ซึ่งเรียกวิธีนี้ว่า N-Gram เข้ามาใช้ในการตัดคำแทน
3.1 N-Gram กับการประมวลผล฿าษาธรรมชาติ
N-Gram ถูกนำไปประยุกต์ใช้กับงานด้านการประมวลผลภาษาธรรมชาติ (NLP : Natural Language Processing) ซึ่งส่วนใหญ่จะนำไปใช้แก้ไขข้อจำกัดการตัดคำในภาษาไทย เนื่องจากในระบบการตัดคำด้วยพจนานุกรม ซึ่งมักจะพบปัญหาว่ากรณีที่คำที่ปรากฏในเอกสารนั้นไม่มีอยู่ในพจนานุกรมนั้น ในขณะที่วิธี N-Gram คือ การนำบางส่วนของข้อความนั้นออกมาเป็นหน่วยคำ (Term) ตามค่า N เพื่อใช้แทนการตัดคำ โดยทำให้ลดเวลาในการค้นหาคำในเอกสารกับคำในพจนานุกรม แต่ใน฿าษาไทยนั้นจะไม่สามารถกำหนดได้ว่า 1 ตัวอักษรคือ 1 Gram เนื่องจากภาษาไทยมีสระและวรรณยุกต์ ดังนั้นในภาษาไทยจึงถือว่ากรณีที่ตัวอักขระเป็นตำแหน่งที่มีสระและวรรณยุกต์อยู่ด้วยจะถือว่าเป็น 1 Gram โดยทั่วไปในภาษาไทยนิยมใช้การตัดคำแบบ 2, 3 และ 4 Gram [4]
3.2 Gram
คือ หน่วยที่ใช้ในการสร้างแบบจำลอง อาจจะเป็นเสียง คำ หรือ อักขระก็ได้และ Gram มีได้หลายขนาดแล้วแต่จะกำหนด ตั้งแต่ 1 จนถึง N ในแบบจำลองเอ็นแกรมนี้ใช้ความยาวของชุดอักขระและคำที่เขียนเรียงกันแตกต่างกัน ได้แก่ 2-Gram , 3- Gram , 4- Gram ฯลฯ ถ้าจะประมาณค่าความน่าจะเป็นของชุดคำหรือชุดอักขระจากคลังข้อมูลโดยการใช้วิธี N-Gram ผลที่ได้มีดังนี้
4. หลักการทำงานของ N-Gram
การประมาณค่าความน่าจะเป็นของชุดอักขระ โดยการใช้เอ็นแกรมดังที่กล่าวมา คือ การใช้สมมติฐานของมาร์คอฟ (Markov assumption) ว่า การปรากฏของตัวอักษรตัวหนึ่งขึ้นกับตัวอักษรก่อนหน้าเพียง n-1 ตัว ซึ่งวิธีนี้มักนิยมใช้ในงานระบุภาษาของข้อความกันมาก เนื่องจากสามารถใช้เพื่อระบุภาษาได้อย่างมีประสิทธิภาพและเรียบง่ายกว่า โดยสามารถประมาณได้ดังนี้
โดยที่
ส่วนความน่าจะเป็นของชุดคำที่รวมกันเป็นประโยค w1w2w3….wn หากประมาณค่าด้วยเอ็นแกรมต่าง ๆ ผลที่ได้ดังนี้
โดยที่

โดยที่
ความน่าจะเป็นของประโยคนี้ P(w1 w2….wT) สามารถประมาณได้ โดยถือว่าการปรากฏของคำ wi นั้นขึ้นอยู่กับจำนวนคำข้างหน้า n-1 ตัวเท่านั้นหรือขึ้นอยู่กับขนาดของเอ็นแกรม ดังนั้นถ้าหากประมาณค่าความน่าจะเป็นของประโยคนี้ โดยใช้ 2-แกรม จะปรับเปลี่ยนสมการดังนี้

ดังนั้น จากสูตรประมาณค่าความน่าจะเป็นด้วย 2-Gram หากต้องการหาความน่าจะเป็นของประโยค “He like to eat banana” โดยใช้ N-Gram ในระดับของคำ ผลออกมาคือ

ส่วนค่าความน่าจะเป็นจะหาได้จากคลังข้อมูล เช่น

โดยที่ c คือ จำนวนนับ จากสูตรนี้หมายถึง ค่าความน่าจะเป็นของ like เมื่อเกิดร่วมกับคำว่า He คำนวณได้จากนำจำนวนนับของ He ที่เกิดร่วมกับคำว่า like หารด้วยจำนวนนับของการเกิด He เดี่ยว ๆ วิธีการใช้แบบจำลองเอ็นแกรมนี้เป็นวิธีทางสถิติที่นิยมใช้กันมากที่สุด เพราะเป็นวิธีที่เรียบง่าย มีประสิทธิภาพสูง และเหมาะสำหรับวิเคราะห์ภาษา สามารถใช้ระบุภาษาได้ดีกว่าวิธีอื่น ๆ
5. ตัวอย่างงานวิจัยที่นำมา N-Gram มาใช้กับ฿าษาไทย
อัษฎางค์ (2004) ได้นำเสนองานวิจัยเรื่อง “การย่อความเอกสารภาษาไทยโดยกรรมวิธีการแยกค่าแบบเดี่ยว” โดยนำเสนอแนวคิดในการย่อความเอกสารสำหรับภาษาไทย ที่ทำการแก้ไขข้อจำกัดการตัดคำในภาษาไทยโดยใช้ N-Gram และสามารถย่อความเอกสารโดยไม่ขึ้นกับประเภทของเนื้อหา ไม่ใช้พจนานุกรม และไม่อาศัยการเรียนรู้ชุดข้อมูลสอน โดยใช้แต่เพียงความรู้ทางคณิตศาสตร์เท่านั้น ซึ่งผลลัพธ์ของการย่อความนั้น จะทำการเลือกย่อหน้าที่มีใจความสำคัญจากเอกสารต้นฉบับ โดยใช้ทฤษฎีการแยกค่าแบบเดี่ยว และในการวัดประสิทธิภาพนั้นได้ทำการทดสอบกับชุดข้อมูลทดสอบที่เป็นเอกสารข่าว ประกอบไปด้วยข่าวเกษตรกรรม ข่าวทั่วๆ ไป และบทความ รวมจำนวนทั้งสิ้น 30 เอกสาร ซึ่งผลของการวัดประสิทธิ฿าพแสดงให้เห็นว่าสามารถแก้ไขข้อจำกัดในเรื่องการตัดคำในภาษาไทยได้โดยวิธี N-Gram และจำนวน Gram ให้ประสิทธิภาพที่ดีที่สุดได้แก่ 3-Gram
6. สรุป
จากการศึกษา N-Gram นั้น จะเห็นว่า N-Gram น่าจะเป็นวิธีการที่นำมาใช้กับภาษาไทยได้ดีวิธีหนึ่ง และผลงานวิจัยของหลาย ๆ ท่าน จะแสดงให้เห็นว่าประสิทธิภาพของ N-Gram ที่ดีอยู่ที่ 3-Gram และ 4-Gram ซึ่งงานวิจัยส่วนใหญ่เลือกใช้แบบจำลอง N-Gram เพื่อพัฒนาระบบการระบุภาษาของคำโดยมีเหตุผลหลัก ๆ ดังนี้ [3]
1. N-Gram เป็นวิธีทางสถิติที่เป็นพื้นฐานและเรียบง่ายมากที่สุด ซึ่งจะช่วยลดต้นทุนในการทำระบบการระบุ฿าษา
2. สามารถนำ N-Gram มาใช้ร่วมกับวิธีอื่น ๆ ได้ เนื่องจากจะช่วยเพิ่มประสิทธิภาพของระบบให้ดีมากยิ่งขึ้น
3. N-Gram สามารถใช้ระบุภาษาได้ทุกภาษา ในกรณีระบุภาษาที่ใช้ชุดอักขระที่เป็นตัวอักษรประเภทเดียวกัน แต่ต่าง฿าษากัน เช่น อักษรโรมันที่ใช้เขียนภาษาอังกฤษ เยอรมัน อิตาเลียน หรืออักษรไทย ที่ใช้เขียนคำทับศัพท์ภาษาอังกฤษ ญี่ปุ่น และฝรั่งเศส เป็นต้น
4. เนื่องจากรูปแบบของข้อมูลนำเข้าเพื่อทดสอบ และข้อมูลการฝึกควรจะเรียบง่ายมากที่สุด ไม่มีการประมวลผลเบื้องต้น (Pre-process) เช่น การ Encoding ข้อมูลหรือการใส่ Tag ลงบนข้อมูล ดังนั้น N-Gram จึงเป็นวิธีที่ดีที่สุดที่จะลดความยุ่งยากในการพัฒนาระบบ
5. ใน N-Gram เพียงใช้คลังข้อมูลจำนวนน้อยก็สามารถระบุภาษาของคำได้ถูกต้อง
7. เอกสารอ้างอิง
[1] นัฐวุฒิ ไชยเจริญ, “การตัดคำและการกำกับหมวดคำภาษาไทยแบบเบ็ดเสร็จด้วยคอมพิวเตอร์”, วิทยานิพนธ์ อศ.ม., กรุงเทพฯ : จุฬาลงกรณ์มหาวิทยาลัย, 2544.
[2] วีรยา อมรพงษ์กุล, อัษฎา฿รณ์ พิมพ์สมบูรณ์, จันทิมา พลพินิจ และ อุมา฿รณ์ สายแสงจันทร์, “การประยุกต์เอ็นแกรมและเว็กเตอร์โมเดลสำหรับระบบย่อข้อความ฿าษาไทย”, The 1st Thailand Computer Science conference (ThCSC), 2004.
[3] อัครพล เอกวงศ์อนันต์, “การระบุคำไทยและคำทับศัพท์ด้วยแบบจำลองเอ็นแกรม”, วิทยานิพนธ์ อศ.ม., กรุงเทพฯ : จุฬาลงกรณ์มหาวิทยาลัย, 2548.
[4] อัษฎางค์ แตงไทย และ ชุลีรัตน์ จรัสกุลชัย, “การย่อความภาษาไทยโดยกรรมวิธีการแยกค่าแบบดี่ยว”, The Procof NCSEC. 2004.
ขอบพระคุณที่สนใจอ่าน