ระบบผู้เชี่ยวชาญ (Expert System) คือการที่ทำให้คอมพิวเตอร์มีความสามารถแก้ไขปัญหาที่ซับซ้อนได้ และเก็บเอาความชำนาญของผู้เชี่ยวชาญต่าง ๆ ไว้ เป็นส่วนหนึ่งของปัญญาประดิษฐ์ (Artificial Intelligence)
อ่านรายละเอียดระบบผู้เชี่ยวชาญ (Expert System) ได้ที่ https://www.gotoknow.org/posts/353661
PyKnow เป็นเครื่องมือสำหรับสร้างระบบผู้เชี่ยวชาญ (Expert System) ใน Python โดยประกอบไปด้วยฐานความรู้ (knowledge-based)และเครื่องอนุมาน (inference engine) อยู่ในตัว
รองรับเฉพาะ Python 3
ใช้ LGPLv3
สามารถติดตั้งได้ด้วยคำสั่ง
pip install pyknow
เราลองศึกษาทำระบบผู้เชี่ยวชาญกันแบบง่าย ๆ กันครับ
ขั้นตอนการสร้างระบบผู้เชี่ยวชาญ
- วิเคราะห์ปัญหา
- การเลือกอุปกรณ์
- การถอดความรู้
- การสร้างต้นแบบ
- การขยาย การทดสอบและบำรุงรักษา
1.วิเคราะห์ปัญหา
ปัญหาเรื่อง ไปโรงเรียนสาย
เด็กชายหนึ่งอาศัยอยู่ในกรุงเทพ ทุก ๆ วันเขาก็ต้องไปโรงเรียนให้ทันและเขาไม่เคยตื่นสาย แต่เขากลับไปโรงเรียนสาย เขาพบว่า ในวันที่ฝนตกและรถติด เขาจะไปโรงเรียนสาย แต่มีบางวันที่ฝนตกและรถไม่ติด เขาไปโรงเรียนทัน ส่วนวันที่ฝนไม่ตกและรถไม่ติด เขาไปโรงเรียนทัน แต่วันที่ฝนไม่ตกและรถติด เขาไปโรงเรียนสาย
จากประโยคขั้นบนในขั้นตอนการวิเคราะห์ปัญหาแยกออกได้เป็น 4 กรณีดังนี้
- หากวันนี้ฝนตก และ รถติด แล้วไปโรงเรียนสาย
- หากวันนี้ฝนไม่ตก และ รถติด แล้วไปโรงเรียนสาย
- หากวันนี้ฝนตก และ รถไม่ติด แล้วไม่ไปโรงเรียนสาย
- หากวันนี้ฝนไม่ตก และ รถไม่ติด แล้วไม่ไปโรงเรียนสาย
2. การเลือกอุปกรณ์
เราเลือกใช้ PyKnow เพราะมี knowledge-based และ inference engine อยู่ในตัวครบถ้วน
3. การถอดความรู้
จากวิเคราะห์ปัญหา เขียนเป็นเงื่อนไข if ได้
- if ฝนตก and รถติด than ไปโรงเรียนสาย
- if ~ฝนตก and รถติด than ไปโรงเรียนสาย
- if ฝนตก and ~รถติด than ~ไปโรงเรียนสาย
- if ~ฝนตก and ~รถติด than ~ไปโรงเรียนสาย
4. การสร้างต้นแบบ
ลงมือโค้ดระบบผู้เชี่ยวชาญต้นแบบ
ผลลัพธ์
ไปโรงเรียนสาย !!! :(
5. การขยาย การทดสอบและบำรุงรักษา
เพิ่มเอกสารการใช้งานลงไป และปรับปรุงโค้ด UI ให้ดียิ่งขึ้น ไม่ต้องแก้ไขโค้ดเพื่อหาผลลัพธ์เอง
ผลลัพธ์
ระบบผู้เชี่ยวชาญทำนายไปโรงเรียนสายหรือไม่ รายละเอียด ============== ใช้ทำนายการไปโรงเรียนโดยใช้ข้อมูลฝนตก และ รถติด ฝนตกหรือไม่ : กรอก 0 หากฝนตก กรอก 1 หากฝนไม่ตก รถติดหรือไม่ : กรอก 0 หากรถติด กรอก 1 หากรถไม่ติด ============== ฝนตกหรือไม่ : 1 รถติดหรือไม่ : 1 ไปโรงเรียนทัน :)
อ่านเอกสารและดูตัวอย่างเพิ่มเติมกันได้ที่ https://github.com/buguroo/pyknow/tree/develop/docs
ติดตามบทความต่อไปนะครับ
ขอบคุณครับ
0 ความคิดเห็น:
แสดงความคิดเห็น
แสดงความคิดเห็นได้ครับ :)