Programming for Natural Language Processing

Course Material

Video lectures in Thai: ภาษาศาสตร์คอมพิวเตอร์ Youtube channel ของอาจารย์อรรถพล

Textbook: Python ๑๐๑ โดยกิตติภณ พละการ, กิตติภพ พละการ, สมชาย ประสิทธิ์จูตระกูล และ สุกรี สินธุภิญโญ ภาควิชาวิศวกรรมคอมพิวเตอร์ คณะวิศวกรรมศาสตร์ จุฬาลงกรณ์มหาวิทยาลัย | ดาวน์โหลดฟรี

Module 1: Computational Thinking


  1. Computational Thinking
  2. Function
  3. Decomposition
  4. For Loop
  5. While Loop
  6. If, Else
  7. Boolean Logic
  8. Wrap Up

Module 2: Programming Basics


Week Lecture Demo
1
  1. Variables ตัวแปร
  2. Variable Type ชนิดของตัวแปร
  3. Function and argument
  4. Module
  1. เขียนโปรแกรมภาษาไพธอนบน console
  2. วิธีการใช้ Variable
  3. วิธีการใช้ Functions และ built-in functions
  4. วิธีการเขียน function
  5. การใช้ module
2
  1. Computer memory organization
  2. Function tracing and stack frames
  3. print vs return
  4. String
  5. String manipulation
  6. String iteration
  7. Unicode string in Python
  1. วิธีการใช้ String
  2. วิธีการใช้ String operands
  3. Interact กับผู้ใช้ด้วย print และ input
  4. Docstring
  5. วิธีการทำ String splicing
  6. การใช้ Methods and string manipulation
  7. ตัวอย่าง 1 ทบทวนและใช้เครื่องมือที่เรียนมา
  8. ตัวอย่าง 2 ทบทวนและใช้เครื่องมือที่เรียนมา
  9. ตัวอย่าง 3 ใช้ for loop เพื่อ iterate string
  10. ตัวอย่าง 4 ใช้ for loop เพื่อ iterate string

Module 3: Data Structure I


Topic Lecture Demo
List
  1. Data Structure และ List
  2. List iteration
  3. List operation
  4. Range
  5. Patterns ที่ใช้บ่อยๆกับ List
  1. วิธีการสร้าง List
  2. สาธิตการใช้ List methods
  3. วิธีการทำ For loop over indices
  4. วิธีการทำ While loop บน List
  5. ตัวอย่าง 1 iterate list ของคำ
  6. ตัวอย่าง 2 split string
Dictionary & Tuple
  1. Dictionary
  2. Dictionary Iteration
  3. Dictionary Methods
  4. Tuple
  5. Counter

Module 4: File and Text Data Handling


Topic Lecture Resources
File I/O
  • การอ่านข้อมูลจากไฟล์
  • การเขียนข้อมูลลงไฟล์
  • เรียนรู้จากตัวอย่าง 1: อ่านจากไฟล์ นับคำนิราศเมืองแกลง
  • เรียนรู้จากตัวอย่าง 2: เขียนลงไฟล์ หา concordance
  • เรียนรู้จากตัวอย่าง 3: dictionary ใช้นับการกระจายตัวของคำ

Code และ data จากตัวอย่าง

Regular Expression
  • Regular Expression
  • การใช้ Regular expression กับภาษา Python

แบบฝึกหัดการเขียน Regular Expression

UNIX Tools
  • UNIX Operating System
  • UNIX Tools Ep1
  • UNIX Tools Ep2
  • UNIX Tools Ep3

Module 5: Data Structure II


Topic Lecture
Set
  1. Set
Nested Data Structure
  1. Nested data structure
  2. List of tuples
Advanced Lists
  1. Nested list
  2. Nested loop
  3. Parallel list
Advanced Dictionary
  1. Dictionary ที่ key เป็น tuple
  2. Dictionary ที่ value เป็น list
  3. List of info dictionaries
  4. Dictionary in dictionary

Module 6: Object-Oriented Programming


Topic Lecture Demo
Object-Oriented Programming
  1. การสร้างและ import module
  2. Class, Object, Method
  3. เขียน Class โดยใช้ Python
  4. Class vs Object Attribute
  5. การ Implement Methods และ Attributes

ตัวอย่างการเขียน class และ method

tweet.py | corpus.py
Subclass (optional)

Subclasses and Inheritance

ตัวอย่างการใช้ subclass

text_container.py

Module 7: Natural Language Processing


Under construction...

Topic Lecture Demo

Module 8: Web Scraping


Topic Lecture Demo
Serialization
  1. Overview
  2. Serialization in Python
Scraping
  1. Scraping HTML
  2. API Call

API Call demo


Module 9: Advanced Python Features


  1. Function mapping (optional)
  2. List comprehension
  3. Dict comprehension
  4. Set comprehension
  5. Keyword argument