Course Description
Course Description and Topics
Natural Language Processing (NLP) is a sub-field of Artificial Intelligence that focuses on processing and understanding human languages (e.g. English, German, etc.). In this course, we will go over the basics of this field covering various NLP topics including, but not limited to:
General introduction to NLP
Text Representation
Probability Review
Text Classification
Parts-of-Speech Tagging
Named Entity Recognition
Parsing
Machine Translation
Language Modeling
Social Aspects of NLP
This course is for (junior and senior) undergraduate students and possibly also graduate students of Computer Science. It requires an understanding of the basics of Machine Learning, Linear Algebra, Probability theory, and data structures and algorithms.
Learning Objectives
Through this course, students will develop an understanding of the general field of Natural Language Processing with emphasis on state-of-the-art solutions for classic NLP problems. Students will learn to dive deep into the working of NLP algorithms, comparing them and understanding their strengths and weaknesses. Students will also do a semester-long course project on a real-world NLP problem, which involves either designing and implementing a new NLP model or implementing existing systems. Through the project and the course, students will learn how to design, implement, and experiment with NLP models. They will also learn to present their work.
Books
While we won't be following one particular book, I will assign reading materials mostly from the following books:
Dan Jurafsky and James H. Martin, Speech and Language Processing (3rd ed. draft): https://web.stanford.edu/~jurafsky/slp3/
Hal Daume III, A course in Machine Learning: http://ciml.info/ [This book is incomplete at many places but still gives a fair idea]
Jacob Eisenstein. Introduction to Natural Language Processing.
Yoav Goldberg. Neural Network Methods for Natural Language Processing. [Covers neural network models for NLP]
Aston Zhang, Zack C. Lipton, Mu Li, and Alex J. Smola. Dive into Deep Learning.