AI ChatBot แนะนำActivityตามอารมณ์ ในภาษา Python
แชทบอทนี้สามารถวิเคราะห์อารมณ์ของผู้ใช้จากข้อความที่พิมพ์เข้ามา และแนะนำActivityที่เหมาะสม เช่น ภาพยนตร์ เพลง หรือวิดีโอ โดยใช้เทคนิคNatural Language Processing (NLP) และโมเดลปัญญาประดิษฐ์แบบ Zero-shot classification ซึ่งช่วยให้สามารถเข้าใจบริบทของคำถามได้แม้ไม่ได้มีการสอนล่วงหน้า ระบบนี้ฝึกการเข้าใจเจตนา (intent) ของ user ขั้นตอนที่ 1: ติดตั้งไลบรารีที่จำเป็น !pip install transformers ipywidgets --quiet transformers: ไลบรารีจาก Hugging Face ใช้โหลดโมเดล NLP สำเร็จรูป ipywidgets: ใช้สร้างแบบฟอร์มโต้ตอบ (interactive) สำหรับให้ผู้ใช้พิมพ์คำถาม ขั้นตอนที่ 2: โหลดโมเดล Zero-shot Classification from transformers import pipeline classifier = pipeline("zero-shot-classification", model="facebook/bart-large-mnli") โมเดล facebook/bart-large-mnli ไว้สำหรับวิเคราะห์ความหมายของข้อความ Zero-shot เอาไว้กำหนด “หมวด” ที่ต้องการให้chatเลือก เช่น "เบื่อ", "เครียด" ขั้นตอนที่ 3: กำหนดหมวดอารมณ์ และactivityที่แนะนำ labels = ["เครียด", "เบื่อ", "เศร้า", "อยากแรงบันดาลใจ", "ดีใจ"] recommendations = { "เครียด": ["
แชทบอทนี้สามารถวิเคราะห์อารมณ์ของผู้ใช้จากข้อความที่พิมพ์เข้ามา และแนะนำActivityที่เหมาะสม เช่น ภาพยนตร์ เพลง หรือวิดีโอ โดยใช้เทคนิคNatural Language Processing (NLP) และโมเดลปัญญาประดิษฐ์แบบ Zero-shot classification ซึ่งช่วยให้สามารถเข้าใจบริบทของคำถามได้แม้ไม่ได้มีการสอนล่วงหน้า ระบบนี้ฝึกการเข้าใจเจตนา (intent) ของ user
ขั้นตอนที่ 1: ติดตั้งไลบรารีที่จำเป็น
!pip install transformers ipywidgets --quiet
- transformers: ไลบรารีจาก Hugging Face ใช้โหลดโมเดล NLP สำเร็จรูป
- ipywidgets: ใช้สร้างแบบฟอร์มโต้ตอบ (interactive) สำหรับให้ผู้ใช้พิมพ์คำถาม
ขั้นตอนที่ 2: โหลดโมเดล Zero-shot Classification
from transformers import pipeline
classifier = pipeline("zero-shot-classification", model="facebook/bart-large-mnli")
- โมเดล facebook/bart-large-mnli ไว้สำหรับวิเคราะห์ความหมายของข้อความ
- Zero-shot เอาไว้กำหนด “หมวด” ที่ต้องการให้chatเลือก เช่น "เบื่อ", "เครียด"
ขั้นตอนที่ 3: กำหนดหมวดอารมณ์ และactivityที่แนะนำ
labels = ["เครียด", "เบื่อ", "เศร้า", "อยากแรงบันดาลใจ", "ดีใจ"]
recommendations = {
"เครียด": ["