Introduction to Natural Language Processing

CMPSCI 585, Fall 2014, UMass Amherst CS

Instructor: Brendan O’Connor
Office hours: Thursday after lecture (4pm–?), room 222, but see Piazza/email announcements for changes
TA: David Belanger
Office hours announced via Piazza/email
Lectures: CS Building room 142, Tues and Thurs, 2:30–3:45pm
Links: Schedule, Moodle (for hw submissions), Piazza (for questions/discussion), Grading/policies, Final project

Course description

Natural Language Processing (NLP) is the scientific and engineering discipline of how to get computers to understand and process human language. Machine translation, speech recognition, and search engines are all NLP systems that have revolutionized how we work with information. This course focuses on text, introducing the fundamental techniques for automated text analysis and understanding, which combine computational algorithms, statistical machine learning, and insights from linguistics.

There are no formal prerequisites for this course, though students should be very comfortable with programming, and have basic experience with algorithm analysis, probability theory, and machine learning (for example: big-O notation, Bayes Rule, and supervised classifiers), or be willing to work extra to learn these things independently. Students should also have some interest in natural language and linguistics.

After finishing this course, our goal is that students will:



The suggested textbook is Jurafsky and Martin, Speech and Language Processing, 2nd ed.. Readings are listed on the schedule page.

Other useful texts include:

Course topics

The following is a provisional list of topics. We will not have time to cover all of them, so it will be shortened and changed in various ways.

If you would like to look at previous versions of the course, see: