Skip to content

สร้างระบบผู้เชี่ยวชาญ (Expert System) ใน Python

บทความนี้จะพาผู้อ่านไปแนะนำระบบผู้เชี่ยวชาญ (Expert System) และลองสร้างระบบผู้เชี่ยวชาญ (Expert System) ใน Python

ระบบผู้เชี่ยวชาญ (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. วิเคราะห์ปัญหา
  2. การเลือกอุปกรณ์
  3. การถอดความรู้
  4. การสร้างต้นแบบ
  5. การขยาย การทดสอบและบำรุงรักษา

1.วิเคราะห์ปัญหา
ปัญหาเรื่อง ไปโรงเรียนสาย

เด็กชายหนึ่งอาศัยอยู่ในกรุงเทพ ทุก ๆ วันเขาก็ต้องไปโรงเรียนให้ทันและเขาไม่เคยตื่นสาย แต่เขากลับไปโรงเรียนสาย เขาพบว่า
ในวันที่ฝนตกและรถติด เขาจะไปโรงเรียนสาย แต่มีบางวันที่ฝนตกและรถไม่ติด เขาไปโรงเรียนทัน 
ส่วนวันที่ฝนไม่ตกและรถไม่ติด เขาไปโรงเรียนทัน แต่วันที่ฝนไม่ตกและรถติด เขาไปโรงเรียนสาย

จากประโยคขั้นบนในขั้นตอนการวิเคราะห์ปัญหาแยกออกได้เป็น 4 กรณีดังนี้

  1. หากวันนี้ฝนตก และ รถติด แล้วไปโรงเรียนสาย
  2. หากวันนี้ฝนไม่ตก และ รถติด แล้วไปโรงเรียนสาย
  3. หากวันนี้ฝนตก และ รถไม่ติด แล้วไม่ไปโรงเรียนสาย
  4. หากวันนี้ฝนไม่ตก และ รถไม่ติด แล้วไม่ไปโรงเรียนสาย

2. การเลือกอุปกรณ์
เราเลือกใช้ PyKnow เพราะมี knowledge-based และ inference engine อยู่ในตัวครบถ้วน
3. การถอดความรู้
จากวิเคราะห์ปัญหา เขียนเป็นเงื่อนไข if ได้

  1. if ฝนตก and รถติด than ไปโรงเรียนสาย
  2. if ~ฝนตก and รถติด than ไปโรงเรียนสาย
  3. if ฝนตก and ~รถติด than ~ไปโรงเรียนสาย
  4. if ~ฝนตก and ~รถติด than ~ไปโรงเรียนสาย

4. การสร้างต้นแบบ
ลงมือโค้ดระบบผู้เชี่ยวชาญต้นแบบ

ผลลัพธ์ ไปโรงเรียนสาย !!! :(
5. การขยาย การทดสอบและบำรุงรักษา
เพิ่มเอกสารการใช้งานลงไป และปรับปรุงโค้ด UI ให้ดียิ่งขึ้น ไม่ต้องแก้ไขโค้ดเพื่อหาผลลัพธ์เอง

ผลลัพธ์

ระบบผู้เชี่ยวชาญทำนายไปโรงเรียนสายหรือไม่

รายละเอียด
==============
ใช้ทำนายการไปโรงเรียนโดยใช้ข้อมูลฝนตก และ รถติด

ฝนตกหรือไม่ : กรอก 0 หากฝนตก
กรอก 1 หากฝนไม่ตก

รถติดหรือไม่ : กรอก 0 หากรถติด
กรอก 1 หากรถไม่ติด
==============


ฝนตกหรือไม่ : 1
รถติดหรือไม่ : 1
ไปโรงเรียนทัน :)

อ่านเอกสารและดูตัวอย่างเพิ่มเติมกันได้ที่ https://github.com/buguroo/pyknow/tree/develop/docs
ติดตามบทความต่อไปนะครับ
ขอบคุณครับ

Published on Categories ไม่มีหมวดหมู่Tags

About wannaphong

วรรณพงษ์ ภัททิยไพบูลย์ ผู้ดูแลเว็บ wannaphong.com และผู้เขียนบทความบล็อกนี้ นักศึกษาชั้นปีที่ 1 สาขาวิทยาการคอมพิวเตอร์และสารสนเทศ คณะวิทยาศาสตร์ประยุกต์และวิศวกรรมศาสตร์ มหาวิทยาลัยขอนแก่น วิทยาเขตหนองคาย

2 thoughts on “สร้างระบบผู้เชี่ยวชาญ (Expert System) ใน Python

  1. wannaphong

    หากท่านมีอะไรสามารถเพิ่มเติมและแนะนำ สามารถทำได้ผ่านช่องความคิดเห็นนี้ครับ

    หากมีตรงไหนที่ผิดพลาดสามารถแจ้งได้ครับ เพราะผมศึกษาด้วยตัวเอง อาจมีบางส่วนที่ผมไม่แน่ใจหรือเข้าใจผิดได้ครับ

    ขอบคุณครับ

    Reply
  2. จีระศักดิ์

    งานชิ้นนี้น่าสนใจมากครับ ผมมีแนวคิดจะทำระบบสนับสนุนการตัดสินใจสำหรับการบริหารจัดการ
    อยู่พอดี คงต้องขอคำปรึกษาจากผู้เขียนนะครับ

    Reply

ใส่ความเห็น

อีเมลของคุณจะไม่แสดงให้คนอื่นเห็น ช่องที่ต้องการถูกทำเครื่องหมาย *