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 ได้ทันที