CS 490A, Fall 2021, UMass Amherst CS
Instructors: Laure Thompson and Brendan O'Connor
Time: Tues and Thurs, 4:00PM - 5:15PM in Thompson 106
Office hours are alternatively available by appointment. See Piazza for scheduling updates. The Zoom link is on the Piazza resources page.
Natural Language Processing (NLP) is the engineering art and science of how to teach computers to understand human language. NLP is a type of artificial intelligence technology, and it's now ubiquitous -- NLP lets us talk to our phones, use the web to answer questions, map out discussions in books and social media, and even translate between human languages. Since language is rich, ambiguous, and very difficult for computers to understand, these systems can sometimes seem like magic -- but these are engineering problems we can tackle with data, math, and insights from linguistics.
This course will introduce NLP methods and applications including probabilistic models, text classification, structural representations, and contextual neural language models to process and understand the deeper meaning of text. During the course, students will (1) learn the core methods for NLP; (2) become familiar with key facts about human language that motivate them, and help practitioners know what problems are possible to solve; and (3) complete a series of hands-on projects to implement, experiment with, and improve NLP models, gaining practical skills for natural language systems engineering.
This course is intended for upper-level computer science and linguistics undergraduate students.
Prerequisites: experience in programming and probability, from the courses
(CS 220 and CS 240) or Ling 492B
This is intended to represent comfort with programming, and basic probability and algorithm analysis.
See this list of UMass NLP courses.
Other useful texts for NLP include: