หากสงสัยว่า Markov model คืออะไร แล้วมันใช้ทำอะไรได้บ้าง วันนี้เราจะมาดูกันครับ (หากผิดพลาดตรงไหนบอกได้เลยนะครับ)
- ประโยคตัวอย่าง — สมมติว่าผมมีประโยคอยู่ประโยคนึงว่า
เรามาทำความเข้าใจกับประโยคนี้กันก่อนครับ ก่อนอื่นเลยลองตัดคำมันออกมาก่อนจะได้ดังนี้
2. key ในประโยค — คำที่ตัดแล้วแต่ละคำเราเรียกว่า token, โดยคำที่ไม่ซ้ำกันเลยเราจะเรียกว่า key นะครับ ดังนั้นจะเห็นได้ว่า เรามีทั้งหมด 8 token และ 5 key ครับ
คราวนี้ลองใส่สีให้แต่ละคำโดยแยกตาม key กันหน่อยครับ
3. key พิเศษ — คราวนี้เรามาเติม key พิเศษที่แอบซ่อนอยู่ในประโยคนี้กันหน่อยครับ นั่นคือ *START* กับ *END* เพื่อบอกว่าตรงไหนคือจุดเริ่มต้นของประโยคแล้วอันไหนคือจุดจบของประโยค
เรียบร้อยยย คราวนี้เราก็เข้าใจประโยคตัวอย่างของเราแล้ว มาเริ่มทำความเข้าใจ markov model จากประโยคนี้กันดีกว่าครับ
Markov model คือ model ที่บอกว่า
State ในอนาคต เกิดจาก State ปัจจุบัน ไม่ใช่จากเหตุการณ์ที่เกิดก่อนหน้า
พอเอามาใช้กับประโยคตัวอย่างของเราจะโยงได้ประมาณนี้ครับ
ดังนั้นแปลว่า คำว่า “ข้าว” คำที่สอง เกิดจากคำว่า “หิว” คำที่หนึ่ง เราลองมาจับคู่คำที่จะเกิดกันหน่อยดีกว่าครับ จะได้เห็นชัดขึ้น
อ่าอาจจะดู งง ๆ จัดรูปมันซักหน่อย
จากรูปด้านบน เราแค่จัดรูปให้มันดูง่ายขึ้น โดยจับกลุ่ม key ที่เหมือนกันไว้ด้วยกัน พอจะเห็นภาพไหมครับว่า จากคู่ key-value ที่เราจัดนี้ เราสามารถสร้างประโยคใหม่ได้
จากรูป เราจะสามารถย้อนรูปกลับไปเป็นประโยคตัวอย่างได้ โดยเริ่มจาก *START* เราก็มองดูว่า *START* มันจะเกิดอะไรต่อได้บ้าง ก็จะเห็นว่ามันมีแค่ตัวเลือกเดียว นั่นคือ *START* → [ หิว ] ต่อมาเราก็ขยับมาดู state ต่อไปครับ
ต่อมาคำว่า หิว จะเกิดคำไหนต่อได้บ้าง จะเห็นว่า หิว → [ ข้าว, น้ำ, ขนม, ผลไม้ ] เป็นได้ตั้ง 4 คำ นี่แหละครับที่น่าสนใจ เพราะว่าเราจะเลือกคำไหนก็ได้ใน 4 คำ แบบสุ่ม ซึ่งแน่นอนว่าเราอาจจะเลือกคำว่า ผลไม้ ที่จะไปจบที่ *END* เลยก็ได้ โดยโอกาสการเกิดที่ 25% หรือ 1/4 นั่นเองครับ ถ้าหากว่าเราสุ่มแล้วไม่ได้เลือกคำที่เหมือนกับประโยคเดิม นั่นแปลว่า เราได้สร้างประโยคใหม่จากโครงสร้างของประโยคเดิมขึ้นมาด้วย Markov model แล้ว บร๊ะ เยี่ยมไปเลย
เรียบร้อย เราได้เรียนรู้วิธีการสร้าง markov model ไปแล้ว นั่นคือ state ในอนาคตจะขึ้นอยู่กับ state ปัจจุบันเท่านั้น แล้วจริง ๆ ไอข้อความที่เราเอามาใช้ในการสร้าง model เราก็จะเรียกมันว่า corpus
ตัวอย่างโค้ด
Code แบบเต็ม ๆ
ส่งท้าย
ลองจินตนาการดูซิครับว่าถ้าเรามี corpus ขนาดใหญ่กับ markov model เราจะสามารถสร้างประโยคโต้ตอบอย่างง่าย ๆ ได้ด้วย
สำหรับบทความนี้ก็คงจะจบลงเพียงเท่านี้ก่อนนะครับ บทความหน้าอาจจะหยิบเรื่อง markov model พร้อมตัวอย่าง code มาเล่าสู่กันฟังนะครับ สำหรับวันนี้ สวัสดีคร้าบบ