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

Posted By Plookpedia | 11 ส.ค. 60
2,740 Views

  Favorite

โปรแกรมตัดคำภาษาไทย (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) เข้ามาช่วยในการตัดคำตัวอย่างเช่น 
      "ตากลม" ถ้าพบคำว่า "แป๋ว" ในบริบทก็จะสามารถตัดคำได้ว่า "ตา" "กลม" 
      "มากว่า" ถ้าในบริบทที่ตามมาเป็นตัวเลขก็สามารถตัดคำได้ว่า "มา" "กว่า" 

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

 

เว็บไซต์ทรูปลูกปัญญาดอทคอมเป็นเพียงผู้ให้บริการพื้นที่เผยแพร่ความรู้เพื่อประโยชน์ของสังคม ข้อความและรูปภาพที่ปรากฏในบทความเป็นการเผยแพร่โดยผู้ใช้งาน หากพบเห็นข้อความและรูปภาพที่ไม่เหมาะสมหรือละเมิดลิขสิทธิ์ กรุณาแจ้งผู้ดูแลระบบเพื่อดำเนินการต่อไป
  • Posted By
  • Plookpedia
  • 10 Followers
  • Follow