The course will give an overview of the Natural Language Processing techniques in the transition period between traditional techniques and deep learning. The course will touch upon various standard NLP tasks, such as tokenization, language modeling, semantics, part-of-speech tagging, and parsing. Each topic will discuss both conventional and deep learning techniques. The second part of the course will go into application domains such as document classification, question answering, and chatbots. Many of the assignments will be in the context of Thai language. This course is not meant to be an entry-level machine learning course, and will not cover the basics of machine learning. This course is recommended for graudate students, 4th year students who have already taken some machine learning course, and 3rd year students who are interested in doing senior projects related to NLP.