This course provides an introduction to the field of Natural Language Processing. It includes relevant background material in Linguistics, Mathematics, Probabilities, and Computer Science. Some of the topics covered in the class are Text Similarity, Part of Speech Tagging, Parsing, Semantics, Question Answering, Sentiment Analysis, and Text Summarization. The course includes quizzes, programming assignments in Python, and a final exam. Course Syllabus Week One (Introduction 1/2) (1:35:31) Week Two (Introduction 2/2) (1:36:26) Week Three (NLP Tasks and Text Similarity) (1:42:52) Week Four (Syntax and Parsing, Part 1) (1:48:14) Week Five (Syntax and Parsing, Part 2) (1:50:29) Week Six (Language Modeling and Word Sense Disambiguation) (1:40:33) Week Seven (Part of Speech Tagging and Information Extraction) (1:33:21) Week Eight (Question Answering) (1:16:59) Week Nine (Text Summarization) (1:33:55) Week Ten (Collocations and Information Retrieval) (1:29:40) Week Eleven (Sentiment Analysis and Semantics) (1:09:38) Week Twelve (Discourse, Machine Translation, and Generation) (1:30:57) The course assignments will all be in Python. Course Format The class will consist of lecture videos, which are typically between 10 and 25 minutes in length. The lectures contain 1-2 integrated quiz questions per video. Grading is based on three programming assignments, weekly quizzes, and a final exam.