Teaching
สนใจศึกษาด้าน NLP ที่จุฬาฯ หรือศึกษาด้วยตัวเองต้องทำอย่างไร
ผมเปิดสอนวิชา NLP ทุกระดับตั้งแต่ศูนย์ถึงขั้นที่นำไปใช้ได้จริง ที่คณะอักษรศาสตร์ จุฬาฯ โดยมีวิชาที่เป็นวิชาหลักจริงๆ สามารถนำไปประยุกต์ใช้ได้ทันทีอยู่สามวิชา คือ
- NLP I: การเขียนโปรแกรมเพื่อนำไปทำ NLP
- ครึ่งแรกเน้นพื้นฐานการเขียนโปรแกรมตั้งแต่ยังไม่มีพื้นฐานเลย เรียนรู้จากตัวอย่างโปรแกรมต่างๆ ที่เกี่ยวกับ NLP
- ครึ่งหลังพูดเรื่อง Object-oriented programming การดึงข้อมูลจากอินเตอร์เน็ตผ่าน API การใช้ package ต่างๆ ในการตัดคำ แท็กคำด้วย part of speech และการ parse ประโยค และจบด้วย Machine Learning (supervised learning)
- NLP II: โมเดลหลักๆ ที่ใช้ใน NLP ทั้งหมด (เปิดสอนม.ค. 2562 เป็นเทอมแรก)
- Logistic regression - การวิเคราะห์ความรู้สึก (sentiment analysis)
- Structured Prediction - การวิเคราะห์โครงสร้างประโยคอัตโนมัติ (phrase structure parse) การวิเคราะห์ประโยคเชิงพึ่งพิง (dependency parse)
- Conditional Random Fields - การตรวจหาคำที่สื่อถึงตัวตน (Named-entity recognition)
- Search (Information Retrieval) - การสร้าง search engine
- Language Model - โมเดลสำหรับการคำนวณบริบททางภาษาเพื่อใช้สำหรับ การแปลงเสียงเป็นตัวอักษร (speech recognition) เครื่องแปลภาษา (machine translation) และการตรวจแก้การสะกดผิด ความผิดพลาดทางไวยากรณ์
- Word embeddings - ใช้ตัวเลขหรือเวคเตอร์ในการคำนวณความหมายของคำและประโยค
- Deep learning - multilayer perceptron, LSTM, Convolutional Network
- NLP III: การสร้างระบบ NLP ขั้นสูง (เปิดสอนม.ค. 2563 เป็นเทอมแรก)
- Speech Recognition - เครื่องแปลงเสียงเป็นตัวอักษร
- Targeted ads and recommendation systems - ระบบเลือกโฆษณาและ content ให้ผู้ใช้ที่เหมาะสม
- Conversational Agents and chatbots - หุ่นยนต์นักสนทนา
- Question answering system - ระบบตอบคำถามอัตโนมัติ
- Relation Extractions and Knowledge Graphs - ระบบสกัดความรู้และความสัมพันธ์ระหว่าง concepts
- Corpus construction - หลักการสร้างคลังข้อมูลเพื่อใช้สำหรับ NLP systems
ทั้งสามวิชานั้นสามารถศึกษาด้วยตนเองได้ครับ เพราะเว็บไซต์วิชาจะมีวิดีโอเนื้อหาหลักๆ อยู่ทั้งหมดและที่สำคัญคือมีแบบฝึกหัดการเขียนโปรแกรม NLP เพื่อทดสอบความเข้าใจ และเสริมสร้างทักษะให้นำความรู้ไปใช้ในการประยุกต์ใช้จริงได้ ถ้าเรียนสดที่มหาวิทยาลัยผมจะมีเนื้อหา ตัวอย่างเสริม และตอบข้อสงสัยเกี่ยวกับแบบฝึกหัดและเนื้อหาที่ผ่านมา รวมถึง
ให้คำแนะนำในการทำ Projects ตามที่สนใจ
ถ้าไม่มีพื้นฐานการเขียนโปรแกรมมาก่อน หรือเขียนโปรแกรมยังไม่ค่อยคล่องนักแนะนำให้เริ่มที่ NLP I
หากมีประสบการณ์การเป็น developer หรือเขียนโปรแกรมได้คล่องแล้วสามารถเริ่มต้นที่ NLP II ได้ทันที