# การประมวลผลภาษาธรรมชาติ(หรือเรียกว่า NLP)

<CourseFloatingBanner
    chapter={1}
    classNames="absolute z-10 right-0 top-0"
/>

ก่อนจะเข้าเนื้อหาส่วนโมเดล Transformer เรามาดูกันในภาพรวมก่อนว่า NLP คืออะไร แล้วทำไมเราต้องศึกษาและเรียนรู้มัน

## NLP คืออะไร?

NLP เป็นสาขาหนึ่งของวิชาภาษาศาสตร์และวิชาการเรียนรู้ของเครื่องจักร (หรือเรียกว่า machine learning ย่อว่า ML) ที่พยายามจะเข้าใจทุกอย่างที่เกี่ยวข้องกับภาษาที่มนุษย์ใช้สื่อสารกัน เป้าหมายของ NLP ไม่ได้ต้องการแค่จะเข้าใจความหมายของสิ่งที่สื่อสารออกมาเป็นคำ ๆ ไป แต่ต้องการจะเข้าใจบริบทรอบข้างของคำเหล่านั้นด้วย

งานทางด้าน NLP มีตัวอย่างดังต่อไปนี้:

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

NLP เองนั้นก็ไม่ได้จำกัดอยู่ที่ภาษาเขียนอย่างเดียว แต่ยังสามารถใช้แก้ปัญหาทางด้านภาษาพูด(หรือเรียกว่า speech recognition) และการมองเห็นของคอมพิวเตอร์(หรือเรียกว่า computer vision)ได้ด้วย


## ทำไม NLP ถึงท้าทาย?

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

<EditOnGithub source="https://github.com/huggingface/course/blob/main/chapters/th/chapter1/2.mdx" />