Thai NLP / review routing
เริ่มจาก label สี่แบบ
รีวิวจริงไม่ได้มีแค่ชอบหรือไม่ชอบ บางข้อความเป็นคำถาม บางข้อความมีทั้งชมและบ่น ผมเลยสนใจว่าถ้าโมเดลไม่มั่นใจ เราจะทำให้ uncertainty กลายเป็นข้อมูลสำหรับคนตรวจได้ไหม
สิ่งที่ลอง
- โหลดและตรวจ Wisesight พร้อมใช้ split เดียวกันเพื่อเทียบโมเดลหลายแบบ
- เลือก TF-IDF + Logistic Regression ด้วย macro F1 เพราะชุดข้อมูลไม่สมดุล
- เพิ่ม confidence routing, question routing, error analysis และ synthetic review queue รอบ prediction
จากรีวิวไปถึงคิวให้คนดู
- 1
Wisesight / synthetic fixture → validate และ split
- 2
TF-IDF → Logistic Regression → label + score
- 3
confidence / question routing → dashboard และ human review
ตัวเลขที่บอกให้ระวัง
accuracy อย่างเดียวดูดีได้แม้ label ส่วนน้อยทำได้แย่กว่า ผมเลยใช้ macro F1 เป็นตัวเลือกหลัก และเก็บ error analysis ไว้ดูว่า mixed sentiment หรือข้อความที่ต้องอาศัยบริบททำให้โมเดลพลาดตรงไหน

ผลที่มีอยู่
โมเดล baseline ที่เลือกได้ macro F1 0.5731 จาก Wisesight และ report มี test reviews 4,012 รายการ โดยผิด 1,386 รายการ ตัวเลขนี้อธิบายการทำงานบน corpus นี้ ไม่ใช่ความแม่นยำของทุกธุรกิจ

สิ่งที่ยังไม่ควรสรุป
- offline demo ใช้ synthetic 10 fixtures กับ rule-based predictor จึงไม่ใช่ accuracy estimate
- label ของ Wisesight อาจไม่ตรงกับ taxonomy ของธุรกิจจริง และหนึ่งรีวิวถูกบังคับให้มี label เดียว
- monitoring ที่มีเป็น local synthetic demo ยังไม่ใช่ live production monitoring
ถ้าทำใหม่วันนี้
- เขียน business taxonomy และตัวอย่าง mixed sentiment ให้ชัดก่อนเลือก metric
- ทำ human review flow ให้เชื่อมกับ error categories มากกว่าแค่ threshold
- เปรียบเทียบโมเดลภาษาไทยที่ใหญ่ขึ้นบน split เดียวกันแบบเต็ม ไม่ใช้ debug run เป็น benchmark
โค้ดและเดโม
ใน repository มีวิธีรัน การทดสอบ และรายละเอียด implementation ฉบับเต็ม