5 กรกฎาคม 2558

Published กรกฎาคม 05, 2558 by with 2 comments

ทำ Chat Bot ง่าย ๆ ในภาษา Python

สวัสดีผู้อ่านทุกท่านครับ ผมเกิดมีความคิด อยากลองทำ Chat Bot ดู โดยบทความนี้จะเป็นแค่ Chat Bot ธรรมดา ๆ ยังไม่นำการประมวลผลด้านภาษามาใช้งานครับ


ตัวอย่างการใช้งาน
> Hello
Hi
> Hello
Hello :D
> Hello
Hi
>

หลักการของ Chat Bot คือ เมื่อเรากรอกข้อความลงไป ระบบจะทำการจับคู่ข้อความกับเงื่อนไขรายการของตัวแปร a ที่กำหนดไว้ โดยข้อความที่แสดงจะแตกต่างกันไปตามหลักการสุ่ม โดใช้ random.choice() ในการสุ่มรายการของตัวแปร b

หากต้องการเรียกข้อมูลจากฐานข้อมูลและมีการรับคำใหม่มาบบรจุ จะใช้วิธีข้างบนไม่ได้ ผมจึงต้องใช้ฐานข้อมูล ผมขอแนะนำโมดูลฐานข้อมูลที่มีชื่อว่า "tinydb"

โมดูล tinydb เป็นโมดูลฐานข้อมูล  เป็นฐานข้อมูลแบบ NoSQL  เขียนบนภาษา Python ไฟล์ฐานข้อมูลเป็นไฟล์ JSON และมีขนาดเล็ก ทำงานได้อย่างรวดเร็ว
รองรับทั้ง Python 2 และ Python 3
ใช้ License: MIT
สามารถติดตั้งได้โดยใช้คำสั่ง pip :
pip install tinydb

อ่านเอกสารการใช้งานโมดูล tinydb ได้ที่ https://tinydb.readthedocs.org/

เมื่อนำโมดูล tinydb มาใช้เก็บข้อมูลคำศัพท์ มาใช้งานกับ Chat Bot ต้นแบบของเราข้างบนครับ


ตัวอย่างการใช้งาน
> แมว
ไม่พบประโยคนี้ในระบบ คุณต้องการสอนไหม
Y or N : Y
คำถาม : แมว
คำตอบ : คุณเป็นแมวหรอ
> แมว
คุณเป็นแมวหรอ
>

การนำไปพัฒนาต่อ
จากโค้ดข้างบน ผมขอแนะนำอย่าทำ Chat Bot แบบ SimSimi หรือ Chat Bot ตอบโต้ธรรมดา ๆ ดีกว่าครับ เพราะหลังจากที่มีกระแส SimSimi เมื่อหลายปีก่อน ทำให้มีนักพัฒนา ทั้งไทยและต่างประเทศได้พัฒนา Chat Bot  บนหน้าเว็บหรือแอพคล้าย ๆ กันออกมาจำนวนมาก (เกินไป) จนบางคนมองว่าเป็นแค่เพียงของเล่น ผมขอแนะนำความคิดผมครับ

  • นำไปใช้งานเก็บตัวอย่างในทางงานวิจัย เช่น การประมวลผลข้อความ โดยให้อาสาสมัคร ใช้ Chat Bot ที่เราทำ เพิ่มข้อมูล เพิ่มคำศัพท์ ทำระบบเก็บ log การใช้งาน Chat Bot โดยให้ระบุอารมณ์ขณะที่ใช้งานด้วย หนืองานวิจัย AI เป็นต้นครับ

  • นำไปใช้งานเป็นผู้ช่วย เช่น ทำ IRC Bot หรือผ่านเครือข่ายสังคมอื่น ๆ ให้โต้ตอบคำสั่งที่เรากำหนดไว้ เช่น "เซ็คราคาค่าเงินบาทไทย" แล้วส่งผลลัพธ์มาให้เรา เป็นต้นครับ

  • ความคิดของคุณเอง ลองคิดกันดูว่าเราจะนำ Chat Bot ไปทำอะไรได้บ้างนอกจากนี้ :D

ติดตามบทความต่อไปนะครับ
ขอบคุณครับ

2 ความคิดเห็น:

  1. บทความดีมากครับ แต่อาจจะยากไปสำหรับคนโค้ดไม่เป็นนะ ถ้าทำไม่ได้จริงลองสมัครใช้แชทบอทอย่าง Kaojao แชทบอทก็ได้ครับ https://kaojao.com ใช้งานเบื้องต้นได้ ช่วยขายของได้ แต่ถ้าอยากลองเขียนจริงๆก็เอ้า สู้ดิ

    ตอบลบ
  2. ทำตามตัวอย่างที่2 เกิดข้อผิดพลาดใน database. py บรรทัด156
    if cond in self. _query_cache:
    TypeError. : unhashable type: 'Query'

    ตอบลบ

แสดงความคิดเห็นได้ครับ :)