site-logo

ทำไม NLP ภาษาไทยถึงไม่โตสักที

by arnondora on May 02, 2018

Image from Pexles

วันนี้เหมือนมาบ่นหน่อยละกัน จากที่ผมได้ทำ Project เกี่ยวกับงานในด้านนี้มาสักปีนึงได้แล้ว ตอนแรกที่มีภาพใส ๆ น่ารัก ๆ ของงานนี้ ว่า NLP ภาษาไทยมันก็ไปได้เรื่อย ๆ แหละ แต่พอไปอ่าน Paper ของภาษาอื่น ๆ เท่านั้นแหละ ก็แทบจะอุทานว่า เ_ย !! นี่ NLP ในภาษาเรามันล้าหลังได้ขนาดนี้เลยเหรอ อย่างเรื่องของ Sentiment Analysis ที่ภาษาอังกฤษทำกันได้นานแล้ว แถมตอนนี้ยังทำให้เครื่องอ่านได้เก่งขึ้นมาก ๆ แล้ว ภาษาไทยเราตอนนี้แค่เรื่องของการตัดคำยังไม่สามารถทำให้ตัดได้อย่างแม่นยำมากเลย วันนี้เลยจะมานำเสนอว่า ทำไม NLP ภาษาไทยถึงไม่ไปไหนสักที

ธรรมชาติของภาษาไทย

ถ้าเราเป็นคนใช้ภาษาไทยทั่ว ๆ ไป เราจะเห็นว่าภาษาไทยเป็นภาษาที่มีไวยกรณ์ที่เรียบง่าย แค่เอาคำมาต่อ ๆ กันก็สามารถสร้างประโยคได้แล้ว เราเรียกภาษาพวกนี้ว่า Analytic Language เมื่อเทียบกับภาษาอื่นที่ต้องเติม S เมื่อเราสื่อถึงของหลายสิ่งอะไรทำนองนั้น หรือแม้กระทั่งการเรียงลำดับคำที่มีความแน่นอนนั่นคือ ประธาน-กริยา-กรรม (SVO) ดังตัวอย่างดังนี้

ฉันกินเค้ก

จากประโยคด้านบน ทำให้เราเห็นว่า ภาษาไทยเรามีการเรียงประเภทของคำที่ชัดเจนในประโยคที่ไม่ใหญ่มาก จากตัวอย่าง เอ้า! เอาวิญญาณความเป็นอาจารย์วิชาภาษาไทยมาลงร่าง !! ไหน 3 คำนี้ แต่ละคำเป็นคำประเภทไหนบ้าง ??

ฉันเป็นประธาน กินเป็นกิริยา และเค้กเป็นกรรม

แต่ภาษาไทยเราชอบใช้คำที่หลากหลายมาขยาย เช่น

ฉันกินเค้กรสช็อคโกแลค

เราจะเห็นได้ว่า เวลาเราต้องการที่จะสื่อความหมายเจาะจงมากขึ้น วิธีง่าย ๆ เลยก็คือเพิ่มคำมันเข้าไป ก็ทำให้เราสามารถสื่อความหมายที่เจาะจงมากขึ้นได้ซะงั้น

ปัญหาต่อมาในเรื่องของธรรมชาติในภาษาเราคือ ภาษาไทยเราไม่มีการแบ่งขอบเขตของคำและประโยคที่ชัดเจน เช่น ตากลม, มากว่า* และเคสที่คุยกันอย่างตลกกันในวงคือ หีบนอก

ตากลม -> ตาก|ลม หรือ ตา|กลม
มากว่า -> มา|กว่า หรือ มาก|กว่า
หีบนอก -> หีบ|นอก หรือ หี|บน|อก

ตัวอย่างที่ 3 อาจจะพีคไปหน่อยแต่ก็นะ ก็เป็นอีกตัวอย่างที่ตลกดี ทีนี้ถามว่า เวลาเราใช้ภาษาจริง ๆ เราตีความมันยังไงละ ตัวอย่างเช่นคำว่า ตากลม ถ้าเราลองนึกดูดี ๆ ถ้าเราลองพูดว่า “ป ปลา ตากลม” ในกรณีนี้ เราจะสามารถสร้างขอบเขตขอบคำได้ดังนี้

ป​|ปลา|ตา|กลม

หรือถ้าเราพูดว่า “นอนตากลมอยู่ริมทะเล” เราก็จะสามารถสร้างขอบเขตของคำได้ดังนี้

นอน|ตาก|ลม|อยู่|ริม|ทะเล

จะเห็นได้ว่า การที่ก้อนของคำคำเดียวกันอยู่ในประโยค หรือบริบทที่ต่างกัน ทำให้คำนั้นสามารถเปลี่ยนรูปแบบของการสร้างขอบเขตได้ ต่างจากภาษาอังกฤษที่มีการใช้การเว้นวรรคระหว่างคำ ทำให้เราสามารถแยกขอบเขตของคำได้อย่างชัดเจนเช่น

I love you.

จากประโยคนี้ เราไม่จำเป็นต้องเอาวิญญาณความเป็นอาจารย์ภาษาอังกฤษมาแยกคำเลย เพราะเราก็เห็นอยู่โต้ง ๆ แล้วว่า คำมันถูกวรรคมาให้เราอย่างสวยงามแล้ว แทบจะใช้คำสั่ง Tokenisation ในภาษา Programming ต่าง ๆ แยกตามวรรคได้เลยด้วยซ้ำ

แล้วเราใช้กฏอะไรในการตัดคำภาษาไทย ?

อันนี้เป็นคำถามที่ผมไปถามกับรุ่นพี่ท่านหนึ่งมา (เอาเท่าที่จำได้ละกัน) เขาก็เลยอธิบายโดยแบ่งเป็นข้อ ๆ ดังนี้

  1. ตัดตามคำที่เล็กที่สุด หมายถึงให้เน้นไปที่การตัดข้อความให้ออกมาเป็นหน่วยของคำที่เล็กที่สุด โดยยังคงมีความหมายอยู่ เช่น ฉันพาหมาไปเดินเล่น ก็จะได้ออกมาเป็น ฉัน|พา|หมา|ไป|เดิน|เล่น เราจะเห็นว่า คำว่า เดินเล่น ก็ถูกแยกออกจากกัน ทำให้ไปที่ข้อที่ 2
  2. ตัดตามคำที่เกิดขึ้นคู่กันและคำผสม เพราะบางครั้ง เราจะเห็นว่าการตัดโดยใช้กฏในข้อ 1 ทำให้คำบางคำที่ควรจะอยู่ด้วยกันกลับถูกแยกออกจากกัน เพราะทั้ง 2 คำก็มีความหมายในตัวเองทั้งคู่ แต่เมื่อรวมกันแล้วทำให้เกิดอีกความหมายนึงได้เช่นคำว่า เดินเล่น
  3. ตัดตามภาษาอื่น หมายถึงการตัดคำโดยอ้างอิงจากภาษาอื่น

จากในระดับของคำ เราลองมองขึ้นมาให้สูงขึ้นหน่อย เหมือนตอนเราเรียนภาษาอังกฤษตอนเด็ก ๆ เราก็จะเริ่มจากคำแล้วก็เริ่มมาที่เรื่องของ ไวยกรณ์

ถ้าเราลองสังเกตดี ๆ เราจะเห็นว่า ภาษาไทยเราสามารถเอาคำมาต่อ ๆ กันเพื่อสร้างคำที่มีความหมายใหม่ได้อย่างง่ายดาย ทำให้สามารถเกิดความกำกวมได้อย่างมหาศาล เช่นคำว่า กาต้มน้ำ คำนี้จำได้เลย ตอนเด็ก ๆ คือ โคตร งง ว่านี่คือประโยคหรือคำฟร๊ะ !! เพราะตอนนั้นผมรู้ว่า

กาเป็นประธาน, ต้มเป็นกิริยา และน้ำเป็นกรรม

อ้าวเนี่ยมันครบแล้วนะครับ ประธาน กิริยา กรรม แล้วทำไมนี่ไม่ใช่ประโยคละครับคุณครู ??

พอโตมาหน่อยความเป็นเจ้าหนูจำไมก็ลดลง ก็ไม่รู้เหมือนกัน แต่มันก็คงมี Common Sense ที่มากขึ้นมั่งว่า กา เนี่ยมันต้มน้ำเองไม่ได้ ก็เลยเข้าใจในที่สุดว่า คำว่า กาต้มน้ำ เป็น กาสำหรับต้มนำ้นั่นเอง งงม่ะ !! เออนี่ก็งง 😵

ยกระดับขึ้นมาอีกหน่อย ลองพิจารณาประโยคนี้ “แก ! ไปเก็บมันซะ” น่าจะเคยได้ยินกันจากในหนังสักเรื่องแหละ (พึ่งดู John Wick มา มันจะอินหน่อย ๆ) ทีนี้ถ้าเราเป็นเรา (เออสิก็เราก็ต้องเป็นเราอยู่ละ แล้วจะเป็นใคร) เราจะเข้าใจความหมายของประโยคนี้ทันที

แต่ถ้าเราทำตัวให้ฉลาดน้อยลงหน่อย ตีบวกความเป็นเจ้าหนูจำไมเข้าไป +10 🧐 เราจะ งง มากว่า คำว่า เก็บ แปลว่าอะไร เหมือนเก็บผ้ารึเปล่า หรือยังไง เชื่อว่าถ้าเป็นเด็กจริง ๆ ก็ไม่น่าจะตีความว่าให้ไปฆ่าได้หรอก

หรือคำว่า มัน คือ 🍠 นี้รึเปล่า ? หรือถ้าเป็นสรรพนาม แล้วมันเป็นใคร ???? งงโผด ทำให้เราต้องตีความจากประโยคข้างเคียง หรือทั้งย่อหน้าเลยก็ได้

จนตอนนี้เราก็ได้พูดถึงในระดับของ คำ ขึ้นมาเรื่อย ๆ จนถึงประโยคกันแล้ว เราลองมาดูกันในระดับที่ใหญ่ขึ้นดีกว่าว่า แล้วในระหว่างประโยคเนี่ยมันมีปัญหาอะไรอีก

เราลองดูจากที่อ่านมาทั้งหมดก็ได้ จะสังเกตเห็นว่า เวลาผมจบประโยคผมไม่ได้ใส่อะไรเพื่อบอกเลยว่า นี่ผมจบประโยคแล้วนะ อย่างมากก็คือจะมี การเว้นรรค เพื่อเป็นการบอกว่าให้พักหายใจ

มันเลยกลับมาเป็นปัญหาคล้าย ๆ กับการแยกคำเมื่อกี้เลย ว่าเราจะแยกประโยคออกจากกันได้อย่างไร ?

ถ้าเป็นภาษาอังกฤษ เวลาเราเขียนจบประโยค เราก็ต้องใส่ Full-Stop หรือที่เราวาดจุด เพื่อเป็นการแสดงว่าเราจบประโยคแล้ว ที่ตอนเด็ก ๆ เรามักจะโดนคุณครูภาษาอังกฤษบ่นประจำว่า ทำไมจบประโยคแล้วไม่ใส่ Full-Stop จนทุกวันนี้ก็ยังชอบลืมใส่ประจำ แต่ก็เอาเถอะ ออกทะเลละ

กลับมาที่คำถามเมื่อครู่กัน ถ้าเราลองใช้ Common Sense เวลาเราจะแยกประโยค เราน่าจะแยกออกมาได้ 2 แบบ

แบบแรก เราน่าจะแยกจาก โครงสร้างของไวยกรณ์ ตามที่เราบอกว่า ประโยคมันต้องมี ประธาน กิริยา และ กรรม และอาจจะมีคำอื่น ๆ มาขยาย โดยเราจะเน้นไปที่การหาความสัมพันธ์ระหว่างประโยคแรก ไปถึงประโยคต่อไป อาทิเช่น

อย่างที่บอกไปในปีที่แล้วว่า ชีวิตผมมันไม่เคยหยุดนิ่ง ปีนี้ไม่ต่างเลย แต่ได้รู้เพิ่มว่า ถึงแม้เราจะอยากให้มันหยุดชิว ๆ แต่เราก็หยุดไม่ได้แน่นอน เพราะเราชินไปแล้วไง แต่เพราะความไม่หยุดนี่เองที่ทำให้เราได้เจอคนใหม่ ๆ ได้สกิลใหม่ ๆ ติดตัวมาเยอะอย่างไม่น่าเชื่อ

เราลองมาแยกประโยคด้วยไวยกรณ์กัน

[อย่างที่บอกไปในปีที่แล้วว่า] [ชีวิตผมมันไม่เคยหยุดนิ่ง ปีนี้ไม่ต่างเลย แต่ได้รู้เพิ่มว่า] [ถึงแม้เราจะอยากให้มันหยุดชิว ๆ แต่เราก็หยุดไม่ได้แน่นอน เพราะเราชินไปแล้วไง] [แต่เพราะความไม่หยุดนี่เองที่ทำให้เราได้เจอคนใหม่ ๆ ได้สกิลใหม่ ๆ ติดตัวมาเยอะอย่างไม่น่าเชื่อ]

อีกแบบเราเรียกว่า ปริจเฉท คือเราจะไม่สนใจความสัมพันธ์ระหว่างประโยค เราพยายามที่จะแตกมันออกมาเป็นประโยคย่อย ๆ ให้ได้

[อย่างที่บอกไปในปีที่แล้วว่า] [ชีวิตผมมันไม่เคยหยุดนิ่ง ปีนี้ไม่ต่างเลย แต่ได้รู้เพิ่มว่า] [ถึงแม้เราจะอยากให้มันหยุดชิว ๆ] [แต่เราก็หยุดไม่ได้แน่นอน] [เพราะเราชินไปแล้วไง] [แต่เพราะความไม่หยุดนี่เองที่ทำให้เราได้เจอคนใหม่ ๆ ได้สกิลใหม่ ๆ ติดตัวมาเยอะอย่างไม่น่าเชื่อ]

จะเห็นว่าการตัดประโยคแบบแรก จะให้ประโยคที่มีขนาดเฉลี่ยที่ใหญ่กว่าแบบที่ 2 มาก แต่จนถึงตอนนี้ เวลาเอาไปให้นักภาษาศาสตร์แยกให้ ก็ยังไม่รู้อยู่ดีว่า ต้องใช้แบบไหนถึงจะดีกว่า

อัพขึ้นมาสู่อีกจุดนึงคือ เรื่องของการตีความบริบท ที่ต้องอาศัยความรู้และประสบการณ์เป็นอย่างมาก ขนาดบางทีคนเองมันยัง งง กันเลย แล้วเครื่องจะเหลือเหรอ !!! ลองมาดูตัวอย่างกัน

ถ้าเป็นตอนกลางวัน แล้วแฟนถามว่า ไปไหนมา ? ความหมายก็น่าจะแค่ถามว่า เมื่อกี้น่ะไปไหนมา แต่ถ้าตกกลางคืนคำถามเดียวกันถูกถามออกมาจากคนเดียวกัน ความหมายมันอาจจะเปลี่ยนไปก็ได้ว่า มึงตาย ! 🤬

ภาษาไทยหรือปลาไหล

แน่นอนความว่า ณ ปัจุบบัน ภาษาไทย ยังไม่จัดเป็นภาษาที่ตายแล้ว ซึ่งทำให้มันดิ้นอยู่ตลอดเวลาทุกวันที่เราหายใจ

คำบางคำที่เมื่อวานอาจจะไม่มี วันนี้มันอาจจะมีแล้วก็ได้ ทำให้ผู้ใช้นั่นก็ต้องติดตาม และวิวัฒน์ไปตามภาษา คำไหนที่ไม่มีคนใช้มันก็จะหายไป คำไหนที่คนคิดขึ้นมาแล้วมันฮิต มันก็จะอยู่ของมันต่อไปเรื่อย ๆ ตราบที่ยังมีคนใช้มันอยู่

งานที่ผมทำมันจะเกี่ยวกับการใช้ภาษาไทยในสื่อสังคมออนไลน์ จัดว่าเป็นสถานที่ที่มีการดิ้นของภาษาโคตรจะสูง ไม่รู้จะสูงไปไหน มีคำเกิดใหม่น่าจะในระดับวินาทีกันเลยทีเดียว โดยหลัก ๆ จากที่สังเกตมา เราจะสามารถแยกประเภทของการเกิดขึ้นและดับไปได้ดังนี้

  • พิมพ์ผิด อันนี้นี่สุดจริง มันมาได้ยังไงไม่รู้ จนกระทั่งต้องลองพิมพ์เองถึงจะเข้าใจ เช่น เมพ ที่มาจากคำว่า เทพ ถ้าเราลองดูที่ Keyboard ของเรา เราจะเห็นว่าตัว ม กับ ท มันติดกัน ทำให้คนพิมพ์ผิดเป็นคนนนี้ออกมาได้ นอกจากนั้นยังมีตัวอย่างอย่างคำว่า ครัช ที่มาจากคำว่า ครับ เป็นต้น
  • เหตุการณ์บางอย่าง อันนี้มันมักจะมาพร้อมกับเหตุการณ์บางอย่าง เช่นกระแสของแม่การะเกตุ ที่ทำให้คำว่า ออเจ้า กลับมาเป็นคำที่ถูกใช้ และพูดถึงกันอย่างทั่วบ้านทั่วเมืองไปหมด หรือแม้แต่คำว่า เสือดำ ก็เช่นกัน
  • คำเลียนเสียงธรรมชาติ บางทีไม่รู้เหมือนกันว่าคนอื่นเป็นมั้ย แต่ผมชอบพิมพ์คำพวกนี้ลงไปเพื่อให้ผู้อ่านสามารถ เข้าใจสารที่ผมต้องการจะส่งได้มากขึ้น เช่น “แกมันนกจิ๊บ ๆ” คำว่า จิ๊บ ก็เป็นการเลียนเสียงร้องของนก 🐥 จริง ๆ เพื่อเป็นเหมือนการย้ำว่า แกมันนก !!!
  • การทำให้ภาษาง่ายขึ้น อันนี้เราน่าจะเจอกันอย่างรุนแรงในสื่อสังคมออนไลน์ โดยเฉพาะในยุคที่คนมักใช้งานผ่านโทรศัพท์มือถือที่ การพิมพ์อาจจะไม่สะดวกเท่ากับบนเครื่องคอมพิวเตอร์ที่มี Keyboard ทำให้ต้องมีการลดรูปเพื่อให้พิมพ์ได้ง่ายขึ้น เช่น มะรุ มาจากคำว่า ไม่รู้ เป็นต้น
  • ใช้อักษรซ้ำ ก็น่าจะเป็นอีกอันที่เรามักจะเจอกันบ่อยเช่นกัน เช่น โว้ยยยยยยยยยย ที่จริง ๆ แล้วพิมพ์แค่คำว่า โว้ย โดยที่ไม่ต้องมี ย เยอะได้ขนาดนี้ อารมณ์เหมือนยิ่งเยอะยิ่งร้องยาวขึ้น แสดงถึงความเกี้ยวกราดมากขึ้นมั่ง
  • คำประชด ผมนี่เจอเยอะมาก เพราะงานที่ทำต้องเข้ามาใช้ตรงนี้ด้วย เช่นคำว่า ดีออก มาจากคำว่า อีดอก เพื่อเลี่ยงพวกระบบตรวจคำที่ไม่เหมาะสมที่ใช้ Dictionary ในการตรวจจับ

ตอนที่ทำตัว Project คือต้องกรองภาษาเหล่านี้ให้มันอยู่ในรูปปกติซะก่อน ซึ่งเอาในหน้างานตอนทำแล้วเนี่ย !!! อย่าให้พูดเลย มันไม่ง่ายอย่างที่ทุกคนคิดแน่นอน นี่ยังไม่นับพวกภาษาสก๊อย ภาษาลู อีกนะแกย์ เก๋ ๆ 🙈

เราไม่มีข้อมูลที่สามารถนำมาใช้ได้

ปัญหาแรกที่พวกผมเจอตอนทำ Project นี้คือ “ตรูจะเอาข้อมูลมาจากไหน ?” จนสุดท้ายต้องเขียน Tool สำหรับ Tag กัน บวกกับต้องขอ IRB เพื่อให้คนอื่นเข้ามาทำได้ และกว่าจะหาคนมาช่วยทำได้อีก คือมันทำให้ใช้เวลาในการสร้าง Dataset นานมาก ๆ ตอนนั้นน่าจะเป็นเทอมเลยมั่ง

เพราะข้อมูลถือเป็นสิ่งท่ีสำคัญมากในการทำ NLP ในยุคปัจจุบัน ถ้าไม่มี ข้อมูลมาให้ มันก็เหมือนกับ เรานั่งเทียนอ่านหนังสือไปเรื่อย ๆ เราอาจจะรู้เรื่องได้นะ แต่ก็น่าจะใช้เวลานานกว่า มีคนมานั่งสอนเราแน่ ๆ

สาเหตุที่เปรียบเทียบกันแบบนี้เป็นเพราะว่า ในการทำ NLP หลัก ๆ มันก็คือการที่เราสอนเครื่องให้เข้าใจ และตีความภาษาคนได้นั่นเอง

ปัญหาที่เราเจอกันในปัจุบันคือ ไม่ค่อยมีคลังข้อมูลของภาษาไทยมากนัก จะมีก็เช่น ORCHID จาก NECTEC ขนาด 3 หมื่นประโยค และ InterBEST อันนี้จำจำนวนไม่ได้

จากจำนวนข้อมูลที่ได้ยกตัวอย่างมาเมื่อครู่ ถามว่าจริง ๆ แล้วมันยังมีอีกมั้ย ผมเชี่อว่า มันยังมีข้อมูลอีกเยอะลอยอยู่บนโลกของเรา แต่ปัญหาของมันคือ การที่จะได้มาซึ่งคลังข้อมูลมันต้องใช้ทั้งแรงกาย เงิน และเวลามหาศาลในการสร้างสักคลังข้อมูลนึง ทำให้หลาย ๆ คลังข้อมูลก็ไม่สามารถเอามาปล่อยให้โหลดกันได้ เพราะติดเรื่องของทุนนั่นเอง

อีกสาเหตุที่ผมเดาว่ามันน่าจะทำให้มีข้อมูลน้อยนอกจากเรื่องเงิน ๆ ทอง ๆ แล้วก็คือ มันมีคนน้อยคนนักที่จะผันตัวลงมาทำงานที่เป็น Foundation ของ NLP ภาษาไทย หลาย ๆ คนเน้นไปทำงานที่เป็น Application ซะหมด ทำให้คลังข้อมูลที่เป็นคลังข้อมูลพื้นฐานมีจำนวนที่ไม่ได้มากเลย

สรุป

สาเหตุที่ NLP ในภาษาไทยมันไม่ได้ไปไหนสักทีเนี่ย คร่าว ๆ เอาจากไอเดียของผมแล้ว มันก็มาจาก 3 สาเหตุ (จริง ๆ อาจจะมีอีกแหละ แต่ตอนนั้นคิดมาประมาณนี้แหละ) เริ่มจากธรรมชาติของภาษาไทยที่ มันง่ายแต่มันก็ยากในตัวของมันทำให้เรา งง ไปตาม ๆ กัน แม้แต่คนยัง งง เลย แล้วเครื่องจะเหลือเหรอ 😂 ตามมาด้วยภาษาที่ดิ้นเป็นปลาไหล คำใหม่เกิดขึ้นเรียกได้ว่า แทบจะทุกวินาทีเลยมั้ย และสุดท้าย ไม่ว่าเราจะมีภาษาที่ง่ายหรือยากแค่ไหน แต่ถ้าเราไม่มีข้อมูลที่สามารถดึงมาทำงานได้แล้วละก็ งานมันก็ไม่เกิดสักทีแหละฮ่ะ ทำให้งานที่ต้องเอาไปใช้ต่อ ก็ไม่แข็งแกร่งดั่งท่านชัชชาติสักที 😱 ที่เอามาทำ Chatbot หรือระบบแปลภาษาโน้นนี่นั่นก็เอามาทำกัน โดยไม่ได้สนใจ Foundation กันเลย ทำให้งานที่ออกมา มันก็ทำได้ไม่ดีนัก เพราะรากฐานที่ยังไม่แข็งแกร่ง แต่เราก็ดันเอาของมาต่อให้มันล้มครือซะงั้น 🤯

ปล.1 บทความนี้เขียนตอนที่กำลังเครียดมันอาจจะไม่สนุกเท่ากับบทความอื่น ๆ

ปล.2 บทความนี้เกิดจากความเห็นส่วนบุคคลทั้งผม เพื่อน ๆ และมุมมองที่เห็นผ่านการเข้ามาทำ Project ในด้านนี้ราว ๆ 1 ปีเท่านั้น ความรู้หรืออะไรที่เขียนมาอาจจะยังไม่ครบ ก็ถ้ามีเพิ่มก็ Comment กันเข้ามาได้

อ้างอิง

อัพเดท เนื่องจากเรื่องนี้เกิดจากบทสนทนาของผมและรุ่นพี่ท่านหนึ่งที่ได้เล่าเรื่องนี้ให้ฟัง โดยที่ไม่รู้มาก่อนว่าพี่เขาก็เอามาจากอ้างอิงด้านบนนี้ ผมได้คุยกับเจ้่าของบทความด้านบนเป็นที่เรียบร้อยแล้วนะครับในการ Cite บทความนี้

Share this article to social network?
มาลองใช้ StaticQuery ใน Gatsby v2 กันBuilding Blazing-fast static site with Gatsby : Styling a Component EP.2Building Blazing-fast static site with Gatsby : Introduction EP.1How to Hide Your Porn and Sensitive Data

Leave a comment?

Name :
Comment :
Post a comment
Loading Comment(s)
FacebookTwitterGoogle+Email
© 2014-2018 Arnon Puitrakul all right reserved.Code with by @arnondora