วิธีสร้าง Chatbot ใน Python ทีละขั้นตอน [Python Chatterbox Guide]
เผยแพร่แล้ว: 2020-07-27สารบัญ
จะสร้าง Chatbot ใน Python ได้อย่างไร?
ในช่วงไม่กี่ปีที่ผ่านมาแชท บอทใน Python ได้รับความนิยมอย่างมากในภาคเทคโนโลยีและธุรกิจ บอทอัจฉริยะเหล่านี้เชี่ยวชาญในการเลียนแบบภาษามนุษย์ตามธรรมชาติและสนทนากับมนุษย์ ซึ่งบริษัทต่างๆ ในภาคอุตสาหกรรมต่างๆ ต่างก็ยอมรับมัน ตั้งแต่บริษัทอีคอมเมิร์ซไปจนถึงสถาบันด้านการดูแลสุขภาพ ดูเหมือนว่าทุกคนจะใช้เครื่องมืออันชาญฉลาดนี้เพื่อ ขับเคลื่อนผลประโยชน์ทาง ธุรกิจ ในบทความนี้ เราจะมาเรียนรู้เกี่ยวกับ Chatbot โดยใช้ Python และ วิธีสร้าง Chatbot ใน Python
เรียนรู้ แมชชีนเลิ ร์นนิง ออนไลน์จากมหาวิทยาลัยชั้นนำของโลก – ปริญญาโท หลักสูตร Executive Post Graduate และหลักสูตรประกาศนียบัตรขั้นสูงใน ML & AI เพื่อติดตามอาชีพของคุณอย่างรวดเร็ว
แชทบอทคืออะไร?
Chatbot เป็นซอฟต์แวร์ที่ใช้ AI ที่ออกแบบมาเพื่อโต้ตอบกับมนุษย์ในภาษาธรรมชาติ แชทบ็อตเหล่านี้มักจะสนทนาผ่านการได้ยินหรือข้อความ และพวกมันสามารถเลียนแบบภาษามนุษย์ได้อย่างง่ายดายเพื่อสื่อสารกับมนุษย์ในลักษณะที่เหมือนมนุษย์ Chatbot เป็นหนึ่งในแอปพลิเคชั่นที่ดีที่สุดของการประมวลผลภาษาธรรมชาติ
Chatbots สามารถแบ่งออกเป็นสองรูปแบบหลัก – ตามกฎและการเรียนรู้ด้วยตนเอง
แนวทางตามกฎจะฝึกแชทบอทเพื่อตอบคำถามโดยอิงจากชุดของกฎที่กำหนดไว้ล่วงหน้าซึ่งได้รับการฝึกฝนในขั้นต้น กฎที่ตั้งไว้เหล่านี้อาจเป็นแบบธรรมดาหรือซับซ้อนมากก็ได้ แม้ว่าแชทบอทแบบใช้กฎจะจัดการกับการสืบค้นข้อมูลธรรมดาๆ ได้ค่อนข้างดี แต่ก็มักจะล้มเหลวในการดำเนินการค้นหา/คำขอที่ซับซ้อนยิ่งขึ้น
ตามชื่อที่แนะนำ บอทการเรียนรู้ด้วยตนเองคือแชทบอทที่สามารถเรียนรู้ได้ด้วยตัวเอง สิ่งเหล่านี้ใช้ประโยชน์จากเทคโนโลยีขั้นสูง เช่น ปัญญาประดิษฐ์และการเรียนรู้ของเครื่อง เพื่อฝึกฝนตนเองจากอินสแตนซ์และพฤติกรรม โดยธรรมชาติแล้ว แชทบอทเหล่านี้ฉลาดกว่าบอทแบบใช้กฎมาก บอทที่เรียนรู้ด้วยตนเองสามารถแบ่งออกเป็นสองประเภทเพิ่มเติม - แบบอิงตามการเรียกค้นข้อมูลหรือแบบทั่วไป

1. Chatbots แบบดึงข้อมูล
Chatbot ตามการดึงข้อมูลเป็น Chatbot ที่ทำงานบนรูปแบบการป้อนข้อมูลที่กำหนดไว้ล่วงหน้าและตั้งค่าการตอบกลับ เมื่อป้อนคำถาม/รูปแบบแล้ว Chatbot จะใช้วิธีการแก้ปัญหาเพื่อตอบสนองต่อการตอบสนองที่เหมาะสม โมเดลตามการดึงข้อมูลถูกใช้อย่างกว้างขวางในการออกแบบแชทบอทที่เน้นเป้าหมายด้วยคุณสมบัติที่ปรับแต่งได้ เช่น โฟลว์และโทนของบอทเพื่อปรับปรุงประสบการณ์ของลูกค้า
2. Chatbots กำเนิด
ไม่เหมือนกับแชทบอทที่ใช้การดึงข้อมูล แชทบอทแบบสร้างไม่ได้ขึ้นอยู่กับการตอบสนองที่กำหนดไว้ล่วงหน้า – พวกเขาใช้ประโยชน์จากเครือข่ายนิวรัล seq2seq ซึ่งอิงตามแนวคิดของการแปลด้วยเครื่องโดยที่ซอร์สโค้ดถูกแปลจากภาษาหนึ่งเป็นอีกภาษาหนึ่ง ในแนวทาง seq2seq อินพุตจะถูกแปลงเป็นเอาต์พุต
Chatbot ตัวแรกมีอายุย้อนไปถึงปี 1966 เมื่อ Joseph Weizenbaum สร้าง ELIZA ที่สามารถเลียนแบบภาษาของนักจิตอายุรเวทได้ด้วยโค้ดเพียง 200 บรรทัดเท่านั้น อย่างไรก็ตาม ด้วยความก้าวหน้าอย่างรวดเร็วของเทคโนโลยี เราเดินทางมาไกลจากแชทบอทแบบสคริปต์ไปจนถึงแชทบอทในไพ ธ อนในปัจจุบัน
Chatbot ในยุคปัจจุบัน
วันนี้ เรามีแชทบอทอัจฉริยะที่ขับเคลื่อนด้วย AI ซึ่งใช้การประมวลผลภาษาธรรมชาติ (NLP) เพื่อทำความเข้าใจคำสั่งของมนุษย์ (ข้อความและเสียง) และเรียนรู้จากประสบการณ์ Chatbots ได้กลายเป็นเครื่องมือโต้ตอบกับลูกค้าหลักสำหรับบริษัทและแบรนด์ที่มีสถานะออนไลน์ที่ใช้งานอยู่ (เว็บไซต์และแพลตฟอร์มเครือข่ายสังคมออนไลน์)
Chatbots ที่ใช้ python เป็นเครื่องมือที่ดี เนื่องจากช่วยอำนวยความสะดวกในการส่งข้อความโต้ตอบแบบทันทีระหว่างแบรนด์และลูกค้า คิดถึง Siri ของ Apple, Alexa ของ Amazon และ Cortana ของ Microsoft สิ่งเหล่านี้ไม่วิเศษนักหรือ คุณไม่อยากรู้ที่จะเรียนรู้วิธีสร้างแชทบ็อตใน Python อยู่แล้วใช่ไหม
แหล่งที่มา
โดยพื้นฐานแล้ว Chatbot ที่ใช้ Python ได้รับการตั้งโปรแกรมให้รับข้อมูลที่คุณให้ไว้ จากนั้นวิเคราะห์ด้วยความช่วยเหลือของอัลกอริธึม AI ที่ซับซ้อน และให้คำตอบเป็นลายลักษณ์อักษรหรือด้วยวาจา เนื่องจากบอทเหล่านี้สามารถเรียนรู้จากพฤติกรรมและประสบการณ์ พวกเขาจึงสามารถตอบสนองต่อการสืบค้นและคำสั่งที่หลากหลาย
แหล่งที่มา
แม้ว่า chatbot ใน python ได้เริ่มครองฉากเทคโนโลยีแล้วในปัจจุบัน Gartner คาดการณ์ว่าภายในปี 2020 Chatbots จะจัดการเกือบ 85% ของการโต้ตอบกับแบรนด์ ลูกค้า
จากความนิยมที่เพิ่มขึ้นและการนำแชทบอทมาใช้ในอุตสาหกรรมนี้ คุณสามารถเพิ่มมูลค่าตลาดของคุณได้โดยการเรียนรู้วิธีสร้างแชทบอทใน Python ซึ่งเป็นหนึ่งในภาษาโปรแกรมที่ใช้กันอย่างแพร่หลายมากที่สุดในโลก
วันนี้ เราจะมาสอนวิธีสร้างแชทบอทอย่างง่ายใน Python โดยใช้ไลบรารี ChatterBot Python เริ่มกันเลย!
ห้องสมุด ChatterBot
ChatterBot เป็นไลบรารี Python ที่ออกแบบมาเพื่อส่งการตอบกลับอัตโนมัติไปยังอินพุตของผู้ใช้ ใช้ อัลกอริธึ ม ML ร่วมกัน เพื่อสร้างการตอบสนองหลายประเภท คุณลักษณะนี้ช่วยให้นักพัฒนาสามารถสร้างแชทบอทโดยใช้ python ที่สามารถสนทนากับมนุษย์และให้การตอบสนองที่เหมาะสมและเกี่ยวข้อง ไม่เพียงแค่นั้น อัลกอริธึม ML ยังช่วยให้บอทปรับปรุงประสิทธิภาพด้วยประสบการณ์
คุณสมบัติที่ยอดเยี่ยมอีกประการของ ChatterBot คือความเป็นอิสระของภาษา ห้องสมุดได้รับการออกแบบในลักษณะที่ทำให้สามารถฝึกบอทในภาษาการเขียนโปรแกรมหลายภาษาได้
ChatterBot ทำงานอย่างไร
เมื่อผู้ใช้ป้อนอินพุตเฉพาะในแชทบอท (พัฒนาบน ChatterBot) บอทจะบันทึกข้อมูลอินพุตพร้อมกับการตอบสนองเพื่อใช้ในอนาคต ข้อมูลนี้ (ของประสบการณ์ที่รวบรวม) ช่วยให้แชทบอทสร้างการตอบสนองอัตโนมัติทุกครั้งที่ป้อนข้อมูลใหม่เข้าไป
โปรแกรมจะเลือกคำตอบที่เหมาะสมที่สุดจากข้อความที่ใกล้เคียงที่สุดที่ตรงกับข้อมูลที่ป้อน จากนั้นจึงส่งคำตอบจากการเลือกข้อความและคำตอบที่ทราบอยู่แล้ว เมื่อเวลาผ่านไป เมื่อแชทบ็อตมีปฏิสัมพันธ์มากขึ้น ความแม่นยำของการตอบสนองก็ดีขึ้น
แหล่งที่มา
จะสร้าง Chatbot ใน Python ได้อย่างไร?
เราจะใช้วิธีการทีละขั้นตอนและแยกย่อยกระบวนการสร้างแชทบ็อต Python

ในการสร้างแชทบอทใน Python คุณต้องนำเข้าแพ็คเกจที่จำเป็นทั้งหมดและเริ่มต้นตัวแปรที่คุณต้องการใช้ในโครงการแชทบอทของคุณ นอกจากนี้ โปรดจำไว้ว่าเมื่อทำงานกับข้อมูลข้อความ คุณต้องดำเนินการประมวลผลข้อมูลล่วงหน้าบนชุดข้อมูลของคุณก่อนที่จะออกแบบแบบจำลอง ML
นี่คือจุดที่การใช้โทเค็นช่วยในเรื่องข้อมูลข้อความ - ช่วยแยกส่วนชุดข้อมูลข้อความขนาดใหญ่ออกเป็นชิ้นเล็กๆ ที่อ่านได้ (เช่น คำ) เมื่อเสร็จแล้ว คุณยังสามารถใช้ lemmatization ที่เปลี่ยนคำให้อยู่ในรูปแบบ lemma ได้ จากนั้นจะสร้างไฟล์ pickle เพื่อเก็บอ็อบเจ็กต์ python ที่ใช้ในการทำนายการตอบสนองของบอท
อีกส่วนที่สำคัญของกระบวนการพัฒนาแชทบอทคือการสร้างชุดข้อมูลการฝึกอบรมและการทดสอบ
ตอนนี้เราได้พูดถึงพื้นฐานของการพัฒนาแชทบอทใน Python แล้ว มาเจาะลึกกระบวนการจริงกัน!
1. เตรียมการพึ่งพา
ขั้นตอนแรกในการสร้างแชทบอทใน Python ด้วยไลบรารี ChatterBot คือการติดตั้งไลบรารีในระบบของคุณ เป็นการดีที่สุดถ้าคุณสร้างและใช้สภาพแวดล้อมเสมือน Python ใหม่สำหรับการติดตั้ง ในการทำเช่นนั้น คุณต้องเขียนและรันคำสั่งนี้ในเทอร์มินัล Python ของคุณ:
คุณยังสามารถติดตั้งเวอร์ชันพัฒนาล่าสุดของ ChatterBot ได้โดยตรงจาก GitHub สำหรับสิ่งนี้ คุณจะต้องเขียนและรันคำสั่งต่อไปนี้:
pip ติดตั้ง git+git://github.com/gunthercox/ChatterBot.git@master
หากคุณต้องการอัพเกรดคำสั่ง คุณสามารถทำได้เช่นกัน:
เมื่อการตั้งค่าของคุณพร้อมแล้ว เราสามารถไปยังขั้นตอนถัดไปเพื่อสร้างแชทบ็อตโดยใช้ python
2. นำเข้าคลาส
การนำเข้าคลาสเป็นขั้นตอนที่สองในกระบวนการสร้างแชทบอทของ Python สิ่งที่คุณต้องทำคือนำเข้าสองคลาส – ChatBot จาก chatterbot และ ListTrainer จาก chatterbot.trainers ในการดำเนินการนี้ คุณสามารถรันคำสั่งต่อไปนี้:
3. สร้างและฝึกอบรม Chatbot
นี่เป็นขั้นตอนที่สามในการสร้างแชทบอทในไพ ธ อน Chatbot ที่คุณกำลังสร้างจะเป็นตัวอย่างของคลาส “ChatBot” หลังจากสร้างอินสแตนซ์ ChatterBot ใหม่ คุณสามารถฝึกบอทเพื่อปรับปรุงประสิทธิภาพได้ การฝึกอบรมช่วยให้มั่นใจว่าบอทมีความรู้เพียงพอที่จะเริ่มต้นการตอบสนองเฉพาะต่ออินพุตเฉพาะ คุณต้องรันคำสั่งต่อไปนี้ทันที:
ในที่นี้ อาร์กิวเมนต์ (ที่สอดคล้องกับชื่อพารามิเตอร์) จะแทนชื่อของแชทบอท Python ของคุณ หากคุณต้องการปิดใช้งานความสามารถในการเรียนรู้ของบอทหลังการฝึก คุณสามารถรวมคำสั่ง “read_only=True” คำสั่ง “logic_adapters” ระบุรายการอแดปเตอร์ที่ใช้ในการฝึกแชทบอท
ในขณะที่ "chatterbot.logic.MathematicalEvaluation" จะช่วยบอทในการแก้ปัญหาทางคณิตศาสตร์ "chatterbot.logic.BestMatch" ช่วยให้บอทเลือกการจับคู่ที่ดีที่สุดจากรายการคำตอบที่ให้ไว้แล้ว
เนื่องจากคุณต้องระบุรายการตอบกลับ คุณสามารถทำได้โดยระบุรายการสตริงที่สามารถใช้ฝึก Python Chatbot ของคุณได้ในภายหลัง และค้นหารายการที่ตรงกันที่สุดสำหรับแต่ละข้อความค้นหา นี่คือตัวอย่างการตอบกลับที่คุณสามารถฝึกแชทบอทของคุณโดยใช้ python เพื่อเรียนรู้:
คุณยังสามารถสร้างและฝึกบอทด้วยการเขียนอินสแตนซ์ของ "ListTrainer" และใส่รายการสตริงดังนี้:
ตอนนี้แชทบอท Python ของคุณพร้อมที่จะสื่อสารแล้ว
4. สื่อสารกับ Python Chatbot
หากต้องการโต้ตอบกับแชทบอท Python คุณสามารถใช้ฟังก์ชัน .get_response() นี่คือลักษณะที่ปรากฏขณะสื่อสาร:
อย่างไรก็ตาม จำเป็นต้องเข้าใจว่าแชทบอทที่ใช้ python อาจไม่ทราบวิธีตอบคำถามของคุณทั้งหมด เนื่องจากความรู้และการฝึกอบรมยังมีจำกัด คุณจึงต้องให้เวลาและให้ข้อมูลการฝึกอบรมเพิ่มเติมเพื่อฝึกฝนเพิ่มเติม
5. ฝึก Python Chatbot ของคุณด้วย Corpus of Data
ในขั้นตอนสุดท้ายของการสร้างแชทบอทใน Python สำหรับการฝึก Python Chatbot ให้ดียิ่งขึ้นไปอีก คุณสามารถใช้คลังข้อมูลที่มีอยู่ได้ ต่อไปนี้คือตัวอย่างวิธีฝึก Python Chatbot ของคุณด้วยคลังข้อมูลที่ตัวบ็อตให้มาเอง:

ที่มาของข้อมูลโค้ด
ข้อดีคือ ChatterBot มีฟังก์ชันนี้ในหลายภาษา ดังนั้น คุณยังสามารถระบุชุดย่อยของคลังข้อมูลในภาษาที่คุณต้องการได้ นี่คือวิธีที่เราสร้าง chatbot ใน Python
บทสรุป
สิ่งที่เราได้แสดงให้เห็นในที่นี้เป็นเพียงหนึ่งในหลายๆ วิธีใน การสร้างแชทบ็อตใน Python คุณยังสามารถใช้ NLTK ซึ่งเป็นไลบรารี Python ที่มีประโยชน์อีกตัวหนึ่งเพื่อสร้างแชทบ็อต Python และแม้ว่าสิ่งที่คุณเรียนรู้ที่นี่จะเป็นแชทบอทพื้นฐาน ใน Python ที่แทบไม่มีทักษะความรู้ความเข้าใจใดๆ แต่ก็เพียงพอที่จะช่วยให้คุณเข้าใจกายวิภาคของแชทบอท
เมื่อคุณเข้าใจการออกแบบของแชท บอทที่ใช้ไพ ธอนเป็นอย่างดีแล้ว คุณสามารถทดลองกับมันโดยใช้เครื่องมือและคำสั่งต่างๆ เพื่อทำให้ฉลาดยิ่งขึ้นไปอีก
นอกจากนี้ หากคุณสนใจที่จะเรียนรู้เพิ่มเติมเกี่ยวกับแมชชีนเลิร์นนิง โปรดดูที่ IIIT-B & upGrad's Executive PG Program in Machine Learning ซึ่งออกแบบมาสำหรับมืออาชีพที่ทำงานและมีการฝึกอบรมที่เข้มงวดมากกว่า 450 ชั่วโมง กรณีศึกษาและการบ้านมากกว่า 30 รายการ IIIT -B สถานะศิษย์เก่า 5+ โครงการหลักที่ปฏิบัติได้จริง & ความช่วยเหลืองานกับ บริษัท ชั้นนำ
แชทบอทคืออะไร?
Chatbot เป็นซอฟต์แวร์ที่ใช้ AI ซึ่งสามารถสนทนากับมนุษย์ในภาษาของตนเองได้ แชทบ็อตเหล่านี้มักจะเชื่อมต่อกับมนุษย์ผ่านเสียงหรือวิธีการเขียน และสามารถเลียนแบบภาษามนุษย์เพื่อพูดคุยกับพวกเขาในลักษณะที่เหมือนมนุษย์ได้อย่างง่ายดาย แนวทางตามกฎจะสอนให้แชทบอทตอบคำถามตามชุดของกฎที่กำหนดไว้ล่วงหน้าซึ่งได้รับการสอนเมื่อสร้างขึ้นครั้งแรก กฎที่กำหนดไว้ล่วงหน้าเหล่านี้อาจเรียบง่ายหรือซับซ้อน บอทที่เรียนรู้ด้วยตนเองตามชื่อคือบอทที่สามารถฝึกฝนได้ด้วยตัวเอง สิ่งเหล่านี้ใช้ประโยชน์จากเทคโนโลยีล้ำสมัยเช่นปัญญาประดิษฐ์และการเรียนรู้ของเครื่องเพื่อเรียนรู้จากตัวอย่างและพฤติกรรม
ฉันต้องใช้ทักษะอะไรบ้างในการสร้างแชทบ็อต?
ผู้พัฒนาแชทบอทต้องมีทักษะที่หลากหลาย พวกเขาต้องมีความเข้าใจอย่างถ่องแท้เกี่ยวกับแพลตฟอร์มและภาษาโปรแกรมเพื่อที่จะพัฒนา Chatbot ได้อย่างมีประสิทธิภาพ ผู้พัฒนาแชทบอทควรมีความรอบรู้ในอัลกอริทึมการเรียนรู้ ปัญญาประดิษฐ์ และการประมวลผลภาษาธรรมชาติ พื้นหลังหลายภาษาพร้อมประสบการณ์การเขียนโปรแกรมในภาษาเช่น Java, PHP, Python, Ruby และอื่น ๆ โปรแกรมเมอร์ต้องคุ้นเคยกับแพลตฟอร์มต่างๆ เพื่อปรับปรุงคุณภาพของแชทบอท
Chatbot ตามกฎคืออะไร?
แทนที่จะใช้ AI บอทแบบอิงกฎจะใช้โฟลว์เหมือนต้นไม้เพื่อช่วยเหลือแขกที่มีคำถาม สิ่งนี้บ่งชี้ว่าบอทจะนำแขกผ่านชุดคำถามติดตามเพื่อให้ได้วิธีแก้ปัญหาที่เหมาะสม คุณสามารถควบคุมบทสนทนาได้อย่างสมบูรณ์เนื่องจากโครงสร้างและการตอบสนองทั้งหมดถูกกำหนดไว้ล่วงหน้า เหตุใดคุณจึงควรใช้แชทบอทกับกฎ ตัวเลขที่น้อยกว่าและการสอบถามง่ายๆ เช่น การจองโต๊ะที่ร้านอาหารหรือการสอบถามเกี่ยวกับเวลาทำการ เหมาะอย่างยิ่งสำหรับแชทบอทตามกฎ