SlideShare a Scribd company logo
1 of 15
Download to read offline
รหัสโครงการ 11p14c608

ระบบคําถามคําตอบสําหรับวิกพีเดียภาษาไทย
ิ
โปรแกรมเพื่องานการพัฒนาวิทยาศาสตร์ และเทคโนโลยี

รายงานฉบับสมบูรณ์
เสนอต่ อ
ศูนย์เทคโนโลยีอิเล็กทรอนิกส์และคอมพิวเตอร์ แห่งชาติ
สํานักงานพัฒนาวิทยาศาสตร์ และเทคโนโลยีแห่งชาติ
กระทรวงวิทยาศาสตร์ และเทคโนโลยี
และ
สํานักงานส่งเสริมอุตสาหกรรมซอฟต์แวร์ แห่งชาติ

ได้ รับทุนอุดหนุนโครงการวิจย พัฒนาและวิศวกรรม
ั
้
โครงการการแข่งขันพัฒนาโปรแกรมคอมพิวเตอร์ แห่งประเทศไทย ครังที่ 11
ประจําปี งบประมาณ 2551

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

บทคัดย่อ (ไทย) 
เครื่ องมือช่วยค้ นหาข้ อมูล (Search engine) ในปั จจุบนไม่ได้ ตอบสนองคําค้ นของผู้ใช้ โดยตรง เพียงแต่แสดงให้ ผ้ ใช้ เห็นว่า
ั
ู
คําค้ นของผู้ใช้ นนเกี่ยวข้ องและพบมากในเอกสารใดบ้ าง ซึงผู้ใช้ ต้องนําผลลัพธ์รายการเอกสารที่ได้ มาอ่านและกรองข้ อมูลด้ วย
ั้
่
ตนเองเพื่อหาคําตอบที่ต้องการ ระบบคําถามคําตอบเป็ นระบบที่รับคําถามที่อยู่ในรูปของประโยคภาษามนุษย์จากผู้ใช้ และคืน
คําตอบที่กระชับ ในระบบที่พฒนาขึ ้นนี ้ได้ ใช้ สารานุกรมออนไลน์ วิกิพีเดียภาษาไทยเป็ นฐานความรู้สําหรับตอบคําถาม โดย
ั
่
ระบบสามารถสกัดข้ อมูลที่มีโครงสร้ างจากเอกสารต่างๆ ที่อยูในสารานุกรมและนํามาเก็บอยูในรูปของ Resource Description
่
Framework (RDF) ระบบใช้ วิธีค้นคืนคําตอบ 2 วิธี คือ 1. แปลงคําถามให้ อยูในรูปคําค้ นภาษา SPARQL โดยเทียบคําถามกับ
่
รูปแบบที่มีอยูแล้ วและดึงข้ อมูลจากฐาน RDF โดยตรง ซึงคําตอบที่ได้ มกจะเป็ นคําสันๆ 2. ใช้ เทคนิคการค้ นคืนสารสนเทศ
่
่
ั
้
(Information Retrieval) เมื่อไม่สามารถแปลงคําถามให้ เป็ นคําค้ น SPARQL ได้ ระบบจะสกัดคําสําคัญ (keyword) จาก
คําถามของผู้ใช้ และค้ นคืนจากดัชนี (index) ของเอกสารวิกิพีเดียที่เตรี ยมไว้ แล้ ว โดยจะพยายามเลือกช่วงข้ อความที่สั ้นที่สด
ุ
้
ั
และมีคําสําคัญในประโยคคําถามมาเป็ นคําตอบ คําตอบที่ได้ จากวิธีที่สองมักจะเป็ นช่วงข้ อความสันๆ ระบบที่พฒนาขึ ้น
สนับสนุนคําถาม 5 ประเภท คือ คําถามเกี่ยวกับบุคคล คําถามเกี่ยวกับองค์กร คําถามเกี่ยวกับสถานที่ คําถามเกี่ยวกับตัวเลข
เชิงปริมาณ และคําถามเกี่ยวกับเวลา

บทคัดย่อ (อังกฤษ) 
Search engines on the Internet do not directly give what users need. They merely show a list of documents
relevant to a given query. The users need to read through the documents to get the needed information. To solve
the problem, we develop a question answering system which retrieves specific answers for Thai questions using
Thai Wikipedia as its knowledge base. The system can automatically store the extracted structured information in
the form of Resource Description Framework (RDF). Two approaches are used to answer a question. First, the
question is transformed into a SPARQL query which directly retrieves a short answer from the RDF base. Second,
if the first approach does not work, an information retrieval technique is used. The shortest text fragment which
contains the key terms of the question is retrieved from the index. The system supports five types of questions,
namely person, organization, place, quantity, and date/time questions.

บทนํา
โครงการนี ้มีจดมุ่งหมายเพื่อสร้ างระบบคําถามคําตอบ (Question Answering System) ที่สามารถใช้ งานได้ จริงสําหรับวิกิ
ุ
พีเดียภาษาไทย ระบบคําถามคําตอบเป็ นประเภทหนึงของระบบค้ นคืนสารสนเทศ (Information Retrieval) โดยคําค้ นที่ผ้ ใช้
่
ู
ปอนให้ แก่ระบบจะอยู่ในรูปของคําถามที่เป็ นภาษามนุษย์ เช่น “สงครามโลกครังที่หนึงเกิดขึ ้นในปี ใด” เป็ นต้ น ระบบจะ
้
้
่
พยายามทําความเข้ าใจคําค้ นของผู้ใช้ และสกัดส่วนหนึงของข้ อความ ประโยคหรื อย่อหน้ าที่น่าจะเป็ นคําตอบจากเอกสาร
่
ทั ้งหมดที่มีอยู่ ผลลัพธ์ที่คืนแก่ผ้ ใช้ จะเป็ นเพียงข้ อความสันๆที่มีความเฉพาะเจาะจง ไม่ใช่รายการของเอกสารดังเช่นกรณีของ
ู
้
่
เครื่ องมือช่วยค้ นหาข้ อมูลทัวๆไป ประโยชน์ของโครงการนอกจากจะเป็ นการสนับสนุนการเข้ าถึงสื่อการเรี ยนรู้อย่างวิกิพีเดีย
สําหรับเด็กและเยาวชนแล้ ว องค์ความรู้และข้ อมูลที่เป็ นโครงสร้ างต่างๆในวิกิพีเดียที่สกัดได้ ยังเป็ นประโยชน์ตองานวิจย
่
ั
ทางด้ านการประมวลผลภาษาไทยอีกด้ วย
 
 
 
 
 
สารบัญ 
กิตติกรรมประกาศ............................................................................................................................................................2 
บทคัดย่อ (ไทย)................................................................................................................................................................2 
บทคัดย่อ (อังกฤษ)...........................................................................................................................................................2 
บทนํา ..............................................................................................................................................................................3 
สารบัญ ...........................................................................................................................................................................4 
วัตถุประสงค์และเปาหมาย ...............................................................................................................................................5 
้
รายละเอียดของการพัฒนา ...............................................................................................................................................5 
ทฤษฎีและเทคโนโลยีที่ใช้ ............................................................................................................................................5 
Wikipedia ............................................................................................................................................................6 
RDF และ SPARQL ..............................................................................................................................................7 
การค้ นคืนสารสนเทศ ............................................................................................................................................7 
เครื่ องมือที่ใช้ ในการพัฒนา..........................................................................................................................................8 
Software Specification .............................................................................................................................................8 
โครงสร้ างของซอฟท์แวร์ ..............................................................................................................................................9 
กลุมผู้ใช้ โปรแกรม ..........................................................................................................................................................11 
่
ผลของการทดสอบโปรแกรม ...........................................................................................................................................11 
ปั ญหาและอุปสรรค ........................................................................................................................................................11 
แนวทางในการพัฒนาและประยุกต์ใช้ ร่วมกับงานอื่นๆ ในขันต่อไป ....................................................................................11 
้
เอกสารอ้ างอิง ................................................................................................................................................................12 
คูมือการติดตังอย่างละเอียด ...........................................................................................................................................14 
่
้
คูมือการใช้ งานอย่างละเอียด ..........................................................................................................................................14 
่
วัตถุประสงค์ และเป้ าหมาย 
• เพื่อพัฒนาระบบคําถามคําตอบที่ใช้ งานได้ จริ งสําหรับวิกิพีเดียภาษาไทย
• เพื่อสนับสนุนการเข้ าถึงสื่อการเรี ยนรู้อย่างวิกิพีเดียสําหรับเด็กและเยาวชน
• เพื่อเป็ นต้ นแบบในการพัฒนาระบบคําถามคําตอบภาษาไทยสําหรับเรื่ องอื่นๆ ที่ไม่จํากัดเฉพาะวิกิพีเดีย
เปาหมายหลักของโครงการนี ้คือ เพื่อพัฒนาระบบคําถามคําตอบที่ใช้ งานได้ จริ งสําหรับวิกิพีเดียภาษาไทย โดยมีขอบเขตดังนี ้
้
• ภาษาที่ใช้ ถามต้ องเป็ นภาษาที่ถกต้ องตามหลักไวยกรณ์ไทย หรื อถามในรูปแบบที่ระบบกําหนดไว้
ู
• ข้ อมูลที่สามารถถามได้ คือเนื ้อหาที่อยู่ในวิกิพีเดียภาษาไทยเท่านัน ซึงครอบคลุมเรื่ องราวค่อนข้ างมากพอที่จะ
้ ่
นํามาใช้ ตอบคําถามได้ หลายประเภท
• ระบบคําถามคําตอบที่จะพัฒนาขึ ้นสนับสนุนคําถาม 5 ประเภท คือ
1. คําถามเกี่ยวกับบุคคล เช่น “โทมัส เอดิสนคือใคร”
ั
2. คําถามเกี่ยวกับองค์กร เช่น “บริษัทไมโครซอฟท์ผลิตอะไร”
่
3. คําถามเกี่ยวกับสถานที่ เช่น “ประเทศไทยอยูที่ไหน”
4. คําถามเกี่ยวกับตัวเลขเชิงปริ มาณ เช่น “ในโลกนี ้มีทั ้งหมดกี่ประเทศ”
5. คําถามเกี่ยวกับวันเวลา เช่น “สงครามโลกครังที่ 2 เกิดขึ ้นเมื่อใด” “Bill Clinton เกิดเมื่อใด”
้
ระบบไม่สามารถตอบคําถามประเภท “ทําไม” หรื อ “อย่างไร” ได้

รายละเอียดของการพัฒนา 
ทฤษฎีและเทคโนโลยีทใช้  
ี่
ในโครงการนี ้มีทฤษฎีและเทคโนโลยีหลักที่เกี่ยวข้ องคือ
1. Wikipedia
2. RDF และ SPARQL
3. การค้ นคืนสารสนเทศ
Wikipedia 
้
วิกิพีเดีย (WIKIPEDIA) คือสารานุกรมออนไลน์หลายภาษาที่แจกจ่ายในลักษณะเนือหาเสรี โดยเปิ ดให้ ทุกคนสามารถแก้ ไข
เนื ้อหาได้ บทความของวิกิพีเดียประกอบไปด้ วยข้ อมูลที่มีโครงสร้ างและไม่มีโครงสร้ างหลายชนิด ซึ่งล้ วนแต่เป็ นประโยชน์
ต่อระบบคําถามคําตอบ ในหนึ่งบทความของวิกิพีเดียประกอบไปด้ วย
1. หมวดหมู่ – หมวดหมู่คือคําที่ถูกกํากับไว้ ในแต่ละหน้ าโดยผู้เขียนเพื่อจัดเอกสารให้ เป็ นโครงสร้ างที่มีลําดับชัน
้
หมวดหมู่นี ้สามารถนํามาใช้ สร้ าง ONTOLOGY เพื่อเพิ่มความเข้ าใจภาษามนุษย์ ให้ แก่ระบบได้
2. กล่องข้ อมูล (INFOBOX) – กล่องข้ อมูลคือตารางที่สรุ ปข้ อมูลของบทความ รู ปที่ 1 แสดงกล่องข้ อมูลในบทความ
“สถาบันเทคโนโลยีนานาชาติสิรินธร” ในวิกิพีเดียภาษาไทย ตารางลักษณะนี สามารถนําไปสกัดแล้ วเก็บในรู ป
้
ของ RDF TRIPLE เพื่อใช้ ในการตอบคําถามได้ คําตอบที่ได้ จะเป็ นคําสั ้นๆ (คําในคอลัมน์ขวาในตาราง)
3. ลิงค์ ออกไปยังบทความอื่น – ลิงค์ เหล่านี ้สามารถนํามาใช้ เพื่อหาข้ อมูลในบทความอื่นต่อไปได้ หากต้ องการ
ข้ อมูลเพิ่ม
4. ลิงค์ เข้ ามายังบทความ – ลิงค์เข้ ามากหมายความว่าบทความนั ้นมี ข้อมูลที่ดีและเป็ นที่นิยม ระบบสามารถใช้
จํานวนลิงค์เข้ าเหล่านีใ้ นการจัดลําดับบทความเพื่อเป็ นคําตอบได้
ั
5. เนื ้อหาบทความ – เนื ้อหาบทความในวิกิพีเดียจะมีการแบ่งหัวข้ อไว้ ชดเจน และใช้ ภาษาที่เป็ นทางการ เนื ้อหา
เหล่านี ้จึงเหมาะที่จะมาใช้ ในระบบคําถามคําตอบ

รู ปที่ 1 กล่องข้ อมูลในบทความ “สถาบันเทคโนโลยีนานาชาติสรินธร” ในวิกิพีเดียภาษาไทย
ิ
RDF และ SPARQL 
RDF หรื อ Resource Description Framework เป็ นเทคโนโลยีหนึงของ Semantic Web เป็ นภาษาที่ใช้ เพื่อแทนข้ อมูลต่างๆ
่
บนเว็บ โดยข้ อมูลใน RDF จะถูกเรี ยกว่า resource หนึ่ง resource สามารถเป็ นอะไรก็ได้ ขึ ้นอยูกบว่าต้ องการแทนอะไร เช่น
่ ั
่
คน ชื่อหนังสือ เมือง เป็ นต้ น ใน RDF ความสัมพันธ์ของหลายๆ resource จะถูกแทนด้ วย Triple (RDF Triple) ในหนึง Triple
ประกอบไปด้ วย 3 สิงคือ Subject Property และ Object อาจมองว่าเป็ นประธาน กริ ยา และกรรมในภาษามนุษย์ก็ได้ สิ่งใดก็
่
ตามที่มีคณสมบัติ สามารถใช้ Triple เพื่ออธิบายได้
ุ
ในระบบคําถามคําตอบนี ้ RDF Triple ดังกล่าวสามารถสกัดได้ จากข้ อมูลที่มีโครงสร้ างในหน้ าของวิกิพีเดีย เช่น กล่อง
ิ
ข้ อมูล ยกตัวอย่างเช่น หากระบบจะสกัด Triple จากกล่องข้ อมูลในรูปที่ 1 Subject ที่ได้ คือ “สถาบันเทคโนโลยีนานาชาติสริน
ธร” Property คือ ค่าต่างๆที่อยู่ในคอลัมน์ซ้ายของตาราง เช่น อักษรย่อ ผู้อํานวยการ และ Object คือ ค่าต่างๆที่อยู่ในคอลัมน์
ขวาของตาราง จากกล่องข้ อมูลนี ้ระบบสามารถสกัดได้ 8 Triple เพราะมีคณสมบัติ (Property) ของสถาบันเทคโนโลยี
ุ
นานาชาติสรินธรทั ้งสิ ้น 8 อย่างในตาราง
ิ
เมื่อสกัด RDF Triple ได้ แล้ ว ระบบสามารถดึงข้ อมูลจาก Triple เหล่านันได้ โดยใช้ SPARQL ซึงเป็ นภาษาที่ถก
้
่
ู
ออกแบบมาเพื่อการนี ้

การค้ นคืนสารสนเทศ 
การค้ นคืนสารสนเทศ (Information Retrieval) คือเทคโนโลยีที่ใช้ เพื่อค้ นหาข้ อมูลจากคลังเอกสาร ในปั จจุบนนี ้คลังเอกสาร
ั
ดังกล่าวมันจะถูกนํามาประมวลผลและสร้ างฐานดัชนีก่อนการค้ นคืน เพื่อให้ สามารถค้ นคืนได้ รวดเร็ว ในระบบที่พฒนาขึ ้นนี ้ได้
ั
้
ใช้ ไลบรารี่ Lucene เพื่อสร้ างฐานดัชนีจากเอกสารในวิกิพีเดียภาษาไทยทังหมด รวมทังเอกสารอื่นๆที่เกี่ยวข้ องที่พบบน
้
อินเตอร์ เน็ตด้ วย
ระบบจะใช้ วิธีค้นคืนจากฐานดัชนีที่เตรี ยมไว้ เมื่อ SPARQL ไม่สามารถตอบคําถามของผู้ใช้ ได้ โดยจะพยายามดึงช่วงข้ อความ
ที่สนที่สดจากทุกเอกสาร โดยที่ช่วงข้ อความนันมีคําสําคัญในคําถามของผู้ใช้ ครบทุกคํา การใช้ วิธีนี ้สามารถลดความยุ่งยากใน
ั้ ุ
้
การวิเคราะห์ประโยคคําถามลงได้ อย่างมาก ต่อไปนี ้คือตัวอย่างอย่างคร่าวๆ ยกตัวอย่างเช่น กําหนดให้ ตวอักษรภาษาอังกฤษ
ั
หนึ่งตัวแทนคําหนึงคําและคําสําคัญในคําถามของผู้ใช้ ที่สกัดได้ คือ A B C และมีสวนของข้ อความที่น่าจะเป็ นคําตอบอยู่ 2
่
่
ข้ อความคือ
1.….. A F W T B N F C……..
2.……E A B W C P…..
จะเห็นว่าทั ้งสองช่วงข้ อความมีคํา A B C เหมือนกัน แต่ในช่วงข้ อความที่ 2 คําทังสามคํานี ้อยู่ใกล้ กนมากกว่า ระบบจะเลือก
้
ั
ช่วงข้ อความที่ 2 ไปเป็ นคําตอบให้ กบคําถามของผู้ใช้ ที่มีคําสําคัญ A B C
ั

เครื่องมือทีใช้ ในการพัฒนา 
่
เครื่ องมือและไลบรารี่ หลักที่ใช้ สามารถสรุปได้ ดงนี ้
ั
• ใช้ ภาษา Java ร่ วมกับ Eclipse 3.4 และ Netbeans 6 ในการพัฒนาระบบสกัดข้ อมูลและระบบคําถามคําตอบ
• ใช้ Ubuntu 8.04 Linux เป็ นระบบปฏิบติการ
ั
• ใช้ ThaiAnalyzer เพื่อตัดคําไทย
• ใช้ Jena เพื่อจัดการกับข้ อมูล RDF รวมถึงเพื่อการค้ นคืนข้ อมูลโดยใช้ SPARQL
• ใช้ JWBF เพื่อเรี ยกใช้ API ของ MediaWiki จากโปรแกรม Java
• ใช้ Lucene เพื่อสร้ างฐานดัชนีของเอกสารในวิกิพีเดียภาษาไทยทังหมดรวมถึงเอกสารอื่นๆจากอินเตอร์ เน็ต เพื่อ
้
ความรวดเร็ วในการสืบค้ น
• ใช้ wikipedia-parser เพื่อแจงประโยค (parse) ของข้ อความที่เขียนในรูปของ WikiText
• ใช้ JDom เพื่อจัดการกับ XML ซึงเป็ นผลลัพธ์จากการแจกประโยคของ WikiText
่
• ใช้ SimMetrics เพื่อทํา fuzzy match ระหว่างคําที่ผ้ ใช้ ต้องการค้ นกับคําที่มีอยู่
ู
• ใช้ Yahoo Search API เพื่อเก็บรายการของ URL ที่ต้องการ แล้ วนํา URL ที่ได้ ไปใช้ กบ web crawler ของระบบเพื่อ
ั
เก็บเอกสารต่างๆจากเว็บอื่นๆ แล้ วนํามาใช้ หาคําตอบ
• ใช้ HTMLParser เพื่อสกัดข้ อมูลจากไฟล์ HTML
ทั ้งหมดนี ้เป็ นเครื่ องมือและไลบรารี่ ที่สามารถใช้ ได้ โดยไม่ต้องเสียค่าใช้ จ่ายใดๆ
Software Specification 

Input
Output

Functional
Specification

คําถามภาษาไทยที่ถกต้ องตามรูปแบบที่ระบบกําหนด
ู
ข้ อความสันๆที่เป็ นคําตอบสําหรับคําถาม หรื อตอบว่า “ไม่มีข้อมูล” หากระบบไม่
้
สามารถหาคําตอบได้
URL หรื อหมายเลขเอกสารที่เป็ นแหล่งที่มาของคําตอบ
คําถามอื่นๆที่เกี่ยวข้ อง (Query Suggestion) ส่วนนี ้มีไว้ เพื่อแนะนําคําถามแก่ผ้ ใช้
ู
ตอบคําถามภาษาไทยที่ไม่ซบซ้ อนจนเกินไปได้
ั
มีสวนติดต่อกับผู้ใช้ บนเว็บ (Web interface)
่
แนะนําคําหรื อคําถามที่เกี่ยวข้ องได้
เรี ยนรู้ คําหรื อประโยคที่เหมือนกันได้ เองระหว่างที่ทํางาน อาจใช้ วิธีถามผู้ใช้ แล้ วเก็บ
คําตอบไว้ เพื่อเป็ นข้ อมูลไว้ ใช้ ครังต่อไป
้

โครงสร้ างของซอฟท์ แวร์  

รู ปที่ 2 แผนภาพแสดงโครงสร้ างโดยรวมของระบบ

รูปที่ 2 แสดงแผนภาพโครงสร้ างโดยรวมของระบบคําถามคําตอบ ระบบคําถามคําตอบนี ้ประกอบไปด้ วย 4 ส่วนใหญ่ๆ คือ
1. ส่ วนประมวลผลคําถาม (Question Processor) ส่วนนี ้มีหน้ าที่หลักเพื่อแปลงคําถามที่รับมาจากผู้ใช้ ให้ อยูในรูปแบบที่
่
ง่ายต่อการนําไปใช้ สําหรับค้ นคืนคําตอบ โดยแบ่งได้ เป็ น 4 ส่วนย่อย คือ
• Question Normalizer – ใช้ สําหรับเปลี่ยนคําในคําถามให้ อยู่ในรูปแบบที่ใช้ ในวิกิพีเดีย รวมไปถึงแก้ ไขคําผิดด้ วย
เช่น แก้ ไขคําถาม “ฟิ ศิกคือไร” ให้ เป็ น “ฟิ สกส์คืออะไร”
ิ
• Word Segmenter – ใช้ เพื่อตัดคําในประโยคคําถามเพื่อให้ สวนถัดไปประมวลผลได้ งายขึ ้น เมื่อตัดคําแล้ วจะได้
่
่
Tokenized Sentence ดังภาพ
• Question Analyzer – ใช้ เพื่อวิเคราะห์คําถามที่ถกตัดคําแล้ วเพื่อแยกประเภทของคําถามและหาว่าคําตอบที่ผ้ ใช้
ู
ู
ต้ องการเป็ นประเภทใด โดยจะแบ่งประเภทของคําถามออกเป็ น 5 ประเภทตามที่ได้ กล่าวไป คือ คําถามเกี่ยวกับ
บุคคล คําถามเกี่ยวกับองค์กร คําถามเกี่ยวกับสถานที่ คําถามเกี่ยวกับตัวเลขเชิงปริ มาณ และคําถามเกี่ยวกับวันเวลา
ผลลัพธ์ที่ได้ จากส่วนนี ้จะเป็ นตัวบอกคําตอบที่ผ้ ใช้ คาดหวังและจะถูกนําไปใช้ ในการสกัดหาคําตอบที่ถกต้ องในส่วน
ู
ู
ถัดไป
นอกจากแยกประเภทคําถามแล้ ว Question Analyzer ยังทําหน้ าที่แปลงประโยคคําถามให้ เป็ นคําค้ นที่อยู่
รูป SPARQL เพื่อใช้ ในขันตอนการสืบค้ นต่อไป สําหรับวิธีการแปลงนั ้นจะใช้ วิธีเทียบกับรูปแบบคําถามที่มีอยู่
้
• Searcher – ใช้ เพื่อดึงข้ อมูลที่นาจะเป็ นคําตอบจากฐานข้ อมูล RDF (Extracted RDF Triples) โดยใช้ SPARQL
่
และประเภทของคําถามที่ได้ รับมาจาก Question Analyzer หากคําค้ น SPARQL ไม่สามารถดึงคําตอบได้ Searcher
จะดึงคําตอบโดยใช้ วิธีการค้ นคืนสารสนเทศบนฐานดัชนี (Search Index) ข้ อมูลที่ค้นคืนออกมาได้ จะถูกส่งไปที่สวน
่
ประมวลผลคําตอบ
2. ส่ วนของตัวแทนเอกสาร (Data Representation) ข้ อมูลเอกสารในวิกีพีเดียภาษาไทยในขณะนี ้มีจํานวนหลายหมื่น
หน้ า การสร้ างตัวแทนเอกสารไว้ ก่อนจึงมีความจําเป็ นเพื่อให้ ค้นคืนได้ รวดเร็ว ตัวแทนเอกสารมีสวนย่อยอยู่ 3 ส่วน คือ
่
• Wikipedia Articles – เอกสารต้ นฉบับที่อยูในวิกิพีเดียภาษาไทย
่
• Extracted RDF Triples – เป็ นส่วนที่เก็บข้ อมูลที่มีโครงสร้ างที่สกัดได้ จากวิกิพีเดียภาษาไทย ข้ อมูลเหล่านี ้อยูในรูป
่
ของ RDF Triple และสามารถนําไปใช้ เป็ นแหล่งค้ นคืนข้ อมูลได้ โดยใช้ ร่วมกับคําค้ นที่อยู่ในรูปของ SPARQL
• Search Index – ฐานดัชนี เป็ นตารางที่เก็บรายการของคํากับหน้ าเอกสารที่มีคําเหล่านั ้นอยู่ การสร้ างดัชนีจะนํา
เอกสารในวิกิพีเดียทังหมดมาขจัด tag ต่างๆ ตัดคํา ขจัดคําหยุด(Stop word) และสร้ างรายการของคํา
้
3. ส่ วนประมวลผลคําตอบ (Answer Processor)
• Answer Ranker – เป็ นส่วนที่ทําหน้ าที่จดลําดับคําตอบที่นาจะเป็ นไปได้ หรื อชุดเอกสารที่ได้ จากระบบค้ นหาข้ อมูล
ั
่
ข้ างต้ น ระบบจะจัดลําดับคําตอบที่ได้ จาก RDF ตามความเกี่ยวข้ องกับคําถามและเลือกลําดับแรกสุดไปเป็ นคําตอบ
แก่ผ้ ใช้ หากคําตอบที่ได้ จาก Searcher อยู่ในรูปของรายการของเอกสารที่ถกค้ นคืนจากฐานดัชนี เอกสารที่มีความ
ู
ู
เกี่ยวข้ องกับคําถามมากจะถูกให้ คะแนนสูงและถูกจัดเป็ นลําดับต้ นๆ เอกสารที่มีคะแนนตํ่ามากๆ จะถูกตัดทิ ้ง เหลือ
แต่เอกสารที่มีคะแนนสูงพอควรที่จะถูกส่งไปให้ สวนสกัดคําตอบต่อไป
่
• Answer Generator – มีหน้ าที่สกัดคําตอบสั ้นๆ จากชุดเอกสารที่ได้ จากการจัดลําดับชุดเอกสารข้ างต้ น คําตอบที่ได้
จะเป็ นย่อหน้ าหรื อเป็ นประโยค โดยประโยคเหล่านี ้จะถูกนํามาจัดเรี ยงตามคะแนนที่ได้ ขึ ้นอยูกบความเกี่ยวข้ องกับ
่ ั
คําถามของผู้ใช้ และประเภทของคําถามที่ได้ ในขั ้นตอนก่อนหน้ านี ้ ประโยคที่ได้ คะแนนสูงสุดจะถูกนําไปเป็ นคําตอบ
4. ส่ วนติดต่ อกับผู้ใช้ (User Interface) ส่วนติดต่อกับผู้ใช้ จะอยู่ในรูปแบบของโปรแกรมแบบ stand-alone โดยจะมีสวนรับ
่
คําถามจากผู้ใช้ และจะมีสวนแสดงคําตอบที่อยูในลักษณะของประโยคหรื อข้ อความสั ้นๆ
่
่
นอกจากระบบหลักแล้ ว ยังมีการพัฒนาระบบเก็บเว็บ (web crawler) โดยใช้ Yahoo Search API เพื่อดึงรายการ URL ที่
ต้ องการ จากนันระบบจะดึงข้ อมูลจาก URL นั ้นๆซึงเป็ นหน้ า HTML, ตัด tags ต่างๆออกเพื่อให้ เหลือเป็ นข้ อความภาษามนุษย์,
้
่
และสร้ างฐานดัชนี ฐานดัชนีที่ได้ จากเว็บต่างๆนี ้จะถูกนําไปเสริมเพื่อใช้ หาคําตอบ
กลุ่มผู้ใช้ โปรแกรม 
• นักเรี ยน นักศึกษา ครูอาจารย์ นักวิจย นักพัฒนาโปรแกรมคอมพิวเตอร์ และผู้ใช้ งานอินเตอร์ เน็ตทัวไปที่ต้องการ
ั
่
เข้ าถึงข้ อมูลอย่างรวดเร็ ว

ผลของการทดสอบโปรแกรม 
จากการเปิ ดให้ เพื่อนๆในภาควิทยาการคอมพิวเตอร์ ปี 4 จํานวน 25 คนลองใช้ งาน พบว่า
• 14 คน (56%) พอใจกับระบบในภาพรวม การประเมินนี ้อนุญาตให้ ถามอะไรก็ได้ ที่ไม่ใช่คําถามประเภท ทําไมและ
อย่างไร
• เมื่อให้ ถามได้ แค่รูปแบบคําถามที่ระบบรู้จก (ซึงทําให้ ระบบใช้ SPARQL ในการตอบเสมอ) พบว่า 21 คน (84%)
ั ่
พอใจกับผลลัพธ์ของระบบมาก
• ความถูกต้ องของคําตอบไม่สามารถบอกได้ เนื่องจากข้ อมูลที่ระบบใช้ มาจากเว็บไซท์ตางๆบนอินเตอร์ เน็ต และ
่
สารานุกรมเสรี วกิพีเดียซึงอนุญาตให้ ใครแก้ ไขเนื ้อหาก็ได้ ดังนันความถูกต้ องจึงขึ ้นอยู่กบเนื ้อหาบนเว็บ แต่โดย
ิ
่
้
ั
ภาพรวมแล้ วคําตอบที่ได้ จากวิกิพีเดียมักจะถูก (มากกว่า 90 %) เพราะวิกิพีเดียมีระบบตรวจสอบเนื ้อหาเป็ นระยะๆ
ส่วนที่ตอบผิดมักเกี่ยวข้ องกับข่าวสารที่ต้องการข้ อมูลที่ทนสมัย ซึงระบบอาจยังไม่ได้ เก็บข้ อมูลใหม่ๆ
ั
่

ปัญหาและอุปสรรค 
อุปสรรคใหญ่ระหว่างการพัฒนาเกี่ยวข้ องกับการประมวลผลภาษาไทย ภาษาไทยเป็ นภาษาที่มีโครงสร้ างซับซ้ อนมาก ไม่มีทง้ั
ขอบเขตของคําหรื อขอบเขตของประโยค ทําให้ การตัดคําเป็ นไปได้ ยาก อีกทังงานวิจยทางด้ านการประมวลผลภาษาไทยยังไม่
้
ั
อิ่มตัวมากนัก ทําให้ ยงไม่คอยมีเครื่ องมือประมวลผลพื ้นฐานอย่างที่ภาษาอื่นมี เช่น ตัวแจงประโยค (parser) ตัวตัดประโยค
ั ่
ระบบรู้ จํานิพจน์ระบุนาม (Named Entity Recognition) ontology ภาษาไทย เป็ นต้ น การสกัดข้ อมูลเพื่อหาคําตอบจึงทําได้ ไม่
ค่อยดีนก
ั

แนวทางในการพัฒนาและประยุกต์ ใช้ ร่วมกับงานอืนๆ ในขั้นต่ อไป 
่
ระบบที่พฒนาขึ ้นยังมีอกหลายจุดที่สามารถนําไปพัฒนาต่อยอดได้ จุดที่นาสนใจมีดงต่อไปนี ้
ั
ี
่
ั
1. นําไปเชื่อมกับวิกิพีเดียเชิงความหมาย (semantic wikipedia) ที่เปิ ดให้ ผ้ ใช้ เขียนได้ อย่างเสรี วิกิพีเดียเชิงความหมายยังไม่
ู
เป็ นที่แพร่หลายนักในประเทศไทย แต่หากทําได้ ระบบจะสามารถใช้ RDF Triple ที่ได้ จากวิกิพีเดียนี ้ได้ โดยตรง โดยไม่
่
ู
ต้ องเสียเวลาสกัดเองจากข้ อความที่ไม่มีโครงสร้ าง อีกทังเป็ นการลดความเสียงของความไม่ถกต้ องของข้ อมูลได้ อย่างมาก
้
2. ระบบคําถามคําตอบนี ้สามารถทําเป็ น web application เพื่อให้ ผ้ ใช้ ใช้ ผ่านเว็บได้ ทนทีโดยไม่ต้องลงโปรแกรม
ู
ั
3. ระบบคําถามคําตอบนี ้สามารถทําเป็ น web service ได้ เพื่อให้ ผ้ พฒนาโปรแกรมอื่นๆสามารถใช้ สวนของการหาคําตอบ
ู ั
่
ั
ในโปรแกรมอื่นๆที่พฒนาขึ ้นได้
4. ระบบคําถามคําตอบนี ้สามารถอัพเดทฐานความรู้ได้ ด้วยตัวเอง โดยรับข้ อมูลจาก RSS Feed ของวิกิพีเดียภาษาไทย ซึง
่
จะบอกเป็ นระยะๆว่ามีหน้ าใดถูกแก้ ไขล่าสุด จากนันให้ ระบบตามไปสกัดหน้ านันๆเพื่ออัพเดทฐานความรู้
้
้
5. หากจํากัดฐานความรู้ให้ ครอบคลุมอย่างเจาะลึกเป็ นเรื่ องๆ เช่น ภาษาไทย สุขศึกษา และเพิ่มรูปแบบของคําถามให้
เหมาะสมกับเรื่ องที่ต้องการ ระบบคําถามคําตอบนี ้สามารถนํามาประยุกต์ให้ เป็ นสื่อการเรี ยนรู้ได้
ั
ั
หลังจากที่ระบบเสร็ จสิ ้นและใช้ งานได้ จริ งในระดับหนึงแล้ ว ผู้พฒนามีแผนร่วมกับหน่วยปฏิบติการวิจยวิทยาการมนุษยภาษา
่
ั
(HLT) ศูนย์เทคโนโลยีอิเล็กทรอนิกส์และคอมพิวเตอร์ แห่งชาติ เพื่อใช้ ระบบกับ ABDUL ซึงเป็ นแชทบอทบนเครื อข่าย MSN
่
เป็ นการเพิ่มความสามารถในการตอบโต้ กบผู้ใช้
ั
นอกจากตัวระบบแล้ วนักวิจยในสาขาที่เกี่ยวข้ องสามารถนํา RDF Triple และข้ อมูลทังหมดในฐานดัชนีที่เกี่ยวข้ องไปใช้ ใน
ั
้
งานวิจยได้
ั

เอกสารอ้ างอิง  
1. http://en.wikipedia.org/wiki/Question_answering
2. http://www.library.jhu.edu/researchhelp/general/evaluating/
3. M. W. Bilotti. “Query expansion techniques for question answering.” Master’s thesis, Massachusetts
Institute of Technology, 2004.
4. Rohini Srihari and Wei Li. “Information extraction supported question answering.” In E. M. Voorhees and
D. K. Harman, editors, NIST Special Publication 500-246: The Eighth Text REtrieval Conference (TREC8). National Institute of Standards and Technology (NIST), U.S. Department of Commerce, NIST, 2000.
5. สุฤดี ฉัตรไตรมงคล : การรู้จําและการจําแนกประเภทของชื่อเฉพาะภาษาไทย. (NAMED ENTITY RECOGNITION
AND CLASSIFICATION IN THAI) อาจารย์ที่ปรึกษา : ผศ. ดร. วิโรจน์ อรุ ณมานะกุล, 75 หน้ า. ISBN 974-532979 -7.
6. Voorhees, E., and Tice, D. M. 1999. “The TREC-8 Question Answering Track Evaluation.” Proceedings of
The Eighth Text REtrieval Conference (TREC-8).
7. เกศสุดา ตุริยากรณ์. “ระบบคําถาม-คําตอบ สําหรับข้ อความภาษาไทย.” วิทยานิพนธ์ ปริญญาวิทยาศาสตร์
มหาบัณฑิต สาขาวิชาวิทยาการคอมพิวเตอร์ บัณฑิตวิทยาลัย มหาวิทยาลัยเกษตรศาสตร์ , 2546.
8. สมหมาย ขันทอง. “ระบบคําถาม-คําตอบสําหรับข้ อความภาษาไทยโดยใช้ วิธีถ่วงนํ ้าหนักช่วงข้ อความที่สนที่สด” สาร
ั้ ุ
นิพนธ์ ปริ ญญาวิทยาศาสตร์ มหาบัณฑิต สาขาวิชาเทคโนโลยีสารสนเทศ บัณฑิตวิทยาลัย สถาบันเทคโยโลยีพระ
จอมเกล้ าพระนครเหนือ, 2548
9. C. Monz. “From Document Retrieval to Question Answering.” PhD thesis, University of Amsterdam, 2003
10. http://www.hlt.nectec.or.th/abdul/index.php
11. http://www.w3.org/TR/REC-rdf-syntax/
12. http://www.w3.org/TR/rdf-sparql-query/
13. http://sansarn.com/look/download.html
14. http://jena.sourceforge.net/
15. http://jwbf.sourceforge.net
16. http://lucene.apache.org/
17. http://code.google.com/p/java-wikipedia-parser/
คู่มอการติดตั้งอย่างละเอียด 
ื
1. ติดตั ้ง JRE 1.6 ขึ ้นไปให้ พร้ อม (มีให้ ในแผ่น CD)
2. Copy โฟลเดอร์ ชื่อ qast ไปวางไว้ ที่ใดก็ได้ บนเครื่ อง
3. หากใช้ Windows ดับเบิ ้ลคลิก run.bat เพื่อเริ่ มโปรแกรม หากใช้ Linux ให้ cd เข้ าไปที่ไดเรกทอรี่ qast แล้ วใช้
คําสัง ./run.sh
่
** ในบางกรณี ผู้ใช้ อาจรันจากในแผ่นได้ เลย ไม่ต้อง copy โฟลเดอร์ qast ลงไปบนเครื่ องก็ได้

คู่มอการใช้ งานอย่างละเอียด 
ื
เมื่อเปิ ดโปรแกรมจะเห็นดังภาพด้ านล่าง

ผู้ใช้ สามารถพิมพ์คําถามลงไปในช่อง “Your Question” แล้ วกดปุ่ ม enter จากนันระบบจะตอบกลับมาในช่อง “Log” เช่น
้
ตัวอย่างข้ างล่าง ผู้ใช้ ถามว่า “ต้ นไม้ ประจําจังหวัดของกรุงเทพคือต้ นอะไร” ระบบตอบ “ไทรย้ อย ใบแหลม”
• เนื่องจากแผ่น CD มีเนื ้อที่จํากัด ผู้พฒนาจําเป็ นต้ องตัดฐานความรู้บางส่วนออก ทําให้ ระบบไม่สามารถตอบคําถาม
ั
ได้ หลากหลายนัก
• รูปแบบคําถามที่ระบบรู้คือ
o X คืออะไร, อะไรคือ X – หานิยามของ X
o X ของ Y คืออะไร – หาคุณสมบัติ X ของ Y เช่น ต้ นไม้ ประจําจังหวัดของกรุงเทพ
o property(X) – หาว่าระบบรู้จกคุณสมบัติอะไรบ้ างของ X คําถามประเภทนี ้อาจใช้ ไม่ได้ กบทุกๆค่าของ X
ั
ั
o คําถามในรูปแบบอื่นๆ – ระบบจะค้ นคืนโดยใช้ เทคนิคของการค้ นคืนสารสนเทศ
• ผู้พฒนาจะเพิ่มรูปแบบคําถามเรื่ อยๆใน version ต่อๆไป
ั

More Related Content

Similar to 633 1

การเขียนรายงานโครงงานคอมพิวเตอร์
การเขียนรายงานโครงงานคอมพิวเตอร์การเขียนรายงานโครงงานคอมพิวเตอร์
การเขียนรายงานโครงงานคอมพิวเตอร์
weerapon0955652023
 
12 ตัวอย่างการประเมินผลวิทยาศาสตร์นานาชาติ pisa_timss
12 ตัวอย่างการประเมินผลวิทยาศาสตร์นานาชาติ pisa_timss12 ตัวอย่างการประเมินผลวิทยาศาสตร์นานาชาติ pisa_timss
12 ตัวอย่างการประเมินผลวิทยาศาสตร์นานาชาติ pisa_timss
Nirut Uthatip
 
Scireleaseditem pisa-timss
Scireleaseditem pisa-timssScireleaseditem pisa-timss
Scireleaseditem pisa-timss
Biobiome
 
ตัวอย่างการประเมินผลวิทยาศาสตร์นานาชาติ PISA และ TIMSS
ตัวอย่างการประเมินผลวิทยาศาสตร์นานาชาติ PISA และ TIMSSตัวอย่างการประเมินผลวิทยาศาสตร์นานาชาติ PISA และ TIMSS
ตัวอย่างการประเมินผลวิทยาศาสตร์นานาชาติ PISA และ TIMSS
kunkrooyim
 
12.ตัวอย่างการประเมินผลวิทยาศาสตร์นานาชาติ pisa และ timss
12.ตัวอย่างการประเมินผลวิทยาศาสตร์นานาชาติ pisa และ timss12.ตัวอย่างการประเมินผลวิทยาศาสตร์นานาชาติ pisa และ timss
12.ตัวอย่างการประเมินผลวิทยาศาสตร์นานาชาติ pisa และ timss
Naughtily NaRee
 
12 ตัวอย่างการประเมินผลวิทยาศาสตร์นานาชาติ pisa_timss
12 ตัวอย่างการประเมินผลวิทยาศาสตร์นานาชาติ pisa_timss12 ตัวอย่างการประเมินผลวิทยาศาสตร์นานาชาติ pisa_timss
12 ตัวอย่างการประเมินผลวิทยาศาสตร์นานาชาติ pisa_timss
Nirut Uthatip
 
ตัวอย่างบทคัดย่อ
ตัวอย่างบทคัดย่อตัวอย่างบทคัดย่อ
ตัวอย่างบทคัดย่อ
sukanya5729
 
การเขียนรายงานโครงงานคอมพิวเตอร์
การเขียนรายงานโครงงานคอมพิวเตอร์การเขียนรายงานโครงงานคอมพิวเตอร์
การเขียนรายงานโครงงานคอมพิวเตอร์
Thanakon504
 
แผนคอมฯ ม.2 1
แผนคอมฯ ม.2 1แผนคอมฯ ม.2 1
แผนคอมฯ ม.2 1
Surapong Jakang
 
รายงานการปฏิบัติงานสหกิจศึกษา
รายงานการปฏิบัติงานสหกิจศึกษารายงานการปฏิบัติงานสหกิจศึกษา
รายงานการปฏิบัติงานสหกิจศึกษา
Attaporn Ninsuwan
 
ชั้นประถมศึกษาปีที่ 6
ชั้นประถมศึกษาปีที่ 6ชั้นประถมศึกษาปีที่ 6
ชั้นประถมศึกษาปีที่ 6
krunuy5
 
ชั้นประถมศึกษาปีที่ 6
ชั้นประถมศึกษาปีที่ 6ชั้นประถมศึกษาปีที่ 6
ชั้นประถมศึกษาปีที่ 6
krunuy5
 
แผนคอมฯ ม.2 2
แผนคอมฯ ม.2 2แผนคอมฯ ม.2 2
แผนคอมฯ ม.2 2
Surapong Jakang
 
ตยคู่มือ
ตยคู่มือตยคู่มือ
ตยคู่มือ
unyaparnss
 

Similar to 633 1 (20)

การเขียนรายงานโครงงานคอมพิวเตอร์
การเขียนรายงานโครงงานคอมพิวเตอร์การเขียนรายงานโครงงานคอมพิวเตอร์
การเขียนรายงานโครงงานคอมพิวเตอร์
 
Pisa
PisaPisa
Pisa
 
12 ตัวอย่างการประเมินผลวิทยาศาสตร์นานาชาติ pisa_timss
12 ตัวอย่างการประเมินผลวิทยาศาสตร์นานาชาติ pisa_timss12 ตัวอย่างการประเมินผลวิทยาศาสตร์นานาชาติ pisa_timss
12 ตัวอย่างการประเมินผลวิทยาศาสตร์นานาชาติ pisa_timss
 
Scireleaseditem pisa-timss
Scireleaseditem pisa-timssScireleaseditem pisa-timss
Scireleaseditem pisa-timss
 
ตัวอย่างการประเมินผลวิทยาศาสตร์นานาชาติ PISA และ TIMSS
ตัวอย่างการประเมินผลวิทยาศาสตร์นานาชาติ PISA และ TIMSSตัวอย่างการประเมินผลวิทยาศาสตร์นานาชาติ PISA และ TIMSS
ตัวอย่างการประเมินผลวิทยาศาสตร์นานาชาติ PISA และ TIMSS
 
12.ตัวอย่างการประเมินผลวิทยาศาสตร์นานาชาติ pisa และ timss
12.ตัวอย่างการประเมินผลวิทยาศาสตร์นานาชาติ pisa และ timss12.ตัวอย่างการประเมินผลวิทยาศาสตร์นานาชาติ pisa และ timss
12.ตัวอย่างการประเมินผลวิทยาศาสตร์นานาชาติ pisa และ timss
 
12 ตัวอย่างการประเมินผลวิทยาศาสตร์นานาชาติ pisa_timss
12 ตัวอย่างการประเมินผลวิทยาศาสตร์นานาชาติ pisa_timss12 ตัวอย่างการประเมินผลวิทยาศาสตร์นานาชาติ pisa_timss
12 ตัวอย่างการประเมินผลวิทยาศาสตร์นานาชาติ pisa_timss
 
Pancom m2
Pancom m2Pancom m2
Pancom m2
 
Pancom m2
Pancom m2Pancom m2
Pancom m2
 
Pancom m2
Pancom m2Pancom m2
Pancom m2
 
ตัวอย่างบทคัดย่อ
ตัวอย่างบทคัดย่อตัวอย่างบทคัดย่อ
ตัวอย่างบทคัดย่อ
 
การเขียนรายงานโครงงานคอมพิวเตอร์
การเขียนรายงานโครงงานคอมพิวเตอร์การเขียนรายงานโครงงานคอมพิวเตอร์
การเขียนรายงานโครงงานคอมพิวเตอร์
 
แนะนำระบบ mcunet มหาจุฬาลงกรณราชวิทยาลัย
แนะนำระบบ mcunet มหาจุฬาลงกรณราชวิทยาลัยแนะนำระบบ mcunet มหาจุฬาลงกรณราชวิทยาลัย
แนะนำระบบ mcunet มหาจุฬาลงกรณราชวิทยาลัย
 
แผนคอมฯ ม.2 1
แผนคอมฯ ม.2 1แผนคอมฯ ม.2 1
แผนคอมฯ ม.2 1
 
รายงานการปฏิบัติงานสหกิจศึกษา
รายงานการปฏิบัติงานสหกิจศึกษารายงานการปฏิบัติงานสหกิจศึกษา
รายงานการปฏิบัติงานสหกิจศึกษา
 
Punyawee Pos Internship 2015 (Software Engineering JAVA DEV at parliament-de...
Punyawee Pos Internship 2015 (Software Engineering JAVA DEV at  parliament-de...Punyawee Pos Internship 2015 (Software Engineering JAVA DEV at  parliament-de...
Punyawee Pos Internship 2015 (Software Engineering JAVA DEV at parliament-de...
 
ชั้นประถมศึกษาปีที่ 6
ชั้นประถมศึกษาปีที่ 6ชั้นประถมศึกษาปีที่ 6
ชั้นประถมศึกษาปีที่ 6
 
ชั้นประถมศึกษาปีที่ 6
ชั้นประถมศึกษาปีที่ 6ชั้นประถมศึกษาปีที่ 6
ชั้นประถมศึกษาปีที่ 6
 
แผนคอมฯ ม.2 2
แผนคอมฯ ม.2 2แผนคอมฯ ม.2 2
แผนคอมฯ ม.2 2
 
ตยคู่มือ
ตยคู่มือตยคู่มือ
ตยคู่มือ
 

More from Sutitta Tannitiphaisan

More from Sutitta Tannitiphaisan (19)

Ex project2 (เสร จ) (1)
Ex project2 (เสร จ) (1)Ex project2 (เสร จ) (1)
Ex project2 (เสร จ) (1)
 
ใบงานที่ 2 8
ใบงานที่ 2 8ใบงานที่ 2 8
ใบงานที่ 2 8
 
ใบงานที่ 9
ใบงานที่ 9ใบงานที่ 9
ใบงานที่ 9
 
ใบงานที่ 9
ใบงานที่ 9ใบงานที่ 9
ใบงานที่ 9
 
ใบงานที่ 2 8
ใบงานที่ 2 8ใบงานที่ 2 8
ใบงานที่ 2 8
 
ใบงานที่ 2 8
ใบงานที่ 2 8ใบงานที่ 2 8
ใบงานที่ 2 8
 
ใบงานที่ 2 8
ใบงานที่ 2 8ใบงานที่ 2 8
ใบงานที่ 2 8
 
ใบงานที่ 2
ใบงานที่ 2ใบงานที่ 2
ใบงานที่ 2
 
ใบงานที่ 2
ใบงานที่ 2ใบงานที่ 2
ใบงานที่ 2
 
ใบงานที่ 2
ใบงานที่ 2ใบงานที่ 2
ใบงานที่ 2
 
ใบงานที่ 2
ใบงานที่ 2ใบงานที่ 2
ใบงานที่ 2
 
Blog
BlogBlog
Blog
 
20120820154541 1
20120820154541 120120820154541 1
20120820154541 1
 
P6thai+math2552
P6thai+math2552P6thai+math2552
P6thai+math2552
 
P6social+science2552
P6social+science2552P6social+science2552
P6social+science2552
 
P6eng+health2552
P6eng+health2552P6eng+health2552
P6eng+health2552
 
P6tech+art2552
P6tech+art2552P6tech+art2552
P6tech+art2552
 
ใบงานสำรวจตนเองSutit ta
ใบงานสำรวจตนเองSutit taใบงานสำรวจตนเองSutit ta
ใบงานสำรวจตนเองSutit ta
 
ใบงานสำรวจตนเอง Sutitta
ใบงานสำรวจตนเอง Sutittaใบงานสำรวจตนเอง Sutitta
ใบงานสำรวจตนเอง Sutitta
 

633 1

  • 1. รหัสโครงการ 11p14c608 ระบบคําถามคําตอบสําหรับวิกพีเดียภาษาไทย ิ โปรแกรมเพื่องานการพัฒนาวิทยาศาสตร์ และเทคโนโลยี รายงานฉบับสมบูรณ์ เสนอต่ อ ศูนย์เทคโนโลยีอิเล็กทรอนิกส์และคอมพิวเตอร์ แห่งชาติ สํานักงานพัฒนาวิทยาศาสตร์ และเทคโนโลยีแห่งชาติ กระทรวงวิทยาศาสตร์ และเทคโนโลยี และ สํานักงานส่งเสริมอุตสาหกรรมซอฟต์แวร์ แห่งชาติ ได้ รับทุนอุดหนุนโครงการวิจย พัฒนาและวิศวกรรม ั ้ โครงการการแข่งขันพัฒนาโปรแกรมคอมพิวเตอร์ แห่งประเทศไทย ครังที่ 11 ประจําปี งบประมาณ 2551 โดย วิทวัส จิตกฤตธรรม รศ. ดร. ธนารักษ์ ธีระมันคง ่ สถาบันเทคโนโลยีนานาชาติสรินธร มหาวิทยาลัยธรรมศาสตร์ ิ
  • 2. กิตติกรรมประกาศ  ผู้พฒนาขอขอบคุณอาจารย์ ธนารักษ์ ธีระมันคง ที่คอยให้ คําแนะนําเรื่ องการประมวลผลภาษาธรรมชาติ อาจารย์ ชูชาติ หฤไช ั ่ ยะศักดิ์ สําหรับเรื่ องการค้ นคืนสารสนเทศ และดร. มารุต บูรณรัชสําหรับเรื่ องเว็บเชิงความหมายและ Ontology ขอขอบคุณ ศูนย์เทคโนโลยีอเิ ล็กทรอนิกส์และคอมพิวเตอร์ แห่งชาติ สํานักงานพัฒนาวิทยาศาสตร์ และเทคโนโลยีแห่งชาติและ สํานักงานส่งเสริมอุตสาหกรรมซอฟต์แวร์ แห่งชาติ ที่ให้ ทนสนับสนุนโครงการนี ้ (ระบบคําถามคําตอบสําหรับวิกิพีเดีย ุ ภาษาไทย) เพื่อร่วมการแข่งขันพัฒนาโปรแกรมคอมพิวเตอร์ แห่งประเทศไทยครังที่ 11 ้ บทคัดย่อ (ไทย)  เครื่ องมือช่วยค้ นหาข้ อมูล (Search engine) ในปั จจุบนไม่ได้ ตอบสนองคําค้ นของผู้ใช้ โดยตรง เพียงแต่แสดงให้ ผ้ ใช้ เห็นว่า ั ู คําค้ นของผู้ใช้ นนเกี่ยวข้ องและพบมากในเอกสารใดบ้ าง ซึงผู้ใช้ ต้องนําผลลัพธ์รายการเอกสารที่ได้ มาอ่านและกรองข้ อมูลด้ วย ั้ ่ ตนเองเพื่อหาคําตอบที่ต้องการ ระบบคําถามคําตอบเป็ นระบบที่รับคําถามที่อยู่ในรูปของประโยคภาษามนุษย์จากผู้ใช้ และคืน คําตอบที่กระชับ ในระบบที่พฒนาขึ ้นนี ้ได้ ใช้ สารานุกรมออนไลน์ วิกิพีเดียภาษาไทยเป็ นฐานความรู้สําหรับตอบคําถาม โดย ั ่ ระบบสามารถสกัดข้ อมูลที่มีโครงสร้ างจากเอกสารต่างๆ ที่อยูในสารานุกรมและนํามาเก็บอยูในรูปของ Resource Description ่ Framework (RDF) ระบบใช้ วิธีค้นคืนคําตอบ 2 วิธี คือ 1. แปลงคําถามให้ อยูในรูปคําค้ นภาษา SPARQL โดยเทียบคําถามกับ ่ รูปแบบที่มีอยูแล้ วและดึงข้ อมูลจากฐาน RDF โดยตรง ซึงคําตอบที่ได้ มกจะเป็ นคําสันๆ 2. ใช้ เทคนิคการค้ นคืนสารสนเทศ ่ ่ ั ้ (Information Retrieval) เมื่อไม่สามารถแปลงคําถามให้ เป็ นคําค้ น SPARQL ได้ ระบบจะสกัดคําสําคัญ (keyword) จาก คําถามของผู้ใช้ และค้ นคืนจากดัชนี (index) ของเอกสารวิกิพีเดียที่เตรี ยมไว้ แล้ ว โดยจะพยายามเลือกช่วงข้ อความที่สั ้นที่สด ุ ้ ั และมีคําสําคัญในประโยคคําถามมาเป็ นคําตอบ คําตอบที่ได้ จากวิธีที่สองมักจะเป็ นช่วงข้ อความสันๆ ระบบที่พฒนาขึ ้น สนับสนุนคําถาม 5 ประเภท คือ คําถามเกี่ยวกับบุคคล คําถามเกี่ยวกับองค์กร คําถามเกี่ยวกับสถานที่ คําถามเกี่ยวกับตัวเลข เชิงปริมาณ และคําถามเกี่ยวกับเวลา บทคัดย่อ (อังกฤษ)  Search engines on the Internet do not directly give what users need. They merely show a list of documents relevant to a given query. The users need to read through the documents to get the needed information. To solve the problem, we develop a question answering system which retrieves specific answers for Thai questions using Thai Wikipedia as its knowledge base. The system can automatically store the extracted structured information in the form of Resource Description Framework (RDF). Two approaches are used to answer a question. First, the
  • 3. question is transformed into a SPARQL query which directly retrieves a short answer from the RDF base. Second, if the first approach does not work, an information retrieval technique is used. The shortest text fragment which contains the key terms of the question is retrieved from the index. The system supports five types of questions, namely person, organization, place, quantity, and date/time questions. บทนํา โครงการนี ้มีจดมุ่งหมายเพื่อสร้ างระบบคําถามคําตอบ (Question Answering System) ที่สามารถใช้ งานได้ จริงสําหรับวิกิ ุ พีเดียภาษาไทย ระบบคําถามคําตอบเป็ นประเภทหนึงของระบบค้ นคืนสารสนเทศ (Information Retrieval) โดยคําค้ นที่ผ้ ใช้ ่ ู ปอนให้ แก่ระบบจะอยู่ในรูปของคําถามที่เป็ นภาษามนุษย์ เช่น “สงครามโลกครังที่หนึงเกิดขึ ้นในปี ใด” เป็ นต้ น ระบบจะ ้ ้ ่ พยายามทําความเข้ าใจคําค้ นของผู้ใช้ และสกัดส่วนหนึงของข้ อความ ประโยคหรื อย่อหน้ าที่น่าจะเป็ นคําตอบจากเอกสาร ่ ทั ้งหมดที่มีอยู่ ผลลัพธ์ที่คืนแก่ผ้ ใช้ จะเป็ นเพียงข้ อความสันๆที่มีความเฉพาะเจาะจง ไม่ใช่รายการของเอกสารดังเช่นกรณีของ ู ้ ่ เครื่ องมือช่วยค้ นหาข้ อมูลทัวๆไป ประโยชน์ของโครงการนอกจากจะเป็ นการสนับสนุนการเข้ าถึงสื่อการเรี ยนรู้อย่างวิกิพีเดีย สําหรับเด็กและเยาวชนแล้ ว องค์ความรู้และข้ อมูลที่เป็ นโครงสร้ างต่างๆในวิกิพีเดียที่สกัดได้ ยังเป็ นประโยชน์ตองานวิจย ่ ั ทางด้ านการประมวลผลภาษาไทยอีกด้ วย          
  • 4. สารบัญ  กิตติกรรมประกาศ............................................................................................................................................................2  บทคัดย่อ (ไทย)................................................................................................................................................................2  บทคัดย่อ (อังกฤษ)...........................................................................................................................................................2  บทนํา ..............................................................................................................................................................................3  สารบัญ ...........................................................................................................................................................................4  วัตถุประสงค์และเปาหมาย ...............................................................................................................................................5  ้ รายละเอียดของการพัฒนา ...............................................................................................................................................5  ทฤษฎีและเทคโนโลยีที่ใช้ ............................................................................................................................................5  Wikipedia ............................................................................................................................................................6  RDF และ SPARQL ..............................................................................................................................................7  การค้ นคืนสารสนเทศ ............................................................................................................................................7  เครื่ องมือที่ใช้ ในการพัฒนา..........................................................................................................................................8  Software Specification .............................................................................................................................................8  โครงสร้ างของซอฟท์แวร์ ..............................................................................................................................................9  กลุมผู้ใช้ โปรแกรม ..........................................................................................................................................................11  ่ ผลของการทดสอบโปรแกรม ...........................................................................................................................................11  ปั ญหาและอุปสรรค ........................................................................................................................................................11  แนวทางในการพัฒนาและประยุกต์ใช้ ร่วมกับงานอื่นๆ ในขันต่อไป ....................................................................................11  ้ เอกสารอ้ างอิง ................................................................................................................................................................12  คูมือการติดตังอย่างละเอียด ...........................................................................................................................................14  ่ ้ คูมือการใช้ งานอย่างละเอียด ..........................................................................................................................................14  ่
  • 5. วัตถุประสงค์ และเป้ าหมาย  • เพื่อพัฒนาระบบคําถามคําตอบที่ใช้ งานได้ จริ งสําหรับวิกิพีเดียภาษาไทย • เพื่อสนับสนุนการเข้ าถึงสื่อการเรี ยนรู้อย่างวิกิพีเดียสําหรับเด็กและเยาวชน • เพื่อเป็ นต้ นแบบในการพัฒนาระบบคําถามคําตอบภาษาไทยสําหรับเรื่ องอื่นๆ ที่ไม่จํากัดเฉพาะวิกิพีเดีย เปาหมายหลักของโครงการนี ้คือ เพื่อพัฒนาระบบคําถามคําตอบที่ใช้ งานได้ จริ งสําหรับวิกิพีเดียภาษาไทย โดยมีขอบเขตดังนี ้ ้ • ภาษาที่ใช้ ถามต้ องเป็ นภาษาที่ถกต้ องตามหลักไวยกรณ์ไทย หรื อถามในรูปแบบที่ระบบกําหนดไว้ ู • ข้ อมูลที่สามารถถามได้ คือเนื ้อหาที่อยู่ในวิกิพีเดียภาษาไทยเท่านัน ซึงครอบคลุมเรื่ องราวค่อนข้ างมากพอที่จะ ้ ่ นํามาใช้ ตอบคําถามได้ หลายประเภท • ระบบคําถามคําตอบที่จะพัฒนาขึ ้นสนับสนุนคําถาม 5 ประเภท คือ 1. คําถามเกี่ยวกับบุคคล เช่น “โทมัส เอดิสนคือใคร” ั 2. คําถามเกี่ยวกับองค์กร เช่น “บริษัทไมโครซอฟท์ผลิตอะไร” ่ 3. คําถามเกี่ยวกับสถานที่ เช่น “ประเทศไทยอยูที่ไหน” 4. คําถามเกี่ยวกับตัวเลขเชิงปริ มาณ เช่น “ในโลกนี ้มีทั ้งหมดกี่ประเทศ” 5. คําถามเกี่ยวกับวันเวลา เช่น “สงครามโลกครังที่ 2 เกิดขึ ้นเมื่อใด” “Bill Clinton เกิดเมื่อใด” ้ ระบบไม่สามารถตอบคําถามประเภท “ทําไม” หรื อ “อย่างไร” ได้ รายละเอียดของการพัฒนา  ทฤษฎีและเทคโนโลยีทใช้   ี่ ในโครงการนี ้มีทฤษฎีและเทคโนโลยีหลักที่เกี่ยวข้ องคือ 1. Wikipedia 2. RDF และ SPARQL 3. การค้ นคืนสารสนเทศ
  • 6. Wikipedia  ้ วิกิพีเดีย (WIKIPEDIA) คือสารานุกรมออนไลน์หลายภาษาที่แจกจ่ายในลักษณะเนือหาเสรี โดยเปิ ดให้ ทุกคนสามารถแก้ ไข เนื ้อหาได้ บทความของวิกิพีเดียประกอบไปด้ วยข้ อมูลที่มีโครงสร้ างและไม่มีโครงสร้ างหลายชนิด ซึ่งล้ วนแต่เป็ นประโยชน์ ต่อระบบคําถามคําตอบ ในหนึ่งบทความของวิกิพีเดียประกอบไปด้ วย 1. หมวดหมู่ – หมวดหมู่คือคําที่ถูกกํากับไว้ ในแต่ละหน้ าโดยผู้เขียนเพื่อจัดเอกสารให้ เป็ นโครงสร้ างที่มีลําดับชัน ้ หมวดหมู่นี ้สามารถนํามาใช้ สร้ าง ONTOLOGY เพื่อเพิ่มความเข้ าใจภาษามนุษย์ ให้ แก่ระบบได้ 2. กล่องข้ อมูล (INFOBOX) – กล่องข้ อมูลคือตารางที่สรุ ปข้ อมูลของบทความ รู ปที่ 1 แสดงกล่องข้ อมูลในบทความ “สถาบันเทคโนโลยีนานาชาติสิรินธร” ในวิกิพีเดียภาษาไทย ตารางลักษณะนี สามารถนําไปสกัดแล้ วเก็บในรู ป ้ ของ RDF TRIPLE เพื่อใช้ ในการตอบคําถามได้ คําตอบที่ได้ จะเป็ นคําสั ้นๆ (คําในคอลัมน์ขวาในตาราง) 3. ลิงค์ ออกไปยังบทความอื่น – ลิงค์ เหล่านี ้สามารถนํามาใช้ เพื่อหาข้ อมูลในบทความอื่นต่อไปได้ หากต้ องการ ข้ อมูลเพิ่ม 4. ลิงค์ เข้ ามายังบทความ – ลิงค์เข้ ามากหมายความว่าบทความนั ้นมี ข้อมูลที่ดีและเป็ นที่นิยม ระบบสามารถใช้ จํานวนลิงค์เข้ าเหล่านีใ้ นการจัดลําดับบทความเพื่อเป็ นคําตอบได้ ั 5. เนื ้อหาบทความ – เนื ้อหาบทความในวิกิพีเดียจะมีการแบ่งหัวข้ อไว้ ชดเจน และใช้ ภาษาที่เป็ นทางการ เนื ้อหา เหล่านี ้จึงเหมาะที่จะมาใช้ ในระบบคําถามคําตอบ รู ปที่ 1 กล่องข้ อมูลในบทความ “สถาบันเทคโนโลยีนานาชาติสรินธร” ในวิกิพีเดียภาษาไทย ิ
  • 7. RDF และ SPARQL  RDF หรื อ Resource Description Framework เป็ นเทคโนโลยีหนึงของ Semantic Web เป็ นภาษาที่ใช้ เพื่อแทนข้ อมูลต่างๆ ่ บนเว็บ โดยข้ อมูลใน RDF จะถูกเรี ยกว่า resource หนึ่ง resource สามารถเป็ นอะไรก็ได้ ขึ ้นอยูกบว่าต้ องการแทนอะไร เช่น ่ ั ่ คน ชื่อหนังสือ เมือง เป็ นต้ น ใน RDF ความสัมพันธ์ของหลายๆ resource จะถูกแทนด้ วย Triple (RDF Triple) ในหนึง Triple ประกอบไปด้ วย 3 สิงคือ Subject Property และ Object อาจมองว่าเป็ นประธาน กริ ยา และกรรมในภาษามนุษย์ก็ได้ สิ่งใดก็ ่ ตามที่มีคณสมบัติ สามารถใช้ Triple เพื่ออธิบายได้ ุ ในระบบคําถามคําตอบนี ้ RDF Triple ดังกล่าวสามารถสกัดได้ จากข้ อมูลที่มีโครงสร้ างในหน้ าของวิกิพีเดีย เช่น กล่อง ิ ข้ อมูล ยกตัวอย่างเช่น หากระบบจะสกัด Triple จากกล่องข้ อมูลในรูปที่ 1 Subject ที่ได้ คือ “สถาบันเทคโนโลยีนานาชาติสริน ธร” Property คือ ค่าต่างๆที่อยู่ในคอลัมน์ซ้ายของตาราง เช่น อักษรย่อ ผู้อํานวยการ และ Object คือ ค่าต่างๆที่อยู่ในคอลัมน์ ขวาของตาราง จากกล่องข้ อมูลนี ้ระบบสามารถสกัดได้ 8 Triple เพราะมีคณสมบัติ (Property) ของสถาบันเทคโนโลยี ุ นานาชาติสรินธรทั ้งสิ ้น 8 อย่างในตาราง ิ เมื่อสกัด RDF Triple ได้ แล้ ว ระบบสามารถดึงข้ อมูลจาก Triple เหล่านันได้ โดยใช้ SPARQL ซึงเป็ นภาษาที่ถก ้ ่ ู ออกแบบมาเพื่อการนี ้ การค้ นคืนสารสนเทศ  การค้ นคืนสารสนเทศ (Information Retrieval) คือเทคโนโลยีที่ใช้ เพื่อค้ นหาข้ อมูลจากคลังเอกสาร ในปั จจุบนนี ้คลังเอกสาร ั ดังกล่าวมันจะถูกนํามาประมวลผลและสร้ างฐานดัชนีก่อนการค้ นคืน เพื่อให้ สามารถค้ นคืนได้ รวดเร็ว ในระบบที่พฒนาขึ ้นนี ้ได้ ั ้ ใช้ ไลบรารี่ Lucene เพื่อสร้ างฐานดัชนีจากเอกสารในวิกิพีเดียภาษาไทยทังหมด รวมทังเอกสารอื่นๆที่เกี่ยวข้ องที่พบบน ้ อินเตอร์ เน็ตด้ วย ระบบจะใช้ วิธีค้นคืนจากฐานดัชนีที่เตรี ยมไว้ เมื่อ SPARQL ไม่สามารถตอบคําถามของผู้ใช้ ได้ โดยจะพยายามดึงช่วงข้ อความ ที่สนที่สดจากทุกเอกสาร โดยที่ช่วงข้ อความนันมีคําสําคัญในคําถามของผู้ใช้ ครบทุกคํา การใช้ วิธีนี ้สามารถลดความยุ่งยากใน ั้ ุ ้ การวิเคราะห์ประโยคคําถามลงได้ อย่างมาก ต่อไปนี ้คือตัวอย่างอย่างคร่าวๆ ยกตัวอย่างเช่น กําหนดให้ ตวอักษรภาษาอังกฤษ ั หนึ่งตัวแทนคําหนึงคําและคําสําคัญในคําถามของผู้ใช้ ที่สกัดได้ คือ A B C และมีสวนของข้ อความที่น่าจะเป็ นคําตอบอยู่ 2 ่ ่ ข้ อความคือ 1.….. A F W T B N F C…….. 2.……E A B W C P…..
  • 8. จะเห็นว่าทั ้งสองช่วงข้ อความมีคํา A B C เหมือนกัน แต่ในช่วงข้ อความที่ 2 คําทังสามคํานี ้อยู่ใกล้ กนมากกว่า ระบบจะเลือก ้ ั ช่วงข้ อความที่ 2 ไปเป็ นคําตอบให้ กบคําถามของผู้ใช้ ที่มีคําสําคัญ A B C ั เครื่องมือทีใช้ ในการพัฒนา  ่ เครื่ องมือและไลบรารี่ หลักที่ใช้ สามารถสรุปได้ ดงนี ้ ั • ใช้ ภาษา Java ร่ วมกับ Eclipse 3.4 และ Netbeans 6 ในการพัฒนาระบบสกัดข้ อมูลและระบบคําถามคําตอบ • ใช้ Ubuntu 8.04 Linux เป็ นระบบปฏิบติการ ั • ใช้ ThaiAnalyzer เพื่อตัดคําไทย • ใช้ Jena เพื่อจัดการกับข้ อมูล RDF รวมถึงเพื่อการค้ นคืนข้ อมูลโดยใช้ SPARQL • ใช้ JWBF เพื่อเรี ยกใช้ API ของ MediaWiki จากโปรแกรม Java • ใช้ Lucene เพื่อสร้ างฐานดัชนีของเอกสารในวิกิพีเดียภาษาไทยทังหมดรวมถึงเอกสารอื่นๆจากอินเตอร์ เน็ต เพื่อ ้ ความรวดเร็ วในการสืบค้ น • ใช้ wikipedia-parser เพื่อแจงประโยค (parse) ของข้ อความที่เขียนในรูปของ WikiText • ใช้ JDom เพื่อจัดการกับ XML ซึงเป็ นผลลัพธ์จากการแจกประโยคของ WikiText ่ • ใช้ SimMetrics เพื่อทํา fuzzy match ระหว่างคําที่ผ้ ใช้ ต้องการค้ นกับคําที่มีอยู่ ู • ใช้ Yahoo Search API เพื่อเก็บรายการของ URL ที่ต้องการ แล้ วนํา URL ที่ได้ ไปใช้ กบ web crawler ของระบบเพื่อ ั เก็บเอกสารต่างๆจากเว็บอื่นๆ แล้ วนํามาใช้ หาคําตอบ • ใช้ HTMLParser เพื่อสกัดข้ อมูลจากไฟล์ HTML ทั ้งหมดนี ้เป็ นเครื่ องมือและไลบรารี่ ที่สามารถใช้ ได้ โดยไม่ต้องเสียค่าใช้ จ่ายใดๆ Software Specification  Input Output Functional Specification คําถามภาษาไทยที่ถกต้ องตามรูปแบบที่ระบบกําหนด ู ข้ อความสันๆที่เป็ นคําตอบสําหรับคําถาม หรื อตอบว่า “ไม่มีข้อมูล” หากระบบไม่ ้ สามารถหาคําตอบได้ URL หรื อหมายเลขเอกสารที่เป็ นแหล่งที่มาของคําตอบ คําถามอื่นๆที่เกี่ยวข้ อง (Query Suggestion) ส่วนนี ้มีไว้ เพื่อแนะนําคําถามแก่ผ้ ใช้ ู ตอบคําถามภาษาไทยที่ไม่ซบซ้ อนจนเกินไปได้ ั มีสวนติดต่อกับผู้ใช้ บนเว็บ (Web interface) ่ แนะนําคําหรื อคําถามที่เกี่ยวข้ องได้
  • 9. เรี ยนรู้ คําหรื อประโยคที่เหมือนกันได้ เองระหว่างที่ทํางาน อาจใช้ วิธีถามผู้ใช้ แล้ วเก็บ คําตอบไว้ เพื่อเป็ นข้ อมูลไว้ ใช้ ครังต่อไป ้ โครงสร้ างของซอฟท์ แวร์   รู ปที่ 2 แผนภาพแสดงโครงสร้ างโดยรวมของระบบ รูปที่ 2 แสดงแผนภาพโครงสร้ างโดยรวมของระบบคําถามคําตอบ ระบบคําถามคําตอบนี ้ประกอบไปด้ วย 4 ส่วนใหญ่ๆ คือ 1. ส่ วนประมวลผลคําถาม (Question Processor) ส่วนนี ้มีหน้ าที่หลักเพื่อแปลงคําถามที่รับมาจากผู้ใช้ ให้ อยูในรูปแบบที่ ่ ง่ายต่อการนําไปใช้ สําหรับค้ นคืนคําตอบ โดยแบ่งได้ เป็ น 4 ส่วนย่อย คือ • Question Normalizer – ใช้ สําหรับเปลี่ยนคําในคําถามให้ อยู่ในรูปแบบที่ใช้ ในวิกิพีเดีย รวมไปถึงแก้ ไขคําผิดด้ วย เช่น แก้ ไขคําถาม “ฟิ ศิกคือไร” ให้ เป็ น “ฟิ สกส์คืออะไร” ิ • Word Segmenter – ใช้ เพื่อตัดคําในประโยคคําถามเพื่อให้ สวนถัดไปประมวลผลได้ งายขึ ้น เมื่อตัดคําแล้ วจะได้ ่ ่ Tokenized Sentence ดังภาพ • Question Analyzer – ใช้ เพื่อวิเคราะห์คําถามที่ถกตัดคําแล้ วเพื่อแยกประเภทของคําถามและหาว่าคําตอบที่ผ้ ใช้ ู ู ต้ องการเป็ นประเภทใด โดยจะแบ่งประเภทของคําถามออกเป็ น 5 ประเภทตามที่ได้ กล่าวไป คือ คําถามเกี่ยวกับ บุคคล คําถามเกี่ยวกับองค์กร คําถามเกี่ยวกับสถานที่ คําถามเกี่ยวกับตัวเลขเชิงปริ มาณ และคําถามเกี่ยวกับวันเวลา
  • 10. ผลลัพธ์ที่ได้ จากส่วนนี ้จะเป็ นตัวบอกคําตอบที่ผ้ ใช้ คาดหวังและจะถูกนําไปใช้ ในการสกัดหาคําตอบที่ถกต้ องในส่วน ู ู ถัดไป นอกจากแยกประเภทคําถามแล้ ว Question Analyzer ยังทําหน้ าที่แปลงประโยคคําถามให้ เป็ นคําค้ นที่อยู่ รูป SPARQL เพื่อใช้ ในขันตอนการสืบค้ นต่อไป สําหรับวิธีการแปลงนั ้นจะใช้ วิธีเทียบกับรูปแบบคําถามที่มีอยู่ ้ • Searcher – ใช้ เพื่อดึงข้ อมูลที่นาจะเป็ นคําตอบจากฐานข้ อมูล RDF (Extracted RDF Triples) โดยใช้ SPARQL ่ และประเภทของคําถามที่ได้ รับมาจาก Question Analyzer หากคําค้ น SPARQL ไม่สามารถดึงคําตอบได้ Searcher จะดึงคําตอบโดยใช้ วิธีการค้ นคืนสารสนเทศบนฐานดัชนี (Search Index) ข้ อมูลที่ค้นคืนออกมาได้ จะถูกส่งไปที่สวน ่ ประมวลผลคําตอบ 2. ส่ วนของตัวแทนเอกสาร (Data Representation) ข้ อมูลเอกสารในวิกีพีเดียภาษาไทยในขณะนี ้มีจํานวนหลายหมื่น หน้ า การสร้ างตัวแทนเอกสารไว้ ก่อนจึงมีความจําเป็ นเพื่อให้ ค้นคืนได้ รวดเร็ว ตัวแทนเอกสารมีสวนย่อยอยู่ 3 ส่วน คือ ่ • Wikipedia Articles – เอกสารต้ นฉบับที่อยูในวิกิพีเดียภาษาไทย ่ • Extracted RDF Triples – เป็ นส่วนที่เก็บข้ อมูลที่มีโครงสร้ างที่สกัดได้ จากวิกิพีเดียภาษาไทย ข้ อมูลเหล่านี ้อยูในรูป ่ ของ RDF Triple และสามารถนําไปใช้ เป็ นแหล่งค้ นคืนข้ อมูลได้ โดยใช้ ร่วมกับคําค้ นที่อยู่ในรูปของ SPARQL • Search Index – ฐานดัชนี เป็ นตารางที่เก็บรายการของคํากับหน้ าเอกสารที่มีคําเหล่านั ้นอยู่ การสร้ างดัชนีจะนํา เอกสารในวิกิพีเดียทังหมดมาขจัด tag ต่างๆ ตัดคํา ขจัดคําหยุด(Stop word) และสร้ างรายการของคํา ้ 3. ส่ วนประมวลผลคําตอบ (Answer Processor) • Answer Ranker – เป็ นส่วนที่ทําหน้ าที่จดลําดับคําตอบที่นาจะเป็ นไปได้ หรื อชุดเอกสารที่ได้ จากระบบค้ นหาข้ อมูล ั ่ ข้ างต้ น ระบบจะจัดลําดับคําตอบที่ได้ จาก RDF ตามความเกี่ยวข้ องกับคําถามและเลือกลําดับแรกสุดไปเป็ นคําตอบ แก่ผ้ ใช้ หากคําตอบที่ได้ จาก Searcher อยู่ในรูปของรายการของเอกสารที่ถกค้ นคืนจากฐานดัชนี เอกสารที่มีความ ู ู เกี่ยวข้ องกับคําถามมากจะถูกให้ คะแนนสูงและถูกจัดเป็ นลําดับต้ นๆ เอกสารที่มีคะแนนตํ่ามากๆ จะถูกตัดทิ ้ง เหลือ แต่เอกสารที่มีคะแนนสูงพอควรที่จะถูกส่งไปให้ สวนสกัดคําตอบต่อไป ่ • Answer Generator – มีหน้ าที่สกัดคําตอบสั ้นๆ จากชุดเอกสารที่ได้ จากการจัดลําดับชุดเอกสารข้ างต้ น คําตอบที่ได้ จะเป็ นย่อหน้ าหรื อเป็ นประโยค โดยประโยคเหล่านี ้จะถูกนํามาจัดเรี ยงตามคะแนนที่ได้ ขึ ้นอยูกบความเกี่ยวข้ องกับ ่ ั คําถามของผู้ใช้ และประเภทของคําถามที่ได้ ในขั ้นตอนก่อนหน้ านี ้ ประโยคที่ได้ คะแนนสูงสุดจะถูกนําไปเป็ นคําตอบ 4. ส่ วนติดต่ อกับผู้ใช้ (User Interface) ส่วนติดต่อกับผู้ใช้ จะอยู่ในรูปแบบของโปรแกรมแบบ stand-alone โดยจะมีสวนรับ ่ คําถามจากผู้ใช้ และจะมีสวนแสดงคําตอบที่อยูในลักษณะของประโยคหรื อข้ อความสั ้นๆ ่ ่ นอกจากระบบหลักแล้ ว ยังมีการพัฒนาระบบเก็บเว็บ (web crawler) โดยใช้ Yahoo Search API เพื่อดึงรายการ URL ที่ ต้ องการ จากนันระบบจะดึงข้ อมูลจาก URL นั ้นๆซึงเป็ นหน้ า HTML, ตัด tags ต่างๆออกเพื่อให้ เหลือเป็ นข้ อความภาษามนุษย์, ้ ่ และสร้ างฐานดัชนี ฐานดัชนีที่ได้ จากเว็บต่างๆนี ้จะถูกนําไปเสริมเพื่อใช้ หาคําตอบ
  • 11. กลุ่มผู้ใช้ โปรแกรม  • นักเรี ยน นักศึกษา ครูอาจารย์ นักวิจย นักพัฒนาโปรแกรมคอมพิวเตอร์ และผู้ใช้ งานอินเตอร์ เน็ตทัวไปที่ต้องการ ั ่ เข้ าถึงข้ อมูลอย่างรวดเร็ ว ผลของการทดสอบโปรแกรม  จากการเปิ ดให้ เพื่อนๆในภาควิทยาการคอมพิวเตอร์ ปี 4 จํานวน 25 คนลองใช้ งาน พบว่า • 14 คน (56%) พอใจกับระบบในภาพรวม การประเมินนี ้อนุญาตให้ ถามอะไรก็ได้ ที่ไม่ใช่คําถามประเภท ทําไมและ อย่างไร • เมื่อให้ ถามได้ แค่รูปแบบคําถามที่ระบบรู้จก (ซึงทําให้ ระบบใช้ SPARQL ในการตอบเสมอ) พบว่า 21 คน (84%) ั ่ พอใจกับผลลัพธ์ของระบบมาก • ความถูกต้ องของคําตอบไม่สามารถบอกได้ เนื่องจากข้ อมูลที่ระบบใช้ มาจากเว็บไซท์ตางๆบนอินเตอร์ เน็ต และ ่ สารานุกรมเสรี วกิพีเดียซึงอนุญาตให้ ใครแก้ ไขเนื ้อหาก็ได้ ดังนันความถูกต้ องจึงขึ ้นอยู่กบเนื ้อหาบนเว็บ แต่โดย ิ ่ ้ ั ภาพรวมแล้ วคําตอบที่ได้ จากวิกิพีเดียมักจะถูก (มากกว่า 90 %) เพราะวิกิพีเดียมีระบบตรวจสอบเนื ้อหาเป็ นระยะๆ ส่วนที่ตอบผิดมักเกี่ยวข้ องกับข่าวสารที่ต้องการข้ อมูลที่ทนสมัย ซึงระบบอาจยังไม่ได้ เก็บข้ อมูลใหม่ๆ ั ่ ปัญหาและอุปสรรค  อุปสรรคใหญ่ระหว่างการพัฒนาเกี่ยวข้ องกับการประมวลผลภาษาไทย ภาษาไทยเป็ นภาษาที่มีโครงสร้ างซับซ้ อนมาก ไม่มีทง้ั ขอบเขตของคําหรื อขอบเขตของประโยค ทําให้ การตัดคําเป็ นไปได้ ยาก อีกทังงานวิจยทางด้ านการประมวลผลภาษาไทยยังไม่ ้ ั อิ่มตัวมากนัก ทําให้ ยงไม่คอยมีเครื่ องมือประมวลผลพื ้นฐานอย่างที่ภาษาอื่นมี เช่น ตัวแจงประโยค (parser) ตัวตัดประโยค ั ่ ระบบรู้ จํานิพจน์ระบุนาม (Named Entity Recognition) ontology ภาษาไทย เป็ นต้ น การสกัดข้ อมูลเพื่อหาคําตอบจึงทําได้ ไม่ ค่อยดีนก ั แนวทางในการพัฒนาและประยุกต์ ใช้ ร่วมกับงานอืนๆ ในขั้นต่ อไป  ่ ระบบที่พฒนาขึ ้นยังมีอกหลายจุดที่สามารถนําไปพัฒนาต่อยอดได้ จุดที่นาสนใจมีดงต่อไปนี ้ ั ี ่ ั
  • 12. 1. นําไปเชื่อมกับวิกิพีเดียเชิงความหมาย (semantic wikipedia) ที่เปิ ดให้ ผ้ ใช้ เขียนได้ อย่างเสรี วิกิพีเดียเชิงความหมายยังไม่ ู เป็ นที่แพร่หลายนักในประเทศไทย แต่หากทําได้ ระบบจะสามารถใช้ RDF Triple ที่ได้ จากวิกิพีเดียนี ้ได้ โดยตรง โดยไม่ ่ ู ต้ องเสียเวลาสกัดเองจากข้ อความที่ไม่มีโครงสร้ าง อีกทังเป็ นการลดความเสียงของความไม่ถกต้ องของข้ อมูลได้ อย่างมาก ้ 2. ระบบคําถามคําตอบนี ้สามารถทําเป็ น web application เพื่อให้ ผ้ ใช้ ใช้ ผ่านเว็บได้ ทนทีโดยไม่ต้องลงโปรแกรม ู ั 3. ระบบคําถามคําตอบนี ้สามารถทําเป็ น web service ได้ เพื่อให้ ผ้ พฒนาโปรแกรมอื่นๆสามารถใช้ สวนของการหาคําตอบ ู ั ่ ั ในโปรแกรมอื่นๆที่พฒนาขึ ้นได้ 4. ระบบคําถามคําตอบนี ้สามารถอัพเดทฐานความรู้ได้ ด้วยตัวเอง โดยรับข้ อมูลจาก RSS Feed ของวิกิพีเดียภาษาไทย ซึง ่ จะบอกเป็ นระยะๆว่ามีหน้ าใดถูกแก้ ไขล่าสุด จากนันให้ ระบบตามไปสกัดหน้ านันๆเพื่ออัพเดทฐานความรู้ ้ ้ 5. หากจํากัดฐานความรู้ให้ ครอบคลุมอย่างเจาะลึกเป็ นเรื่ องๆ เช่น ภาษาไทย สุขศึกษา และเพิ่มรูปแบบของคําถามให้ เหมาะสมกับเรื่ องที่ต้องการ ระบบคําถามคําตอบนี ้สามารถนํามาประยุกต์ให้ เป็ นสื่อการเรี ยนรู้ได้ ั ั หลังจากที่ระบบเสร็ จสิ ้นและใช้ งานได้ จริ งในระดับหนึงแล้ ว ผู้พฒนามีแผนร่วมกับหน่วยปฏิบติการวิจยวิทยาการมนุษยภาษา ่ ั (HLT) ศูนย์เทคโนโลยีอิเล็กทรอนิกส์และคอมพิวเตอร์ แห่งชาติ เพื่อใช้ ระบบกับ ABDUL ซึงเป็ นแชทบอทบนเครื อข่าย MSN ่ เป็ นการเพิ่มความสามารถในการตอบโต้ กบผู้ใช้ ั นอกจากตัวระบบแล้ วนักวิจยในสาขาที่เกี่ยวข้ องสามารถนํา RDF Triple และข้ อมูลทังหมดในฐานดัชนีที่เกี่ยวข้ องไปใช้ ใน ั ้ งานวิจยได้ ั เอกสารอ้ างอิง   1. http://en.wikipedia.org/wiki/Question_answering 2. http://www.library.jhu.edu/researchhelp/general/evaluating/ 3. M. W. Bilotti. “Query expansion techniques for question answering.” Master’s thesis, Massachusetts Institute of Technology, 2004. 4. Rohini Srihari and Wei Li. “Information extraction supported question answering.” In E. M. Voorhees and D. K. Harman, editors, NIST Special Publication 500-246: The Eighth Text REtrieval Conference (TREC8). National Institute of Standards and Technology (NIST), U.S. Department of Commerce, NIST, 2000. 5. สุฤดี ฉัตรไตรมงคล : การรู้จําและการจําแนกประเภทของชื่อเฉพาะภาษาไทย. (NAMED ENTITY RECOGNITION AND CLASSIFICATION IN THAI) อาจารย์ที่ปรึกษา : ผศ. ดร. วิโรจน์ อรุ ณมานะกุล, 75 หน้ า. ISBN 974-532979 -7. 6. Voorhees, E., and Tice, D. M. 1999. “The TREC-8 Question Answering Track Evaluation.” Proceedings of The Eighth Text REtrieval Conference (TREC-8).
  • 13. 7. เกศสุดา ตุริยากรณ์. “ระบบคําถาม-คําตอบ สําหรับข้ อความภาษาไทย.” วิทยานิพนธ์ ปริญญาวิทยาศาสตร์ มหาบัณฑิต สาขาวิชาวิทยาการคอมพิวเตอร์ บัณฑิตวิทยาลัย มหาวิทยาลัยเกษตรศาสตร์ , 2546. 8. สมหมาย ขันทอง. “ระบบคําถาม-คําตอบสําหรับข้ อความภาษาไทยโดยใช้ วิธีถ่วงนํ ้าหนักช่วงข้ อความที่สนที่สด” สาร ั้ ุ นิพนธ์ ปริ ญญาวิทยาศาสตร์ มหาบัณฑิต สาขาวิชาเทคโนโลยีสารสนเทศ บัณฑิตวิทยาลัย สถาบันเทคโยโลยีพระ จอมเกล้ าพระนครเหนือ, 2548 9. C. Monz. “From Document Retrieval to Question Answering.” PhD thesis, University of Amsterdam, 2003 10. http://www.hlt.nectec.or.th/abdul/index.php 11. http://www.w3.org/TR/REC-rdf-syntax/ 12. http://www.w3.org/TR/rdf-sparql-query/ 13. http://sansarn.com/look/download.html 14. http://jena.sourceforge.net/ 15. http://jwbf.sourceforge.net 16. http://lucene.apache.org/ 17. http://code.google.com/p/java-wikipedia-parser/
  • 14. คู่มอการติดตั้งอย่างละเอียด  ื 1. ติดตั ้ง JRE 1.6 ขึ ้นไปให้ พร้ อม (มีให้ ในแผ่น CD) 2. Copy โฟลเดอร์ ชื่อ qast ไปวางไว้ ที่ใดก็ได้ บนเครื่ อง 3. หากใช้ Windows ดับเบิ ้ลคลิก run.bat เพื่อเริ่ มโปรแกรม หากใช้ Linux ให้ cd เข้ าไปที่ไดเรกทอรี่ qast แล้ วใช้ คําสัง ./run.sh ่ ** ในบางกรณี ผู้ใช้ อาจรันจากในแผ่นได้ เลย ไม่ต้อง copy โฟลเดอร์ qast ลงไปบนเครื่ องก็ได้ คู่มอการใช้ งานอย่างละเอียด  ื เมื่อเปิ ดโปรแกรมจะเห็นดังภาพด้ านล่าง ผู้ใช้ สามารถพิมพ์คําถามลงไปในช่อง “Your Question” แล้ วกดปุ่ ม enter จากนันระบบจะตอบกลับมาในช่อง “Log” เช่น ้ ตัวอย่างข้ างล่าง ผู้ใช้ ถามว่า “ต้ นไม้ ประจําจังหวัดของกรุงเทพคือต้ นอะไร” ระบบตอบ “ไทรย้ อย ใบแหลม”
  • 15. • เนื่องจากแผ่น CD มีเนื ้อที่จํากัด ผู้พฒนาจําเป็ นต้ องตัดฐานความรู้บางส่วนออก ทําให้ ระบบไม่สามารถตอบคําถาม ั ได้ หลากหลายนัก • รูปแบบคําถามที่ระบบรู้คือ o X คืออะไร, อะไรคือ X – หานิยามของ X o X ของ Y คืออะไร – หาคุณสมบัติ X ของ Y เช่น ต้ นไม้ ประจําจังหวัดของกรุงเทพ o property(X) – หาว่าระบบรู้จกคุณสมบัติอะไรบ้ างของ X คําถามประเภทนี ้อาจใช้ ไม่ได้ กบทุกๆค่าของ X ั ั o คําถามในรูปแบบอื่นๆ – ระบบจะค้ นคืนโดยใช้ เทคนิคของการค้ นคืนสารสนเทศ • ผู้พฒนาจะเพิ่มรูปแบบคําถามเรื่ อยๆใน version ต่อๆไป ั