Computer Science
>
>

11-411/611 Natural Language Processing

Spring 2021

Carnegie Mellon University

Focused on computational systems for human languages, this course introduces various NLP applications, such as translation and summarization. It encompasses a broad scope, from machine learning to linguistics, with a software engineering perspective.

Course Page

Overview

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

  • translation,
  • summarization,
  • extracting information,
  • question answering,
  • natural interfaces to databases, and
  • conversational agents.

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.

Prerequisites

CS courses on data structures and algorithms, and strong programming skills.

Learning objectives

Should I take this course?

Yes, if:

  • you're a CS student interested in languages, language technology, or information processing
  • you're a CS student who needs an "applications" credit
  • you're a language technology minor (this course is an elective option)
  • you're a linguistics student who can write computer programs (this course is an elective option)
  • you always suspected natural language was kind of like Lisp (or Java or ...)
  • you want computers to take over the world
  • you don't want computers to take over the world, but if they do, you want to negotiate your release
  • you like AI, machine learning, and/or theoretical computer science, and want to apply them to a hard real-world problem

Textbooks and other notes

Speech and Language Processing (2nd Edition, 2007, Prentice-Hall), by Daniel Jurafsky and James Martin

FAQ

Should I take this course?

Yes, if:

  • you're a CS student interested in languages, language technology, or information processing
  • you're a CS student who needs an "applications" credit
  • you're a language technology minor (this course is an elective option)
  • you're a linguistics student who can write computer programs (this course is an elective option)
  • you always suspected natural language was kind of like Lisp (or Java or ...)
  • you want computers to take over the world
  • you don't want computers to take over the world, but if they do, you want to negotiate your release
  • you like AI, machine learning, and/or theoretical computer science, and want to apply them to a hard real-world problem

Other courses in Natural Language Processing

CSE 447 and 517 Natural Language Processing

Winter 2022

University of Washington

CS 124: From Languages to Information

Winter 2023

Stanford University

COS 484: Natural Language Processing

Spring 2023

Princeton University

Courseware availability

Lecture slides available at Schedule

No videos available

Project available at Competitive Project

No other materials available

Covered concepts