CS 322: Natural Language Processing

Course Information

Textbook

Speech and Language Processing: An Introduction to Natural Language Processing, Computational Linguistics, and Speech Recognition, 2nd edition, by Daniel Jurafsky and James H. Martin. Good book.

The Plan

This course will be organized around a sequence of problems chosen to give you experience with a collection of core NLP techniques. Our interaction with each problem will go roughly like this:

  1. We'll choose a problem to work on, based on the interests of the people in the class plus the need to get experience with a collection of core NLP techniques and concepts.
  2. We will discuss approaches to the problem based on whatever ideas you have, just to get a feel for the space of solution possibilities.
  3. I'll introduce a particular approach that I would like you to pursue (often, I imagine the class will have foreshadowed or outright named the approach I have in mind during step 2).
  4. You will go out and start working to write code or use existing software to solve the problem.
  5. While step 4 is going on outside of class, I'll lecture on the core solution techniques, answer questions about ideas or problems you're having, demonstrate relevant software, etc.
  6. If appropriate to the problem, you'll collect data to evaluate the success of your solution and submit a report (including code, if any).
  7. We'll spend a class day or two having each group report on its experiences and results.

For most of the problems, I'm going to ask you to work in groups of two or three, partly to make our wrap-up discussion work better, and partly because having somebody to bounce ideas off is very valuable for these sorts of problems. That said, I'll give you a break or two from partner work.

Grading

Your grade in the course will be determined by your reports the problems we work on (75%) plus a take-home exam late in the term (25%).