Question Answering system from a course

thanapat tienthai
2 min readMay 21, 2021

--

โครงงานนี้เป็นส่วนหนึ่งของวิชา BC 410 สัมมนาทางคอมพิวเตอร์ธุรกิจ

ประจำภาคที่ 2 ปีการศึกษ 2563

คณะบริหารธุรกิจ สาขาคอมพิวเตอร์ธุรกิจ

มหาวิทยาลัยหอการค้าไทย

จัดทำโดย

นายอินทัช โรหิตเสถียร เลขทะเบียน 1710111109002

นายธนะพัฒน์ เธียรไทย เลขทะเบียน 1710111109026

นายชลพรรธน์ วุฒิศิลพันธุ์ เลขทะเบียน 1710111109035

นำเสนอโดย

อาจารย์ ดร.ศิวฤทธิ์ สุนทรเสณี

ที่มาและความสำคัญ

ในปัจจุบันสถานการณ์บ้านเมืองตอนนี้เกิดการระบาดจากโรค Covid-19 ขึ้นทำให้มีการหยุดการเรียนการสอนจึงทำให้มีการเรียนผ่านระบบออนไลน์ แต่นักเรียน-นักศึกษาบ้างคนอาจเรียนไม่ทันอาจารย์ที่สอนหรือว่าไม่สะดวกในการเรียนออนไลน์ จึงทำให้เกิดการเรียนรู้ด้วยตนเองหรือหาความรู้ด้วยตัวเองจากอินเตอร์เน็ต การเรียนรู้ด้วยตนเองหากเป็นเมื่อก่อนก็ต้องไปศึกษาข้อมูลจากห้องสมุด แต่ในปัจจุบันหลายคนเลือกที่จะหาข้อมูลผ่านอินเตอร์เน็ตกัน และปัญหาของการเรียนรู้ด้วยตัวเองก็คือ การที่เรา “ไม่รู้ในสิ่งที่เราไม่รู้” ซึ่งอาจจะทำให้เราได้ข้อมูลที่ไม่ถูกต้องหรือผิดพลาดได้ และบ่อยครั้งที่อาจจะไม่ได้รับคำตอบจากคำถามที่เราสงสัยเกี่ยวกับบทเรียนที่กำลังศึกษาหรือค้นหาข้อมูลอยู่ ส่งผลเสียเวลาในการค้นหาคำตอบ ดังนั้นการสร้างระบบถามตอบแบบอัตโนมัติจากบทเรียน ซึ่งเป็นการถามตอบโดยมีคำถามที่เป็นภาษาธรรมชาติ และมีการตอบคำถามด้วยภาษาธรรมชาติ จะช่วยอำนวยความสะดวกให้แก่ผู้ใช้งาน ทำให้สามารถได้คำตอบจากคำถามและข้อสงสัยเกี่ยวกับบทเรียนของตัวเองได้อย่างถูกต้องและรวดเร็ว

วัตถุประสงค์

  1. เพื่อตอบคำถามที่ผู้ใช้ต้องการถามจากบทเรียนโดยอัตโนมัติ
  2. เพื่อให้ศึกษาเนื้อหาจากบทเรียนด้วยตนเองได้

ขอบเขตโครงงาน

  1. บทเรียนที่ใช้มาจากวิชา “การตลาดระหว่างประเทศ” บทที่ชื่อว่า “ความเข้าใจสภาพแวดล้อมการตลาดระหว่างประเทศ”

วิธีการใช้งาน

ขั้นตอนที่ 1 ทำการเลือกเนื้อหาจากบทเรียนที่จะนำมาใช้ จากนั้นตั้งคำถามและคำตอบจากเนื้อหาภายในบทเรียนที่เลือกมา โดยนำคำถามและคำตอบไปอยู่ในไฟล์ qa.csv ซึ่งภายในไฟล์จะประกอบไปด้วย 2 Column คือ Question และ Answer และคำถาม คำตอบที่ตั้งขึ้นมาจากเนื้อหาบทเรียน

รูปที่ 1 ตัวอย่างคำถามและคำตอบภายในไฟล์ qa.csv

ขั้นตอนที่ 2 ทำการอัพโหลดไฟล์ qa.csv ลงใน google colab ของระบบ เพื่อให้สามารถเรียกใช้งานผ่าน pandas โดยการใช้ pd.read_csv ได้

รูปที่ 2.1 การอัพโหลดไฟล์ qa.csv ลงใน google colab
รูปที่ 2.2 การอัพโหลดไฟล์ qa.csv ลง google colab

ขั้นตอนที่ 3 รันโค้ดในส่วนที่ 1 เพื่อ import pandas เข้ามาใช้งาน จากนั้นเปิดไฟล์ qa.csv โดยให้เก็บอยู่ในตัวแปรชื่อ data และแก้ไขคำถามที่ต้องการจะถามโดยเก็บไว้ภายในตัวแปรชื่อ test_data ให้เป็นคำถามที่ไม่เหมือนกับที่ตั้งไว้ใน qa.csv เพื่อให้ระบบทำการตรวจจับคำเหมือน โดยการทำในครั้งนี้จะมีทั้งคำถามที่ไม่เหมือนกับใน qa.csv และคำถามที่ไม่เหมือนกับที่ตั้งไว้ เพื่อทำการเปรียบเทียบผลการตรวจจับคำเหมือน

รูปที่ 3 เปิดไฟล์ qa.csv และจัดคำถามในตัวแปร test_data

ขั้นตอนที่ 4 รันโค้ดส่วนที่ 2 เพื่อทำการทดลองระบบในครั้งแรก ซึ่งเป็นการให้คะแนนเมื่อระบบทำการตรวจจับคำถามได้ถูกต้อง โดยในส่วนนี้จะเห็นได้ว่าระบบไม่สามารถตรวจจับคำถามและไม่สามารถให้คะแนนได้เลย

รูปที่ 4 การทดลองระบบครั้งแรก โดยการให้คะแนนเมื่อตรวจจับคำถามได้ถูกต้อง

ขั้นตอนที่ 5 ทำการ install library Levenshtein เพื่อนำ library นี้มาช่วยในการตรวจจับคำของระบบที่จัดทำขึ้นมา จากนั้นทำการรันโค้ดในส่วนที่ 3 ซึ่งมีการเรียกใช้ library Levenshtein โดยกำหนด max_score อยู่ที่ 0.8 ซึ่งถ้าระบบทำการให้คะแนนคำถามและคำตอบนั้นมากกว่า 0.8 ระบบจะทำการแสดงการตรวจจับคำถามนั้นๆ ให้สอดคล้องกับคำถามและคำตอบที่จัดทำไว้ใน qa.csv ซึ่งการรันโค้ดในส่วนนี้จะเห็นได้ว่าในคำถาม test_data บางข้อสามารถได้คะแนนมากกว่า 0.8 และหลายข้อที่คะแนนไม่ถึงทำให้ไม่สามารถแสดงคำตอบออกมาได้

รูปที่ 5 การนำ library Levenshtein เข้ามาใช้งานและกำหนด max_score 0.8

ขั้นตอนที่ 6 รันโค้ดในส่วนที่ 4 ซึ่งจะทำการแก้ไข max_score จากเดิมที่กำหนดไว้ที่ 0.8 ระบบจึงจะให้แสดงผลออกมา จึงทำการแก้ไขโดยกำหนดคะแนนให้ลดลงเหลือ 0.3 เพื่อต้องการให้ระบบทำการจับคำเหมือนให้ออกมาได้มากที่สุด ซึ่งคะแนนที่ได้นั้นขึ้นอยู่กับการตั้งคำถามใน test_data ซึ่งถ้าคำถามค่อนข้างสอดคล้อง ใกล้เคียง และคำถามที่ต้องการจะถามค่อนข้างชัดเจน ระบบจะทำการตรวจจับคำเหมือนได้ดี

รูปที่ 6 การนำ library Levenshtein เข้ามาใช้งานและกำหนด max_score 0.3

ตัวอย่างโค้ดที่เขียน

วิดีโอสำหรับการใช้งาน

Download Code

Download Project (PDF)

--

--

thanapat tienthai
thanapat tienthai

No responses yet