เล่มที่ 25
การประยุกต์ใช้ภาษาไทยบนคอมพิวเตอร์
สามารถแชร์ได้ผ่าน :

ตัวอย่างโปรแกรมตัดคำภาษาไทย

โปรแกรมตัดคำภาษาไทย (Thai Word Segmentation)

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

ทำไมคอมพิวเตอร์ต้องรู้จักคำในภาษาไทย

            ปัจจุบันนี้ มีการนำคอมพิวเตอร์เข้าไปใช้งานในด้านต่างๆ เป็นจำนวนมาก งานทางด้านจัดการกับภาษาไทย ได้แก่ การแปลงข้อความเป็นเสียง (Text - To - Speech) การตรวจตัวสะกด (Spell checking) การแปลภาษาด้วยเครื่องคอมพิวเตอร์ (Machine Translation) ฯลฯ ก็เป็นงานอีกด้านหนึ่งที่ได้นำคอมพิวเตอร์เข้าไปช่วย ในการทำงาน สิ่งแรกที่จะต้องจัดการคือ ต้องทำให้คอมพิวเตอร์รู้จักคำในภาษาไทยให้ได้ เช่น ถ้ามีข้อความว่า

            "ฉันนั่งตากลมที่หน้าบ้าน" จะต้องทำให้คอมพิวเตอร์รู้ว่าเป็น

            "ฉัน นั่ง ตาก ลม ที่ หน้า บ้าน" ไม่ใช่ "ฉัน นั่ง ตา กลม ที่ หน้า บ้าน"

            ลักษณะการเขียนภาษาไทยนั้น จะเขียนติดต่อกัน โดยไม่มีเครื่องหมายวรรคตอนคั่นระหว่างคำ ดังเช่นในภาษาอังกฤษ ซึ่งใช้ช่องว่าง (Space) คั่นระหว่างคำ จึงทำให้การโปรแกรมให้คอมพิวเตอร์ รู้จักคำในภาษาไทยนั้น มีความยุ่งยากกว่าในภาษาอังกฤษ

ดังนั้น เราจึงได้พัฒนา และค้นหาวิธีการต่างๆ ที่จะช่วยให้คอมพิวเตอร์รู้จักคำในภาษาไทย ซึ่งในปัจจุบัน ก็มีอยู่หลายแนวคิด เช่น

๑. วิธีการตัดคำแบบยาวที่สุด (Longest Matching)

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

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

๒. วิธีการตัดคำแบบสอดคล้องมากที่สุด (Maximal Matching)

            วิธีการตัดคำแบบนี้ เป็นการหาวิธีในการตัดคำที่สามารถจะเป็นไปได้ทั้งหมด เช่น เมื่อมีข้อความว่า "ไปหามเหสี" ก็จะตัดคำได้ ๒ แบบ คือ
                        ๑. ไป หาม เห สี
                        ๒. ไป หา มเหสี

            วิธีการนี้จะให้เลือกข้อความที่แบ่งแล้ว มีจำนวนคำน้อยที่สุดคือ แบบที่ ๒ ซึ่งมีจำนวนคำที่ตัดได้ ๓ คำ ในขณะที่แบบที่ ๑ มี ๔ คำ ส่วนในกรณีที่มีจำนวนคำที่เท่ากัน เราก็จะใช้วิธีการตัดคำแบบยาวที่สุด ((Longest Matching) เข้ามาช่วย เช่น ข้อความว่า "ฉันนั่งตากลมที่หน้าบ้าน" ซึ่งจะสามารถแบ่งคำได้ ๒ แบบ คือ
                        ๑. ฉัน นั่ง ตาก ลม ที่ หน้า บ้าน
                        ๒. ฉัน นั่ง ตา กลม ที่ หน้า บ้าน

            ทั้ง ๒ แบบมีจำนวนคำที่เท่ากัน จึงเลือกแบบที่ ๑ โดยเปรียบเทียบจากคำที่ต่างกันที่ตัดได้นั้น ( ตา / ตาก) จะเห็นได้ว่า ตากมีตัวอักษรมากกว่า

๓. วิธีการตัดคำแบบคำนวณเชิงสถิติเพื่อหาความเป็นไปได้ (probabilistic Model)

            วิธีการนี้นำเอาค่าสถิติการเกิดของคำ และลำดับของหน้าที่ของคำ (part of speech) เข้ามาช่วยในการคำนวณหาความน่าจะเป็น เพื่อที่จะใช้เลือกแบบที่มีโอกาสเกิดมากที่สุด วิธีการนี้สามารถจะตัดคำได้ดีกว่า ๒ แบบแรก แต่ข้อจำกัดของวิธีการนี้คือ จะต้องมีฐานข้อมูล ที่มีการตัดคำที่ถูกต้อง และกำหนดหน้าที่ของคำให้ เพื่อที่จะได้นำไปใช้ในการสร้างสถิติ

๔. วิธีการตัดคำแบบคุณลักษณะ (Feature - Based Approach)

            วิธีการนี้จะพิจารณาจากบริบท (context words) และการเกิดร่วมกันของคำ หรือหน้าที่ของคำ (collocation) เข้ามาช่วยในการตัดคำตัวอย่างเช่น

            "ตากลม" ถ้าพบคำว่า "แป๋ว" ในบริบทก็จะสามารถตัดคำได้ว่า "ตา" "กลม"

            "มากว่า" ถ้าในบริบทที่ตามมาเป็นตัวเลขก็สามารถตัดคำได้ว่า "มา" "กว่า"

            วิธีการนี้จำเป็นที่จะต้องมีฐานข้อมูลเป็นจำนวนมาก และจะต้องมีการเรียนรู้การสร้างคำในบริบท หรือการเกิดร่วมกันของคำแต่ละคำ เพื่อให้มีข้อมูลที่จะนำมาใช้ในการตัดคำ

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