# การสร้างแบบจำลองภาษา การฝังเชิงความหมาย เช่น Word2Vec และ GloVe ถือเป็นก้าวแรกของ **การสร้างแบบจำลองภาษา** - การสร้างโมเดลที่สามารถ *เข้าใจ* (หรือ *แสดงออก*) ถึงธรรมชาติของภาษาได้ในบางรูปแบบ ## [แบบทดสอบก่อนเรียน](https://red-field-0a6ddfd03.1.azurestaticapps.net/quiz/115) แนวคิดหลักของการสร้างแบบจำลองภาษาคือการฝึกโมเดลด้วยชุดข้อมูลที่ไม่มีการติดป้ายกำกับในลักษณะของการเรียนรู้แบบไม่มีผู้สอน (unsupervised learning) ซึ่งสำคัญมากเพราะเรามีข้อความที่ไม่มีการติดป้ายกำกับจำนวนมหาศาล ในขณะที่ข้อความที่มีการติดป้ายกำกับจะถูกจำกัดด้วยความพยายามที่เราสามารถใช้ในการติดป้ายกำกับได้ โดยส่วนใหญ่แล้ว เราสามารถสร้างแบบจำลองภาษาที่สามารถ **ทำนายคำที่หายไป** ในข้อความได้ เพราะการสุ่มปิดบังคำในข้อความและใช้เป็นตัวอย่างการฝึกสอนนั้นทำได้ง่าย ## การฝึกฝังเชิงความหมาย ในตัวอย่างก่อนหน้านี้ เราได้ใช้การฝังเชิงความหมายที่ผ่านการฝึกมาแล้ว แต่จะน่าสนใจมากหากเราได้เห็นว่าการฝังเหล่านั้นถูกฝึกอย่างไร มีแนวคิดหลายอย่างที่สามารถนำมาใช้ได้ เช่น: * **การสร้างแบบจำลองภาษาแบบ N-Gram** ซึ่งเราทำนายโทเค็นโดยดูจากโทเค็นก่อนหน้า N ตัว (N-gram) * **Continuous Bag-of-Words** (CBoW) ซึ่งเราทำนายโทเค็นตรงกลาง $W_0$ ในลำดับโทเค็น $W_{-N}$, ..., $W_N$ * **Skip-gram** ซึ่งเราทำนายชุดโทเค็นที่อยู่ใกล้เคียง {$W_{-N},\dots, W_{-1}, W_1,\dots, W_N$} จากโทเค็นตรงกลาง $W_0$ ![ภาพจากงานวิจัยเกี่ยวกับการแปลงคำเป็นเวกเตอร์](../../../../../translated_images/example-algorithms-for-converting-words-to-vectors.fbe9207a726922f6f0f5de66427e8a6eda63809356114e28fb1fa5f4a83ebda7.th.png) > ภาพจาก [งานวิจัยนี้](https://arxiv.org/pdf/1301.3781.pdf) ## ✍️ ตัวอย่างโน้ตบุ๊ก: การฝึกโมเดล CBoW เรียนรู้เพิ่มเติมได้ในโน้ตบุ๊กต่อไปนี้: * [การฝึก CBoW Word2Vec ด้วย TensorFlow](CBoW-TF.ipynb) * [การฝึก CBoW Word2Vec ด้วย PyTorch](CBoW-PyTorch.ipynb) ## สรุป ในบทเรียนก่อนหน้านี้ เราได้เห็นว่าการฝังคำทำงานได้อย่างน่าอัศจรรย์! ตอนนี้เรารู้แล้วว่าการฝึกฝังคำไม่ใช่เรื่องซับซ้อนมากนัก และเราควรจะสามารถฝึกฝังคำของเราเองสำหรับข้อความเฉพาะทางได้หากจำเป็น ## [แบบทดสอบหลังเรียน](https://red-field-0a6ddfd03.1.azurestaticapps.net/quiz/215) ## การทบทวนและการศึกษาด้วยตนเอง * [บทเรียนอย่างเป็นทางการของ PyTorch เกี่ยวกับการสร้างแบบจำลองภาษา](https://pytorch.org/tutorials/beginner/nlp/word_embeddings_tutorial.html) * [บทเรียนอย่างเป็นทางการของ TensorFlow เกี่ยวกับการฝึกโมเดล Word2Vec](https://www.TensorFlow.org/tutorials/text/word2vec) * การใช้เฟรมเวิร์ก **gensim** เพื่อฝึกฝังคำที่ใช้บ่อยที่สุดในโค้ดเพียงไม่กี่บรรทัด อธิบายไว้ [ในเอกสารนี้](https://pytorch.org/tutorials/beginner/nlp/word_embeddings_tutorial.html) ## 🚀 [งานที่ได้รับมอบหมาย: ฝึกโมเดล Skip-Gram](lab/README.md) ในห้องปฏิบัติการ เราขอท้าให้คุณปรับเปลี่ยนโค้ดจากบทเรียนนี้เพื่อฝึกโมเดล Skip-Gram แทน CBoW [อ่านรายละเอียด](lab/README.md) --- **ข้อจำกัดความรับผิดชอบ**: เอกสารนี้ได้รับการแปลโดยใช้บริการแปลภาษา AI [Co-op Translator](https://github.com/Azure/co-op-translator) แม้ว่าเราจะพยายามให้การแปลมีความถูกต้อง แต่โปรดทราบว่าการแปลอัตโนมัติอาจมีข้อผิดพลาดหรือความไม่แม่นยำ เอกสารต้นฉบับในภาษาดั้งเดิมควรถือเป็นแหล่งข้อมูลที่เชื่อถือได้ สำหรับข้อมูลที่สำคัญ ขอแนะนำให้ใช้บริการแปลภาษาจากผู้เชี่ยวชาญ เราไม่รับผิดชอบต่อความเข้าใจผิดหรือการตีความที่ผิดพลาดซึ่งเกิดจากการใช้การแปลนี้