บทความนี้พูดถึงความท้าทายของงานวิศวกรรมข้อมูล (Data Engineering) ในการจัดการกับข้อมูลไร้โครงสร้าง (Unstructured Data) เช่น ข้อความ รูปภาพ เสียง และวิธีที่ Generative AI โดยเฉพาะโมเดลภาษาอย่าง GPT สามารถเข้ามาช่วยจัดระเบียบข้อมูลเหล่านี้ให้พร้อมใช้งานมากขึ้น เช่น การแปลงเป็นข้อมูลโครงสร้าง (Structured Data) เพื่อใช้ในงานวิเคราะห์หรือ Machine Learning ตัวอย่างหนึ่งคือการใช้ Generative AI ในการจัดหมวดหมู่อารมณ์ของลูกค้า จากข้อความ feedback ที่พวกเขาเขียนมา
ข้อมูลไร้โครงสร้าง (Unstructured Data) เช่น ข้อความอีเมล, รีวิวจากลูกค้า, โพสต์ในโซเชียล, ไฟล์เสียง ฯลฯ เป็นข้อมูลที่ ไม่มีรูปแบบตายตัว จึงยากต่อการประมวลผลในระบบอัตโนมัติหรือการวิเคราะห์ข้อมูลแบบดั้งเดิม เช่น:
Generative AI โดยเฉพาะโมเดล NLP อย่าง GPT, LLaMA, Claude ฯลฯ สามารถ “เข้าใจ” ความหมายในข้อความที่ไร้โครงสร้าง แล้วแปลงออกมาในรูปแบบที่จัดการได้ เช่น:
การนำ Generative AI มาใช้ในการวิเคราะห์อารมณ์ของผู้ใช้จากข้อความที่พวกเขาให้เป็นความคิดเห็น (feedback) เป็นตัวอย่างหนึ่งของการประยุกต์ใช้เทคโนโลยีนี้ โดยสามารถจำแนกอารมณ์ของผู้ใช้ เช่น พึงพอใจ (positive), ไม่พึงพอใจ (negative), หรือเป็นกลาง (neutral) จากข้อความที่พวกเขาเขียน กระบวนการนี้เรียกว่า Sentiment Analysis หรือ “การวิเคราะห์อารมณ์”
Generative AI จึงกลายเป็นเครื่องมือทรงพลังสำหรับ Data Engineer ในการเตรียมข้อมูลไร้โครงสร้างให้พร้อมใช้งานต่อ เช่นในงาน BI, Analytics, หรือ Machine Learning
สมมติคุณมี feedback จากลูกค้าเป็นข้อความจำนวนมาก และคุณอยากจัดหมวดหมู่อารมณ์เป็น 3 กลุ่ม: positive
, neutral
, negative
ตัวอย่างการใช้โมเดล GPT-3.5 ในการวิเคราะห์อารมณ์ของข้อความความคิดเห็นจากผู้ใช้
ขั้นตอนการทำงานของโค้ดมีดังนี้:
openai.api_key
ด้วยคีย์ API ของคุณเพื่อให้สามารถเข้าถึงบริการของ OpenAI ได้feedback
เพื่อเก็บข้อความความคิดเห็นที่ต้องการวิเคราะห์openai.ChatCompletion.create()
เพื่อส่งคำสั่งไปยังโมเดล gpt-3.5-turbo โดยกำหนดบทบาทของข้อความเป็น system สำหรับคำอธิบายบทบาทของผู้ช่วย และ user สำหรับคำสั่งที่สร้างขึ้นtemperature=0.2
เพื่อควบคุมความสร้างสรรค์ของการตอบสนอง ค่ายิ่งต่ำยิ่งทำให้ผลลัพธ์มีความแน่นอนมากขึ้น{"sentiment": "positive"}
import openai
openai.api_key = "your-api-key" # ใส่ API Key ของคุณตรงนี้
feedback = "อาหารอร่อยมาก พนักงานยิ้มแย้ม บรรยากาศดีสุดๆ"
prompt = f"""Analyze the following feedback and classify the customer's sentiment into one of these categories: positive, neutral, negative.
Feedback: "{feedback}"
Return the result in JSON format.
"""
response = openai.ChatCompletion.create(
model="gpt-3.5-turbo",
messages=[
{"role": "system", "content": "You are a helpful assistant that classifies customer sentiment."},
{"role": "user", "content": prompt}
],
temperature=0.2
)
print(response['choices'][0]['message']['content'])
# ตัวอย่าง Output:
# {"sentiment": "positive"}
ขั้นตอนการทำงานของโค้ดมีดังนี้:
feedbacks
ซึ่งเป็นลิสต์ที่เก็บความคิดเห็นของลูกค้า 3 รายการclassify_sentiment
: ฟังก์ชันนี้รับพารามิเตอร์ feedback ซึ่งเป็นข้อความความคิดเห็น แล้วสร้างคำสั่ง (prompt) เพื่อวิเคราะห์และจัดหมวดหมู่อารมณ์ความรู้สึกของความคิดเห็นนั้น โดยขอให้ผลลัพธ์อยู่ในรูปแบบ JSONclassify_sentiment
ใช้ฟังก์ชัน openai.ChatCompletion.create()
เพื่อส่งคำสั่งไปยังโมเดล gpt-3.5-turbo โดยกำหนดบทบาทของข้อความเป็น system สำหรับคำอธิบายบทบาทของผู้ช่วย และ user สำหรับคำสั่งที่สร้างขึ้นtemperature=0.2
เพื่อควบคุมความสร้างสรรค์ของการตอบสนอง ค่ายิ่งต่ำยิ่งทำให้ผลลัพธ์มีความแน่นอนมากขึ้นfor
เพื่อวนผ่านแต่ละความคิดเห็นในลิสต์ feedbacks
และเรียกใช้ฟังก์ชัน classify_sentiment
เพื่อวิเคราะห์อารมณ์ความรู้สึกของแต่ละความคิดเห็น จากนั้นพิมพ์ผลลัพธ์ที่ได้feedbacks = [
"อาหารอร่อยมาก บริการดีเยี่ยม",
"รอนานมาก พนักงานไม่สนใจ",
"เฉย ๆ นะ ไม่ได้รู้สึกว่าว้าวอะไร"
]
def classify_sentiment(feedback):
prompt = f"""
Analyze the following feedback and classify the customer's sentiment into one of these categories: positive, neutral, negative.
Feedback: "{feedback}"
Return the result in JSON format.
"""
response = openai.ChatCompletion.create(
model="gpt-3.5-turbo",
messages=[
{"role": "system", "content": "You are a helpful assistant that classifies customer sentiment."},
{"role": "user", "content": prompt}
],
temperature=0.2
)
return response['choices'][0]['message']['content']
# ประมวลผล feedback ทีละรายการ
for fb in feedbacks:
result = classify_sentiment(fb)
print(f"Feedback: {fb}\nResult: {result}\n")
หมายเหตุเรื่องความปลอดภัย
openai.api_key
ไว้ใน .env
หรือระบบจัดการความลับ เช่น AWS Secrets Manager, Google Secret Manager ฯลฯข้อมูลไร้โครงสร้างมักสร้างภาระให้กับทีม Data Engineering เพราะเตรียมใช้งานยาก แต่ด้วย Generative AI อย่าง GPT หรือ model ของเจ้าอื่น ๆ ทำให้เราสามารถ “ตีความ-จัดระเบียบ-แปลงรูปแบบ” ข้อมูลพวกนี้ให้พร้อมใช้ได้อย่างง่ายดาย ยกตัวอย่างการวิเคราะห์ feedback ของลูกค้าโดยจัดหมวดหมู่อารมณ์ ก็สามารถทำได้โดยตรงด้วย LLM ไม่ต้องพึ่ง rule-based หรือ manual tagging เหมือนในอดีต
---
AI DETA มีประสบการณ์และความเชี่ยวชาญในการออกแบบและพัฒนาระบบสารสนเทศ, การพัฒนาระบบ ERP และการปรับแต่ง Odoo ERP, การพัฒนาและจัดการ Cloud-Based Solution/Application, โซลูชันด้านข้อมูล การเรียนรู้ของเครื่องจักร และปัญญาประดิษฐ์ (Data/ML/AI Solution), รวมถึงการให้คำปรึกษา หรือ Outsource ให้แก่องค์กรต่าง ๆ และพวกเราพร้อมเป็นส่วนหนึ่งในการทำ Digital Transformation ให้กับองค์กรของคุณ
หากมีความสนใจให้พวกเราเป็นผู้พัฒนาระบบหรือให้คำปรึกษา หรือต้องการสอบถามอัตราค่าบริการต่าง ๆ สามารถติดต่อได้ทางอีเมล [email protected] หรือดูรายละเอียดได้ที่เว็บไซต์ https://aideta.com
---