16
รหัสโครงการ 11p34c596 วจีวิภาคสมุทร SEA Parsing BEST2009 – การแบ่งคําไทย (BEST – Thai Word Segmentation) รายงานฉบับสมบูรณ์ เสนอต่อ ศูนย์เทคโนโลยีอิเล็กทรอนิกส์และคอมพิวเตอร์แห่งชาติ สํานักงานพัฒนาวิทยาศาสตร์และเทคโนโลยีแห่งชาติ กระทรวงวิทยาศาสตร์และเทคโนโลยี ได้รับทุนอุดหนุนโครงการวิจัย พัฒนาและวิศวกรรม โครงการแข่งขันพัฒนาโปรแกรมคอมพิวเตอร์แห่งประเทศไทย ครั ้งที11 ประจําปีงบประมาณ 2551 โดย ผู้พัฒนา นายฉัตรชัย บวรธํารงชัย นายศรัณย์ เหล่าอยู ่คง นายฑีฆรัตน์ อื๊อนุเคราะห์ อาจารย์ที่ปรึกษาโครงการ ผู้ช่วยศาสตราจารย์ .ดร. สุกรี สินธุภิญโญ จุฬาลงกรณ์มหาวิทยาลัย

รหัสโครงการ 11p34c596 SEA Parsing BEST2009 – (BEST – … · รหัสโครงการ 11p34c596 วจีวิุภาคสมทร SEA Parsing

Embed Size (px)

Citation preview

รหสโครงการ 11p34c596

วจวภาคสมทร SEA Parsing BEST2009 – การแบงคาไทย (BEST – Thai Word Segmentation)

รายงานฉบบสมบรณ เสนอตอ

ศนยเทคโนโลยอเลกทรอนกสและคอมพวเตอรแหงชาต สานกงานพฒนาวทยาศาสตรและเทคโนโลยแหงชาต

กระทรวงวทยาศาสตรและเทคโนโลย

ไดรบทนอดหนนโครงการวจย พฒนาและวศวกรรม โครงการแขงขนพฒนาโปรแกรมคอมพวเตอรแหงประเทศไทย ครงท 11

ประจาปงบประมาณ 2551

โดย ผพฒนา

นายฉตรชย บวรธารงชย นายศรณย เหลาอยคง นายฑฆรตน ออนเคราะห อาจารยทปรกษาโครงการ

ผชวยศาสตราจารย.ดร. สกร สนธภญโญ จฬาลงกรณมหาวทยาลย

กตตกรรมประกาศ

โครงการวจวภาคสมทรผานพนไปไดดวยด เพราะอาจารยทปรกษาไดใหคาแนะนาเมอพบเจอกบ

ปญหา หรอแนะนาแนวทางในการพฒนา ขอขอบพระคณอาจารยสกร สนธภญโญเปนอยางสง และ

ขอขอบคณเพอน ๆ ทใหกาลงใจในการทาโครงงานนทกทานไว ณ ทน

บทคดยอ

การแบงคา (Word Segmentation) ออกจากขอความหรอประโยคนน เปนพนฐานทสาคญและ

จาเปนในการประมวลผลทางภาษา โดยเฉพาะอยางยงเมอคอมพวเตอรเขามามบทบาทในชวตประจาวนของ

ผคนมากขน และมการนาเทคโนโลยเกยวกบการประมวลผลทางภาษาเขามาใชในงานตางๆ ทงการสราง

โปรแกรมทเกยวของกบการวเคราะหและสงเคราะหภาษา รวมทงการสรางหนยนตและปญญาประดษฐ

ดงนน การสอนใหคอมพวเตอรสามารถทาการแบงคาไดดวยตนเองกจะนาไปสการสรางโปรแกรมทม

ประสทธภาพ ทาใหมการหาวธการแบงคาอตโนมตทถกตองสาหรบภาษาตางๆทวโลก แตสาหรบการแบง

คาอตโนมตของภาษาไทยนนมการพฒนาทลาชาเมอเทยบกบภาษาอน เนองจากภาษาไทยเปนภาษาทมความ

ซบซอนทงดานการโครงสรางของภาษา รปแบบของประโยคในภาษา รวมไปถงการสะกดคาทแตกตางกน

ไดหลายแบบแมวาจะมการเขยนทเหมอนกน ซงผลของการแบงคายอมตองแตกตางกน อยางไรกด หากการ

แบงคาอตโนมตในภาษาไทยไมไดรบการพฒนากจะนาไปสความลาชาของการพฒนาเทคโนโลยทางดาน

การประมวลผลทางภาษาไทยจนไมสามารถทดเทยมภาษาอนๆในโลกได จงตองมการศกษาเพอหาวธการท

ทาใหคอมพวเตอรสามารถแบงคาไทยไดอยางถกตองสมบรณ โดยมความซบซอนของภาษาไทยเปนความ

ทาทายสาหรบการพฒนางานในครงน

Word Segmentation is the important basic for language processing, especially when computer

takes major part in our daily life. The language processing technology is used in many works such as

language analysis, language synthesis and robotic algorithm. So if computer can segment words itself, the

making of efficiency program is possible. With this reason many automatic word segmentations program

for many languages. But the development process of this program for Thai language is slow compare to

the others because of the complex of language structure, sentence format and similar word spelling which

same word can be written in different ways. Anyway, the lack of improvement on automatic word

segmentation program of Thai language will lead to the tardiness of language processing technology and

results in the scenario that Thai language is not tantamount to other languages in the world. So this project

is formed to find the way to make the computer segment Thai words accurately provided Thai language

complexness as a challenge.

บทนา

โครงการ “วจวภาคสมทร (SEA Parsing)” จดทาขนเพอเสนอวธการในการแบงคาในภาษาไทยออกจาก

ขอความหรอประโยค โดยนาความรทางภาษาไทยเกยวกบคาศพท หนาทของคาศพท ความสมพนธของ

คาศพทแตละคา และรปประโยคของภาษาไทย มาผนวกกบความรทางดานการเขยนโปรแกรม เพอใชสราง

เปนอลกอรทมทจะสามารถแบงคาในภาษาไทยออกมาใหมความถกตองสมบรณทสด ภายใตการใชเวลาใน

การแสดงผลลพธของการแบงคาทเหมาะสม นอกจากนยงไดคานงถงการตดคาวสามานยนามและคายอ

ตางๆเขามาพจารณาดวย

สารบญ 

วตถประสงคและเปาหมาย .............................................................................................................................. 1 

รายละเอยดของการพฒนา .............................................................................................................................. 1 

เนอเรองยอ ................................................................................................................................................ 1

ทฤษฎหลกการและเทคนคทใช ................................................................................................................. 1

เครองมอทใชในการพฒนา ....................................................................................................................... 1

รายละเอยดโปรแกรมทไดพฒนาในเชงเทคนค ......................................................................................... 2

ขอบเขตและขอจากดของโปรแกรมทพฒนา ............................................................................................ 3

กลมผใชโปรแกรม .......................................................................................................................................... 3 

ผลของการทดสอบโปรแกรม ......................................................................................................................... 3 

ปญหาและอปสรรค ......................................................................................................................................... 4 

แนวทางในการพฒนาและประยกตใชรวมกบงานอนๆ ในขนตอไป .............................................................. 5 

ขอสรปและขอเสนอแนะ ................................................................................................................................ 6 

เอกสารอางอง (Reference) .............................................................................................................................. 7 

ภาคผนวก (Appendix) .................................................................................................................................... 8 

คมอการตดตงอยางละเอยด ....................................................................................................................... 8

คมอการใชงานอยางละเอยด ................................................................................................................... 10

1

วตถประสงคและเปาหมาย 

เพอพฒนามาตรฐานของโปรแกรมทสามารถแบงคาไทยไดถกตอง ตามองคความรในดานการแบง

คาภาษาไทย โดยใชเวลาในการประมวลผลอยางเหมาะสม

รายละเอยดของการพฒนา 

เนอเรองยอ 

SEA Parsing เปนซอฟตแวรทใชสาหรบตดคาภาษาไทย โดยมลกษณะเปน Window Application ท

มสวนตอประสาน (User Interface) ทสามารถทาความเขาใจไดงาย และสามารถใหผลลพธของการตดคาได

อยางมประสทธภาพ โดยการใชงานเรมจากผใชนาไฟลขอความทตองการตดคาเขาในซอฟตแวรแลวสงงาน

ใหซอฟตแวรทาการตดคา ซงผลลพธทได จะนามาแสดงผลบนซอฟตแวรดวย และสามารถบนทกเกบเปน

ไฟลขอความผลลพธทตดคาแลวได

ทฤษฎหลกการและเทคนคทใช  

ซอฟตแวรวจวภาคสมทร จะนาขอความจากไฟลขอมลทไดรบเขามาจากผใชไปเปรยบเทยบกบคาท

มอยในฐานขอมลทสรางขน ซงเปนฐานขอมลคาวสามานยนามหรอคาเฉพาะบคคล (Proper noun) เชน

ฐานขอมลของชอคนสวนใหญในประเทศไทย ฐานขอมลของตวยอ เปนตน โดยหลกการเปรยบเทยบนน จะ

ตรวจสอบโดยการนาคาในฐานขอมลวสามานยนามมาตรวจสอบกบขอความทรบเขา มาเปรยบเทยบกนวาม

คาวสามานยนามนนในขอความรบเขาหรอไม ถามกจะใส tag <NE> หรอ <AB> ลงไป เพอระบไววาเปนคา

ชนดนน ๆ เมอตรวจสอบกบฐานขอมลคาวสามานยนามเสรจเรยบรอยแลว จงนามาตดคาอน ๆ กบ

ฐานขอมลทวไปโดยเรยกใช Swath อกครงหนง ซงอาจเปนฐานขอมลท Swath มอยแลว หรออาจจะสราง

ขนเพมเตมจากฐานขอมลทมให

เครองมอทใชในการพฒนา 

− Microsoft Visual C++ 2008 Express Edition

− Microsoft Visual C# 2008 Express Edition

− SWATH for Windows

2

− Personal Computer หรอ Notebook

− OS Window 98/XP/Vista

− Microsoft .NET Framework 3.5 SP1

รายละเอยดโปรแกรมทไดพฒนาในเชงเทคนค 

Input Specification

- ไฟลขอความนามสกล .txt

- ขอความทพมพเขาไปในตวโปรแกรมโดยตรง

Output Specification

- ไฟลขอความนามสกล .txt ทไดรบการตดคาแลว

- ผลลพธของการตดคาบนตวโปรแกรม

- รายละเอยดของการตดคาทแสดงบนตวโปรแกรม

Functional Specification

- ตดคาภาษาไทยจากไฟลขอความนามสกล .txt ทนาเขามา

- ตดคาภาษาไทยจากขอความทผใชพมพขนเอง

- บนทกผลลพธเกบเปนไฟลขอความนามสกล .txt

โครงสรางของซอฟตแวร (Design)

สามารถแบงออกไดเปน 5 class ใหญๆคอ

Form1 – ทาหนาทสราง GUI หรอสวนตดตอกบผใชหลกๆของโปรแกรม รวมทงรองรบ

การทางานเมอมการรบ input จากผใชดวย

ProperNoun – จดการเรองการตดคาวสามานยนาม

3

LoadFile – ทาหนาทเปดไฟล .txt ในการทางานตางๆ

SaveFile – ทาหนาทบนทกไฟล .txt ในการทางานตางๆ

StringTokenizer – ทาหนาทจดรปแบบของขอความทนาเขามาใหอยในรปของ Token

เพอทจะสามารถดงขอมลมาใชไดอยางสะดวก

นอกจากนยงไดมการนาโปรแกรม SWATH 0.3.4 ทไดรบการดดแปลงเพอใหรองรบกบ

สวนของการเพม tag <NE> และ <AB> เขามาชวยในการตดคา โดยจะทาการเรยกใชผาน

Command Line รวมทงไดมการสราง database เพอเกบสวนของ Proper Noun เพมเตมอกดวย

ขอบเขตและขอจากดของโปรแกรมทพฒนา 

- SEA Parsing สามารถตดคาทไดจากไฟลนามสกล .txt หรอทผใชพมพเขาไปโดยตรงเทานน

- SEA Parsing สามารถบนทกคาทไดรบการตดเปนไฟลนามสกล .txt เทานน

- ผใชงาน SEA Parsing จาเปนทจะตองตดตง Microsoft .NET Framework 3.5 SP1 กอน

กลมผใชโปรแกรม 

หนวยงานททางานเกยวกบการจดเกบคลงขอมลภาษาไทย เชน โครงการคลงขอมลภาษาไทย

แหงชาต ของคณะอกษรศาสตร จฬาลงกรณมหาวทยาลย เปนตน หนวยงานภายนอกทมการวจยเกยวของ

หรอ ผทสนใจเกยวกบการตดคาภาษาไทย

ผลของการทดสอบโปรแกรม

เมอทาการทดสอบซอฟตแวรวจวภาคสมทรแลว จะพบวาการใชงานของฐานขอมลคาวสามา

นยนามนน ชวยใหการตดคานนมประสทธภาพมากยงขน เพราะวาจะทาใหการตดคาของคาทเปนชอเฉพาะ

นนพจารณาเปนคาหนงคา และไมทาใหการตดคาแบบปกตโดยใช Swath นนไปตดคาทเปนวสามานยนาม

นน ๆ ซงจะทาใหเกดความผดพลาดขนมากมาย อกทงยงมฐานขอมลของคาทใชวธการตดคาแบบปกต

4

ผดพลาดนนกจะทาใหสามารถจดการกบคาทผดพลาดไดเพมขน จงสงผลใหการทางานของซอฟตแวรวจ

วภาคสมทรมการทางานทด แตอาจจะยงคงมขอผดพลาดเกดขน เนองจากการเกบฐานขอมลคานน ยงไม

ครอบคลมทกกรณ เชน กรณทมคาวสามานยนามอยในบทความ แตไมไดมอยในฐานขอมลวสามานยนาม

เปนตน

ปญหาและอปสรรค

เนองจากผพฒนาไดใชวธการในการคนหาคาวสามานยนาม(Proper Noun) ทมในบทความแลวตด

คาวสามานยนามเหลานกอนทาการตดคาทเหลอ เพอไมใหคาวสามานยนามเหลานนถกแยกออกจากกนหรอ

มคาอนใดตดมาดวย ซงทาใหมความถกตองในการตดคานนเพมมากขน โดยการหาคาวสามานยนามนน

อาจทาไดดวยการเทยบจากคาวสามานยนามทมอยแลวในฐานขอมล หรออกกรณหนงคอการหาคาวสามา

นยนามคาใหมๆ ทไมไดมอยในฐานขอมลทมกอนหนา ซงจาเปนตองอาศยการสงเกตจากขอความทงหมด

จากนนจงนาคาวสามานยนามทพบใหมเหลานมาเกบเพมในฐานขอมลทมกอนหนาน กจะทาใหซอฟตแวร

วจวภาคไดเรยนรศพทใหมอกดวย แตอยางไรกตาม การคดหาวธทจะไดคาวสามานยนามคาใหม ๆ ทไมได

มอยในฐานขอมลนนเปนเรองทพจารณาไดลาบาก เนองจากภาษาไทยนนไมมการแสดงความแตกตางของ

คาทเปนคานามทวไปกบคาวสามานยนาม ซงตางจากบางภาษาทสามารถสงเกตวาเปนคาวสามานยนามได

งาย เชน ภาษาองกฤษ ซงจะใชอกษรตวใหญขนตนคาวสามานยนามเสมอไมวาจะอยสวนใดของประโยคก

ตาม เปนตน

อกประเดนหนง คอ ภาษาไทยนนจะมลกษณะการเขยนทตดตอกนไปตลอดทงประโยคโดยไมม

การเวนวรรค ดงนน การคดเลอกคาวสามานยนามจากสวนหนงในประโยคซงอาจอยหนาสด ตรงกลาง หรอ

หลงสดของประโยคกได กอาจมผลใหคาวสามานยนามทเลอกมานน สนเกนไป หรอยาวเกนไป ซงอาจ

สงผลใหในการตดคาวสามานยนามบางคาจากขอความอาจถกมองขามไป ยงไปกวานนคอ อาจทาใหผลจาก

การตดคานนเกดความผดพลาดตอเนองไปทงบทความเลยกเปนได

การสงเกตจากคานาหนาชอ เปนอกทางเลอกหนงทนาจะนาไปสการหาคาวสามานยนามทม

ประสทธภาพ และการมคานาหนาชออยในบทความนน จะสงเกตไดวา มกจะมนามสกลตามหลงมาดวย

(โดยเฉพาะการกลาวในครงแรกของบทความ) แตวธการนยงมขอยกเวนและสงทตองพจารณาอกหลายสง

5

ซงมความละเอยดออนทจะพจารณาอย เชน คาวา “นาย” เปนคานาหนาชอ แตบางครง “นาง” อาจเปนเพยง

สวนหนงของคา เชน “ทนาย” “นายหนา” “นายทน” หรอ “นายก” ซงคาเหลานไมใชชอเฉพาะ หรอหากเปน

คาวา “นางสาว” หากเปนคาเชน “นางสาวไทย” แมวาคานจะเปนคาวสามานยนาม แตถาระบบเขาใจวาคาน

เปนชอคน ระบบอาจดงขอความดานหลงมาตอทายเปนนามสกล ซงทาใหเกดความผดพลาดได

อกวธการหนงคอ การใชเครองหมายวรรคตอนเปนตวพจารณา เชน การสงเกตเครองหมายวงเลบ

เครองหมายอญประกาศ หรอเครองหมายยตภงค เปนตน ซงจากการสงเกตการใชเครองหมายวรรคตอนตาม

บทความตางๆ กพบวา สามารถใชบงถงคาวสามานยนามไดมากทเดยว แตปญหาในวธการนคอ ประเภท

ของบทความ เชน หากเปนบทความทเปนขาว ขอความขนาดสนภายใตเครองหมายอญประกาศแทบทงหมด

จะเปนคาวสามานยนาม แตหากใชวธนในการพจารณาหาคาวสามานยนามแลว จะเกดปญหาอยางยงกบ

บทความทเปนนยาย เนองจากขอความภายใตเครองหมายอญประกาศนนมกจะเปนประโยคสนๆ ซงไมใช

คาวสามานยนาม แตระบบอาจไปสรปวาคากลาวทงหมดนนเปนคาวสามานยนามซงอาจเกดความเสยหาย

ไดหากนาคาเหลานไปเกบในฐานขอมลเพอใชเปรยบเทยบ

สาหรบปญหาในการพฒนาซอฟตแวรวจวภาคนน คอไมสามารถพฒนาให Swath สามารถใชงาน

กบฐานขอมลคาศพททเพมมากขนได ซงทางผพฒนาไดทดลองการใชงานตามวธการเพมคาศพทจาก

บทความของผพฒนา Swath แลว แตสงทปรากฏคอไมสามารถใชงานไดอยางถกตองได จงทาใหตอง

เปลยนวธการพฒนาไปเปนการสรางฐานขอมลเพมเตม

ดวยเหตน โครงการวจวภาคสมทร จงพฒนาซอฟตแวรวจวภาคทมลกษณะเปนการเปรยบเทยบวาม

คาวสามานยนามอยในขอความทรบเขามา โดยใชฐานขอมลวสามานยนามทสรางขนจากไฟลขอมลทวไป ท

รวบรวมคาวสามานยนามทปรากฏอยท วไปในบทความ

แนวทางในการพฒนาและประยกตใชรวมกบงานอนๆ ในขนตอไป 

ในขณะนทางผจดทาไดเรมตนแผนการพฒนาสวนการวเคราะหตดคาทเปน วสามานยนาม (Proper

Noun) ซงหมายถง คานามทเปนชอเฉพาะของคน สตว สงของ และสถานท โดยอาศยหลกการสงเกต

องคประกอบของคาในยอหนาเดยวกน และอาศยเทคนคการเรยนรเชงสถตในการเพมคาศพททเปนวสามา

นยนามเขาไปในฐานขอมล

6

ขอสรปและขอเสนอแนะ

โครงการวจวภาคสมทรเปนการนาเสนอวธการตดคาภาษาไทย โดยการพจารณาคาวสามานยนาม

เพมเตมกอนการตดคาภาษาไทยโดยวธทวไปจากการใช Swath ซงมใหใชอยแลว อกทงเปนโครงการททา

ใหการใชงาน Swath งายขน เพอใหผใชทตองการตดคาภาษาไทยสามารถใชงานไดงายขน

นอกจากการพฒนาซอฟตแวรวจวภาคสมทรน ทางผพฒนาไดทดลองคนหาหลกการในการ

พจารณาคาวสามานยนามจากขอความทรบเขามา แตการพจารณานนยงคงเปนเรองทซบซอน เพราะแมวาจะ

ใชวธการทคดเพอพจารณาวาคาใดเปนคาวสามานยนาม แตกไมสามารถทาใหการทางานเปนไปอยางดหรอ

ถกตองไดครบถวนได หรออาจจะทาใหการทางานผดพลาดไป จงทาใหการทางานของซอฟตแวรวจวภาค

สมทรยงคงเปนลกษณะการใชฐานขอมลคาวสามานยนามเชนเดม

7

เอกสารอางอง (Reference)  

GUI Windows Form « C# / C Sharp. (ม.ป.ป.). เขาถงไดจาก http://www.java2s.com/Code/CSharp/GUI-

Windows-Form/CatalogGUI-Windows-Form.htm

Java Like StringTokenizer in C#. (ม.ป.ป.). เขาถงไดจาก http://www.c-

sharpcorner.com/UploadFile/pseabury/JavaLikeStringTokenizer11232005015829AM/JavaLikeStringTok

enizer.aspx

Machine Translation Archive. (ม.ป.ป.). เขาถงไดจาก http://www.mt-archive.info/

Yai's Blog. (ม.ป.ป.). เขาถงไดจาก http://simpleyai.blogspot.com/2006/10/this-is-my-first-blog.html

8

ภาคผนวก (Appendix) 

คมอการตดตงอยางละเอยด 

ขนตอนตดตงสามารถทาไดโดยการดบเบลคลกทไฟล SEAParsingSetUp.exe

หนาตางเพอใหผใชไดทราบถงขอตกลงในการใชซอฟแวร

9

เมอคลก ยอมรบ แลวหนาตางสาหรบ Extract ไฟลจะถกเปดขน พรอมใหผใชเลอกตาแหนงทจะลง

โปรแกรม จากนนจงทาการคลก Install

10

จากนนจะปรากฏ Shortcut Icon ของ SEA Parsing บนหนาจอ desktop เพอใหผใชสามารถเรยกใช

คมอการใชงานอยางละเอยด 

เมอเรมการใชงานซอฟตแวรวจวภาคสมทร จะแสดงผลออกมา พรอมกบวธการใชงาน ดงรป

หากตองการเลอกไฟลขอมลทจะรบเขามาทาการตดคา ใหกดเลอกทปม “เลอกไฟล...” เพอเลอก

ไฟลขอมลทตองการ จากนน ใหกดเลอก “เปด” เพอเอาขอความในไฟลขอมลนน ๆ มาแสดงผลบนหนาจอ

เพอแสดงวาขอความมลกษณะเปนอยางไร จะไดหนาจอดงรป

11

อกวธหนงในการนาขอมลเขามาตดคานน อาจนาขอความมาวางไวบนกลองขอความ โดยไม

จาเปนตองเลอกไฟลขอมลมา การทางานของซอฟตแวรวจวภาคสมทรจะยงคงทางานไดตามปกต

เมอขอความทตองการตดคาอยบนกลองขอความแลว ผใชสามารถแกไขขอความทแสดงผลได เชน

เพมขอความ หรอลบขอความ เปนตน ซงจะนาสวนทแกไขไปพจารณาการตดคาดวย เสรจแลวจงสงให

ซอฟตแวรวจวภาคสมทรทางานโดยเลอกปม SEAParse!!! ซอฟตแวรวจวภาคสมทรกจะนาขอความทอยบน

12

กลองขอความไปประมวลผลการตดคา เมอประมวลผลเสรจสนแลว กจะนาผลลพธทตดคาเสรจสนมา

แสดงผลทกลองขอความเชนเดม

จากนน ถาหากผใชมความตองการทจะเกบขอมลการตดคาทอยในกลองขอความนไว เลอกปม

“บนทกเปน…” แลวเลอกระบตาแหนงทตองการบนทกไฟลขอมลไว กจะไดไฟลขอมลของผลลพธการตด

คาทผานซอฟตแวรวจวภาคสมทร