รายงานเข้าร่วมโครงการ APO รหัสโครงการ 10-IN-10-GE-OSM-B ......รายงานเข้าร่วมโครงการ
รหัสโครงการ 11p34c596 SEA Parsing BEST2009 – (BEST – … ·...
Transcript of รหัสโครงการ 11p34c596 SEA Parsing BEST2009 – (BEST – … ·...
รหสโครงการ 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!!! ซอฟตแวรวจวภาคสมทรกจะนาขอความทอยบน