This course is about a variety of ways to represent human languages (like English and Chinese) as computational systems, and how to exploit those representations to write programs that do neat stuff with text and speech data, like
This field is called Natural Language Processing or Computational Linguistics, and it is extremely multidisciplinary. This course will therefore include some ideas central to Machine Learning and to Linguistics.
We'll cover computational treatments of words, sounds, sentences, meanings, and conversations. We'll see how probabilities and real-world text data can help. We'll see how different levels interact in state-of-the-art approaches to applications like translation and information extraction.
From a software engineering perspective, there will be an emphasis on rapid prototyping, a useful skill in many other areas of Computer Science.
CS courses on data structures and algorithms, and strong programming skills.
Course overview; What does it mean to know language?
Information extraction, question answering, and NLP in IR
|Chap 22.0-2, 23.0-2|
Example Project Video
Words, morphology, and lexicons
|Chap 3.1-3.9||HW1 due|
Language models and smoothing
|Chap 4.3-8||Project initial plan due|
Noisy channel models and edit distance
|Chap 3.10, 3.11, 5.9|
Part of speech tags
|Chap 5.0-3||HW2 due|
|10||Mar 9||Classification 2
|11||Mar 11||Deep Learning
HW 4 due
Syntactic representations of natural language
Chomsky hierarchy and natural language
||Chap 15||Project progress report due|
|—||Mar 23||Midterm #1
||Project Progress Report due 11:59pm|
||Chap 12.4, 14.7||HW5 due|
||Chap 17.0-2, 19.0-3|
Word embeddings/vector semantics
||SLP3 Chap 6|
Contextualized representations (BERT)
||Chap 17.2-4, Chap 19.4-6||HW6 due|
Compositional semantics, semantic parsing
|20||Apr 20||Discourse, entity linking, pragmatics
||Chap 20.0-6, 20.8-11|
|21||Apr 22||Speech 1
||Project dry run code due|
||Chap 25.0-1, 25.9||Final project code due|
|—||May 6||Midterm #2
||Final project progress peport due|
A major component will be the project: build a program whose input is a web page P and whose output is a set of questions about the content in P (that a human could answer if she read P), and can also, if given a question Q about the content of P, answer the question intelligently. Projects will be pitted against each other in a competition at the end of the course.
Students will be evaluated by exam (midterm and final, totaling 30%), regular short quizzes and weekly pencil-and-paper or small programming homework problems (40% together), and the group project (30%).
Should I take this course?
University of California, Berkeley, Brown University, University of Colorado, Columbia University, Cornell University, University of Illinois at Urbana-Champaign, Johns Hopkins University, University of Maryland, New York University, University of Pennsylvania, Stanford University, University of Utah, University of Wisconsin-Madison