Question Answering system from a course
โครงงานนี้เป็นส่วนหนึ่งของวิชา BC 410 สัมมนาทางคอมพิวเตอร์ธุรกิจ
ประจำภาคที่ 2 ปีการศึกษ 2563
คณะบริหารธุรกิจ สาขาคอมพิวเตอร์ธุรกิจ
มหาวิทยาลัยหอการค้าไทย
จัดทำโดย
นายอินทัช โรหิตเสถียร เลขทะเบียน 1710111109002
นายธนะพัฒน์ เธียรไทย เลขทะเบียน 1710111109026
นายชลพรรธน์ วุฒิศิลพันธุ์ เลขทะเบียน 1710111109035
นำเสนอโดย
อาจารย์ ดร.ศิวฤทธิ์ สุนทรเสณี
ที่มาและความสำคัญ
ในปัจจุบันสถานการณ์บ้านเมืองตอนนี้เกิดการระบาดจากโรค Covid-19 ขึ้นทำให้มีการหยุดการเรียนการสอนจึงทำให้มีการเรียนผ่านระบบออนไลน์ แต่นักเรียน-นักศึกษาบ้างคนอาจเรียนไม่ทันอาจารย์ที่สอนหรือว่าไม่สะดวกในการเรียนออนไลน์ จึงทำให้เกิดการเรียนรู้ด้วยตนเองหรือหาความรู้ด้วยตัวเองจากอินเตอร์เน็ต การเรียนรู้ด้วยตนเองหากเป็นเมื่อก่อนก็ต้องไปศึกษาข้อมูลจากห้องสมุด แต่ในปัจจุบันหลายคนเลือกที่จะหาข้อมูลผ่านอินเตอร์เน็ตกัน และปัญหาของการเรียนรู้ด้วยตัวเองก็คือ การที่เรา “ไม่รู้ในสิ่งที่เราไม่รู้” ซึ่งอาจจะทำให้เราได้ข้อมูลที่ไม่ถูกต้องหรือผิดพลาดได้ และบ่อยครั้งที่อาจจะไม่ได้รับคำตอบจากคำถามที่เราสงสัยเกี่ยวกับบทเรียนที่กำลังศึกษาหรือค้นหาข้อมูลอยู่ ส่งผลเสียเวลาในการค้นหาคำตอบ ดังนั้นการสร้างระบบถามตอบแบบอัตโนมัติจากบทเรียน ซึ่งเป็นการถามตอบโดยมีคำถามที่เป็นภาษาธรรมชาติ และมีการตอบคำถามด้วยภาษาธรรมชาติ จะช่วยอำนวยความสะดวกให้แก่ผู้ใช้งาน ทำให้สามารถได้คำตอบจากคำถามและข้อสงสัยเกี่ยวกับบทเรียนของตัวเองได้อย่างถูกต้องและรวดเร็ว
วัตถุประสงค์
- เพื่อตอบคำถามที่ผู้ใช้ต้องการถามจากบทเรียนโดยอัตโนมัติ
- เพื่อให้ศึกษาเนื้อหาจากบทเรียนด้วยตนเองได้
ขอบเขตโครงงาน
- บทเรียนที่ใช้มาจากวิชา “การตลาดระหว่างประเทศ” บทที่ชื่อว่า “ความเข้าใจสภาพแวดล้อมการตลาดระหว่างประเทศ”
วิธีการใช้งาน
ขั้นตอนที่ 1 ทำการเลือกเนื้อหาจากบทเรียนที่จะนำมาใช้ จากนั้นตั้งคำถามและคำตอบจากเนื้อหาภายในบทเรียนที่เลือกมา โดยนำคำถามและคำตอบไปอยู่ในไฟล์ qa.csv ซึ่งภายในไฟล์จะประกอบไปด้วย 2 Column คือ Question และ Answer และคำถาม คำตอบที่ตั้งขึ้นมาจากเนื้อหาบทเรียน
ขั้นตอนที่ 2 ทำการอัพโหลดไฟล์ qa.csv ลงใน google colab ของระบบ เพื่อให้สามารถเรียกใช้งานผ่าน pandas โดยการใช้ pd.read_csv ได้
ขั้นตอนที่ 3 รันโค้ดในส่วนที่ 1 เพื่อ import pandas เข้ามาใช้งาน จากนั้นเปิดไฟล์ qa.csv โดยให้เก็บอยู่ในตัวแปรชื่อ data และแก้ไขคำถามที่ต้องการจะถามโดยเก็บไว้ภายในตัวแปรชื่อ test_data ให้เป็นคำถามที่ไม่เหมือนกับที่ตั้งไว้ใน qa.csv เพื่อให้ระบบทำการตรวจจับคำเหมือน โดยการทำในครั้งนี้จะมีทั้งคำถามที่ไม่เหมือนกับใน qa.csv และคำถามที่ไม่เหมือนกับที่ตั้งไว้ เพื่อทำการเปรียบเทียบผลการตรวจจับคำเหมือน
ขั้นตอนที่ 4 รันโค้ดส่วนที่ 2 เพื่อทำการทดลองระบบในครั้งแรก ซึ่งเป็นการให้คะแนนเมื่อระบบทำการตรวจจับคำถามได้ถูกต้อง โดยในส่วนนี้จะเห็นได้ว่าระบบไม่สามารถตรวจจับคำถามและไม่สามารถให้คะแนนได้เลย
ขั้นตอนที่ 5 ทำการ install library Levenshtein เพื่อนำ library นี้มาช่วยในการตรวจจับคำของระบบที่จัดทำขึ้นมา จากนั้นทำการรันโค้ดในส่วนที่ 3 ซึ่งมีการเรียกใช้ library Levenshtein โดยกำหนด max_score อยู่ที่ 0.8 ซึ่งถ้าระบบทำการให้คะแนนคำถามและคำตอบนั้นมากกว่า 0.8 ระบบจะทำการแสดงการตรวจจับคำถามนั้นๆ ให้สอดคล้องกับคำถามและคำตอบที่จัดทำไว้ใน qa.csv ซึ่งการรันโค้ดในส่วนนี้จะเห็นได้ว่าในคำถาม test_data บางข้อสามารถได้คะแนนมากกว่า 0.8 และหลายข้อที่คะแนนไม่ถึงทำให้ไม่สามารถแสดงคำตอบออกมาได้
ขั้นตอนที่ 6 รันโค้ดในส่วนที่ 4 ซึ่งจะทำการแก้ไข max_score จากเดิมที่กำหนดไว้ที่ 0.8 ระบบจึงจะให้แสดงผลออกมา จึงทำการแก้ไขโดยกำหนดคะแนนให้ลดลงเหลือ 0.3 เพื่อต้องการให้ระบบทำการจับคำเหมือนให้ออกมาได้มากที่สุด ซึ่งคะแนนที่ได้นั้นขึ้นอยู่กับการตั้งคำถามใน test_data ซึ่งถ้าคำถามค่อนข้างสอดคล้อง ใกล้เคียง และคำถามที่ต้องการจะถามค่อนข้างชัดเจน ระบบจะทำการตรวจจับคำเหมือนได้ดี
ตัวอย่างโค้ดที่เขียน
วิดีโอสำหรับการใช้งาน
Download Code
Download Project (PDF)