About
Table of contents
Goals of the Course
Natural language processing (NLP) seeks to endow computers with the ability to intelligently process human language. NLP components are used in conversational agents and other systems that engage in dialogue with humans, automatic translation between human languages, automatic answering of questions using large text collections, the extraction of structured information from text, tools that help human authors, and many, many more. This course will teach you the fundamental ideas used in key NLP components. It is organized into several “greatest hits” topics, each with a more-or-less self-contained lecture and associated readings, problems, and implementation exercises.
447 vs. 517
The courses are similar in breadth and use the same lecture content. The projects are quite different; 447’s project is a predefined implementation problem that gives teams freedom in developing a solution. It is designed to encourage iterative improvement and an understanding of inherent tradeoffs in building an NLP system. 517’s project is more research-oriented; it asks teams to reproduce experiments in recently published NLP papers. Teams have great flexibility in the choice of a paper to reproduce.
Additionally, there will be differences in the assignments.
Lectures
You are encouraged to come to live lectures and participate in the discussions. Videorecorded lectures from 2021 are provided as a supplementary resource and in case you can’t make it to a lecture (e.g., because you’re not feeling well). Note that the ordering of the lectures may be slightly different year to year, especially later in the quarter. Also, be warned that these lectures are “compressed” in the sense that they go about 30% faster than a live lecture with student participation. Most students will prefer to watch them in small segments, pausing frequently to take notes, and perhaps watch some segments again.
- Classification and multinomial logistic regression; with captions; transcript; slides
- Language modeling, especially with neural networks; with captions; transcript; slides
- Vector embeddings for documents and words; with captions; transcript; slides
- Morphology and weighted finite-state transducers; with captions; transcript; slides
- Sequence labeling and conditional random fields; with captions; transcript; slides
- Translation and sequence-to-sequence models; with captions; transcript; slides
- Syntax, semantics, and linguistic structure prediction; with captions; transcript; slides
Grades
You will be evaluated based on individually completed assignments (50%), a project completed in a team of three (40%), and quizzes (10%). Course staff may grant extra credit (up to 5%) to students who actively and meaningfully engage on the course discussion board. To give you a rough idea of how your final grade depends on your total score (calculated out of 100 points), the mapping from points to a final grade (for CSE 447 students in winter 2021 who earned between 66 and 100 points) was approximately 0.3677 + 0.0363 * #points, rounded to the UW scale. Depending on the distribution of scores this year, the mapping might, of course, be very different. Final grades for students registered from CSE 447 and CSE 517 are calculated separately based on their respective distributions.
Assignments
There will be nine graded assignments, roughly one per week. You are encouraged to complete all of them on time. If you submit an assignment within seven days of the due date, the TAs will calculate the grade you would have received if it had been on time, but you will receive a zero. Your total assignment grade will be calculated as a weighted sum of your nine assignments’ grades. Most assignments will have a weight of one; your best two assignments will be doubly weighted, and your worst two assignments will get a weight of zero. (This means that your highest-graded two assignments will be worth 11.11% of your grade, the middle five will be worth 5.56% of your grade, and the worst-graded two will be worth 0% of your grade.) Because we have built this slack into the grading system, and because you will still receive feedback on work that is slightly late, there will be no exceptions to our policy of zero credit for late work. Precise assignment deadlines are shown on the course calendar.
- Assignment 0, which is ungraded, is a tool for you to assess your preparedness for this course.
- Assignment 1 is designed to advance your understanding of text classification, feature design and selction, the evaluation of classifiers, and the mathematics of some important classification models.
- Assignment 2 is designed to advance your understanding of frequency information in text data and some mathematical properties of language models.
- Assignment 3 is designed to advance your understanding of language models.
- Assignment 4 is designed to advance your understanding of word embeddings and NLP models that make use of them.
- Assignment 5 is designed to advance your understanding of ethical matters that arise in NLP.
- Assignment 6 is designed to advance your understanding of sequence models.
- Assignment 7 is designed to give you more practical hands-on experience with sequence labeling.
- Assignment 8 is designed to advance your understanding of structured problems in NLP that deal with segmentation, trees, and logical forms.
- Assignment 9 is designed to give you more practical hands-on experience with sequence-to-sequence methods.
Solving extra credit problems in an assignment increases your grade for that particular assignment.
Project
Details on the projects for CSE 447 and CSE 517 are given in the instructions documents below. Project deliverables must be turned in on time; there will be zero credit for late submissions. Project deadlines are shown on the course calendar.
- CSE 447 project instructions
- CSE 517 project instructions and latex template
- Individual project updates
Quizzes
There will be quizzes posted on Canvas, roughly once per week. These are not graded on correctness; as long as you submit an attempt on time, you will earn full credit for the quiz.
Computing
Please see information about computing resources here.
Resources
Enrichment lectures and more:
- Claire Cardie, Information Extraction Through the Years: How Did We Get Here?
- Yejin Choi, Intuitive Reasoning as (Un)supervised Neural Generation
- Charles Isbell, You Can’t Escape Hyperparameters and Latent Variables: Machine Learning as a Software Engineering Enterprise
- Kathy McKeown, Rewriting the Past: Assessing the Field through the Lens of Language Generation
- NLP Highlights podcast about new research in NLP
- UW NLP mailing list with info about local talks
- Reading list from a recent seminar on influential papers in NLP