ทำไมชื่อตัวละครถึงเพี้ยน — และ msg แก้ยังไง

ปัญหาเดียวที่ทำให้คนเลิกอ่านนิยายแปล AI — พร้อมตัวอย่างจริงจาก Beware of Chicken และวิธีที่ msg ล็อกชื่อได้ตลอดทั้งเรื่อง

ปัญหา: ชื่อตัวเอกเพี้ยนระหว่างทาง

เมื่อ AI แปลนิยายยาว ๆ (50+ ตอน) ชื่อตัวละครมักเริ่มเพี้ยนตั้งแต่ตอนที่ 5-10 เพราะโมเดลไม่มี "หน่วยความจำ" ว่าตอนที่แล้วแปลชื่อนี้ว่าอะไร — มันแปลใหม่ทุกตอนโดยดูจาก context ของตอนนั้น ๆ

ตัวอย่างจริง: "Lu Ri" ใน Beware of Chicken

ต้นฉบับภาษาอังกฤษมีตัวเอกชื่อ "Lu Ri" — แค่ชื่อเดียว Google Translate แปลได้ 4 แบบ ในตอนเดียว:

  • "Lu Ri" (ค้างอังกฤษ)
  • "ลู่รี"
  • "ลูรี"
  • "ลูริ"
  • "หลู่ รื่อ"

ในขณะที่ msg แปลเป็น "หลู่ รื่อ" คงที่ทั้ง 6 ครั้งที่ปรากฏในตอน — เพราะคลังคำล็อกไว้ตั้งแต่ต้น

ตัวอย่างอื่น ๆ ที่พบในการทดสอบเดียวกัน

  • "Jin Rou" → Google: "Jin Rou" / "ค้างอังกฤษ" / "โลกจินโหรว" (ผิดความหมาย) · msg: "จิน โร่ว" คงที่ 9 ครั้ง
  • "Cloudy Sword Sect" → Google: "สำนัก Cloudy Sword" (อังกฤษค้าง) · msg: "สำนักดาบเมฆา"
  • "sect" → Google: ปน "นิกาย" / "สำนัก" (9 vs 1 ครั้ง) · msg: "สำนัก" คงที่

ทำไม AI ถึงเพี้ยน

มี 3 สาเหตุหลัก:

  • ไม่มีความจำระหว่างตอน — โมเดลแปลแต่ละตอนแยกกัน ไม่รู้ว่าตอนที่แล้วแปลชื่อนี้ว่าอะไร ตัดสินใจใหม่ทุกครั้ง
  • คำอังกฤษหลายเสียงหลายความหมาย — "Lu" อาจเป็นชื่อ หรือคำอื่น (เช่น "ลู่" ในจีน) "Ri" อาจเป็น verb หรือนาม โมเดลเดาตาม local context ไม่ใช่ตาม "ชื่อตัวเอก"
  • โทเค็นภาษาจีน/ญี่ปุ่น — ชื่อในนิยายจีน/ญี่ปุ่นที่ทับศัพท์ด้วยอักษรโรมัน (Pinyin/Romaji) มักถูกตีความเป็นคำอังกฤษ ไม่ใช่ชื่อ

msg แก้ยังไง: คลังคำ

เมื่อคุณนำเข้าเรื่องใหม่ ระบบจะแนะนำชื่อที่พบบ่อยในตอนแรก (เรียงตามความถี่ top-40) คุณตรวจแล้ว "ยืนยัน" ว่าแต่ละชื่อแปลว่าอะไร — แค่นี้:

  • Lu Ri → หลู่ รื่อ
  • Jin Rou → จิน โร่ว
  • Cloudy Sword Sect → สำนักดาบเมฆา

ทุกครั้งที่ AI แปลตอนถัดไป ระบบจะ inject คลังคำเข้า system prompt ทันที — บอก AI ว่า "ชื่อเหล่านี้แปลว่าอย่างนี้เสมอ ห้ามเปลี่ยน" ผลคือชื่อคงที่ทั้งเรื่อง แม้แต่ข้าม 60-100+ ตอน

ทำไม DeepL / Google Translate ทำไม่ได้

DeepL Pro มี glossary ได้ — แต่จำกัดจำนวนคำ และต้องส่งเป็นไฟล์ทีละ lot ไม่ได้ persistent per-chapter context Google Translate ไม่มี glossary API สำหรับผู้ใช้ทั่วไป

msg เก็บคลังคำใน database ต่อเรื่อง (RLS owner-scoped) — ทุกตอนที่แปลจะ load glossary ของเรื่องนั้นมา inject ให้อัตโนมัติ ไม่ต้องส่งซ้ำ

แก้ชื่อในคลังคำทีหลังได้ไหม

ได้ — ถ้าคุณเห็นว่า msg แปลชื่อผิด ก็แก้ในคลังคำ แล้วเลือก "อัปเดตตอนที่มีคำนี้" — ระบบจะ re-enqueue เฉพาะตอนที่คำนั้นปรากฏ (เก็บค่าแก้แยกจากค่าแปล เพื่อไม่ให้โดนเรียกเก็บซ้ำ)