แปลงข้อมูลไร้โครงสร้างด้วย Generative AI

AITechnical
โดย Weerawat B.
1.png

TL;DR

บทความนี้พูดถึงความท้าทายของงานวิศวกรรมข้อมูล (Data Engineering) ในการจัดการกับข้อมูลไร้โครงสร้าง (Unstructured Data) เช่น ข้อความ รูปภาพ เสียง และวิธีที่ Generative AI โดยเฉพาะโมเดลภาษาอย่าง GPT สามารถเข้ามาช่วยจัดระเบียบข้อมูลเหล่านี้ให้พร้อมใช้งานมากขึ้น เช่น การแปลงเป็นข้อมูลโครงสร้าง (Structured Data) เพื่อใช้ในงานวิเคราะห์หรือ Machine Learning ตัวอย่างหนึ่งคือการใช้ Generative AI ในการจัดหมวดหมู่อารมณ์ของลูกค้า จากข้อความ feedback ที่พวกเขาเขียนมา

📚 ทำไมข้อมูลไร้โครงสร้างถึงเป็นปัญหา?

ข้อมูลไร้โครงสร้าง (Unstructured Data) เช่น ข้อความอีเมล, รีวิวจากลูกค้า, โพสต์ในโซเชียล, ไฟล์เสียง ฯลฯ เป็นข้อมูลที่ ไม่มีรูปแบบตายตัว จึงยากต่อการประมวลผลในระบบอัตโนมัติหรือการวิเคราะห์ข้อมูลแบบดั้งเดิม เช่น:

  • ข้อความผู้ใช้: “พนักงานพูดจาแย่มาก บริการไม่โอเคเลย”
  • ไม่มีตาราง, ไม่มี metadata, ไม่มี tag ที่บอกว่านี่คือ feedback เชิงลบ
9p4esw-20250330-093220.jpg

🧠 Generative AI ช่วยอะไรได้บ้าง?

Generative AI โดยเฉพาะโมเดล NLP อย่าง GPT, LLaMA, Claude ฯลฯ สามารถ “เข้าใจ” ความหมายในข้อความที่ไร้โครงสร้าง แล้วแปลงออกมาในรูปแบบที่จัดการได้ เช่น:

  • สรุปใจความ: เช่น การนำบทความยาว ๆ มาสรุปเป็นข้อความสั้น ๆ ที่เข้าใจง่าย
    • ตัวอย่าง: บทความข่าว 5 หน้าถูกสรุปเป็นย่อหน้าเดียวที่ครอบคลุมประเด็นสำคัญ
  • จัดหมวดหมู่ความรู้สึก: เช่น การวิเคราะห์ความคิดเห็นของลูกค้าว่าเป็นบวก ลบ หรือกลาง
    • ตัวอย่าง: ความคิดเห็น “บริการยอดเยี่ยมมาก!” ถูกจัดเป็นความรู้สึกบวก
  • แยกหัวข้อหลัก: เช่น การระบุหัวข้อสำคัญจากเอกสารยาว ๆ
    • ตัวอย่าง: จากรายงาน 10 หน้า ระบบสกัดหัวข้อหลักได้ 3 ข้อ หรือสรุปข้อมูลสำคัญโดยตอบคำถามหลัก ๆ เช่น ใคร ทำอะไร ที่ไหน อย่างไร ซึ่งเป็นการนำหลักการ 5W1H
  • สร้างแท็กหรือเมตาดาต้าเพิ่ม: เช่น การเพิ่มแท็กให้กับบทความเพื่อให้ง่ายต่อการค้นหา
    • ตัวอย่าง: บทความเกี่ยวกับเทคโนโลยีได้รับแท็ก “AI”, “Machine Learning”
  • แปลงเป็น JSON/CSV: เช่น การแปลงข้อมูลที่ไม่มีโครงสร้างให้อยู่ในรูปแบบที่จัดการได้ง่าย
    • ตัวอย่าง: อีเมลหลายฉบับถูกแปลงเป็นไฟล์ CSV ที่มีคอลัมน์ “ผู้ส่ง”, “หัวข้อ”, “เนื้อหา”

การนำ Generative AI มาใช้ในการวิเคราะห์อารมณ์ของผู้ใช้จากข้อความที่พวกเขาให้เป็นความคิดเห็น (feedback) เป็นตัวอย่างหนึ่งของการประยุกต์ใช้เทคโนโลยีนี้ โดยสามารถจำแนกอารมณ์ของผู้ใช้ เช่น พึงพอใจ (positive), ไม่พึงพอใจ (negative), หรือเป็นกลาง (neutral) จากข้อความที่พวกเขาเขียน กระบวนการนี้เรียกว่า Sentiment Analysis หรือ “การวิเคราะห์อารมณ์

Generative AI จึงกลายเป็นเครื่องมือทรงพลังสำหรับ Data Engineer ในการเตรียมข้อมูลไร้โครงสร้างให้พร้อมใช้งานต่อ เช่นในงาน BI, Analytics, หรือ Machine Learning

🏢 ประโยชน์ในภาคธุรกิจ

  • เข้าใจลูกค้าได้ลึกขึ้น: แปลง feedback ของลูกค้าให้เป็นหมวดหมู่อารมณ์ ช่วยให้ทีมพัฒนาผลิตภัณฑ์หรือบริการวิเคราะห์ pain point ได้เร็วขึ้น
  • ลดเวลาจัดการข้อมูล: จากเดิมต้องใช้คนอ่าน feedback ทีละอัน ก็สามารถใช้ AI สรุปและจัดหมวดหมู่ได้อัตโนมัติ
  • ต่อยอดงานวิเคราะห์: เมื่อข้อมูลถูกจัดระเบียบแล้ว ทีม data analyst หรือ data scientist ก็สามารถนำไปวิเคราะห์เชิงลึกได้ทันที
  • เพิ่มคุณภาพ dashboard: นำข้อมูลที่ได้จาก Generative AI มาทำ visualization แสดงความรู้สึกลูกค้าแบบ real-time

👨‍💻 ประโยชน์ในเชิงของ Developer / Data Engineer

  • ช่วย pre-process ข้อมูล: ใช้ GPT แยก entities, ทำ sentiment analysis, หรือ extract features จากข้อความโดยไม่ต้องเขียน regex เอง
  • ลดภาระงาน manual: ไม่ต้องเขียน script วุ่นวายเพื่อจัดหมวดหมู่หรือ label ข้อความอีกต่อไป
  • ต่อยอดไปงาน ML/AI ได้ง่าย: แปลงข้อมูลข้อความให้เป็น structured format พร้อมป้อนเข้าโมเดล
  • ตั้งค่า pipeline อัตโนมัติ: สร้าง workflow ที่ใช้ GPT ผ่าน API สำหรับจัดการ feedback แบบ real-time

✨ ตัวอย่าง: การจำแนกอารมณ์จากข้อความ feedback

สมมติคุณมี feedback จากลูกค้าเป็นข้อความจำนวนมาก และคุณอยากจัดหมวดหมู่อารมณ์เป็น 3 กลุ่ม: positive, neutral, negative ตัวอย่างการใช้โมเดล GPT-3.5 ในการวิเคราะห์อารมณ์ของข้อความความคิดเห็นจากผู้ใช้

ตัวอย่างโค้ด Python แบบทีละข้อความ (Single Prompt)

ขั้นตอนการทำงานของโค้ดมีดังนี้:

  1. ตั้งค่า API Key ของ OpenAI: กำหนดค่า openai.api_key ด้วยคีย์ API ของคุณเพื่อให้สามารถเข้าถึงบริการของ OpenAI ได้
  2. กำหนดข้อความความคิดเห็นของลูกค้า: สร้างตัวแปร feedback เพื่อเก็บข้อความความคิดเห็นที่ต้องการวิเคราะห์
  3. สร้างคำสั่ง (prompt): กำหนดคำสั่งที่อธิบายงานที่ต้องการให้โมเดลทำ โดยในที่นี้คือการวิเคราะห์ความคิดเห็นและจัดหมวดหมู่อารมณ์ความรู้สึก จากนั้นขอให้ผลลัพธ์อยู่ในรูปแบบ JSON
  4. เรียกใช้ OpenAI ChatCompletion API: ใช้ฟังก์ชัน openai.ChatCompletion.create() เพื่อส่งคำสั่งไปยังโมเดล gpt-3.5-turbo โดยกำหนดบทบาทของข้อความเป็น system สำหรับคำอธิบายบทบาทของผู้ช่วย และ user สำหรับคำสั่งที่สร้างขึ้น
  5. กำหนดค่า temperature: ตั้งค่า temperature=0.2 เพื่อควบคุมความสร้างสรรค์ของการตอบสนอง ค่ายิ่งต่ำยิ่งทำให้ผลลัพธ์มีความแน่นอนมากขึ้น
  6. แสดงผลลัพธ์: พิมพ์ผลลัพธ์ที่ได้จากการวิเคราะห์ ซึ่งคาดว่าจะเป็น JSON ที่ระบุอารมณ์ความรู้สึกของความคิดเห็น เช่น {"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"}

ตัวอย่างโค้ด Python แบบหลายข้อความ (Batch Feedbacks)

ขั้นตอนการทำงานของโค้ดมีดังนี้:

  1. สร้างรายการความคิดเห็น: กำหนดตัวแปร feedbacks ซึ่งเป็นลิสต์ที่เก็บความคิดเห็นของลูกค้า 3 รายการ
  2. สร้างฟังก์ชัน classify_sentiment: ฟังก์ชันนี้รับพารามิเตอร์ feedback ซึ่งเป็นข้อความความคิดเห็น แล้วสร้างคำสั่ง (prompt) เพื่อวิเคราะห์และจัดหมวดหมู่อารมณ์ความรู้สึกของความคิดเห็นนั้น โดยขอให้ผลลัพธ์อยู่ในรูปแบบ JSON
  3. เรียกใช้ OpenAI ChatCompletion API: ภายในฟังก์ชัน classify_sentiment ใช้ฟังก์ชัน openai.ChatCompletion.create() เพื่อส่งคำสั่งไปยังโมเดล gpt-3.5-turbo โดยกำหนดบทบาทของข้อความเป็น system สำหรับคำอธิบายบทบาทของผู้ช่วย และ user สำหรับคำสั่งที่สร้างขึ้น
  4. กำหนดค่า temperature: ตั้งค่า temperature=0.2 เพื่อควบคุมความสร้างสรรค์ของการตอบสนอง ค่ายิ่งต่ำยิ่งทำให้ผลลัพธ์มีความแน่นอนมากขึ้น
  5. ประมวลผลความคิดเห็นทีละรายการ: ใช้ลูป 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 ฯลฯ
  • การรันแบบ batch จำนวนมาก ควรคำนึงถึง rate limit และ ค่าใช้จ่ายตามจำนวน token

บทสรุป

ข้อมูลไร้โครงสร้างมักสร้างภาระให้กับทีม 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

---

อ้างอิง

© 2025, AI DETA COMPANY LIMITED, All Rights Reserved
Attributions