Tuesdays and Thursdays from 1:00 to 2:30 PM in E14-525
Language is central to the way people interact with one another, and people often wish they could interact with computers in the same way. As computers increasingly pervade human lives and decision-making processes, understanding language written by humans becomes more critical, even in applications that would not typically rely on other forms of AI. Additionally, public triumphs of NLP such as Siri and Watson are beginning to change the public's perception of the interaction between computers and language.
This class will teach you the techniques that are the building blocks of NLP, and how to assemble them to accomplish goals such as improving human-computer interaction, augmenting human creativity, and enabling interactive storytelling.
This is a lab-based course involving a final project and paper. Bring a laptop to class.
With co-teacher Rob Speer.
The textbook for this course is Natural Language Processing with Python, by Steven Bird, Ewan Klein, and Edward Loper, 2009. A version of the book is available online.
|1||2/7/2012||Intro to NLP||Install NLTK||-|
|2||2/9/2012||Corpus lingusitics, N-grams, frequency distributions, Markov chains||Build language models and generate text from them||Build a corpus, calculate information, generate text|
|3||2/14/2012||Morphology, Automata, and Regular Expressions||y-i spelling changes||-|
Tokenization, lemmatization, and text wrangling
Unicode in Python Demystified slides
|Work with Twitter data||find a trending topic in a language you don't know|
|2/21/2012||No Class - It's a Monday||-||-|
|5||2/23/2012||Naïve Bayes classification||Write a naïve Bayes function|
starter code - finished code - ipython log
|6||2/28/2012||Tagging / backoff strategies||Tagging bake-off with NLTK||-|
|7||3/1/2012||Chunking (NLTK slides)||Chunking bake-off with NLTK||Named entity recognition in Dutch|
|8||3/6/2012||Chart parsing / PCFGs (NLTK slides)||-|
|9||3/8/2012||HMMs and machine translation (guest lecture) / More about PCFGs||-||-|
|10||3/13/2012||Lexical Resources: WordNet||Find topic similarities in WordNet||-|
|11||3/15/2012||LDA (guest lecture)||-||-|
|12||3/20/2012||Dependency parsing / ConceptNet||Find topic similarities in ConceptNet||-|
|13||3/22/2012||Word sense disambiguation||In-class lab on WSD||-|
|3/27/2012||No Class - Spring Break||-||-|
|3/29/2012||No Class - Spring Break||-||-|
|14||4/3/2012||Data mining and Wikipedia||Acquire and work with Wikimedia data||Knowledge Extraction from Wikipedia|
|15||4/5/2012||NumPy and Recommender Systems||Simple MovieLens-based recommender||-|
|16||4/10/2012||Classification: Decision trees / information gain||Building a decision tree lemmatizer||-|
|17||4/12/2012||Unification and grammatical features||Build a feature grammar||-|
|4/17/2012||No Class - Holiday||-||-|
|18||4/19/2012||Sentiment analysis / classification with MaxEnt||Revisit movie review classification||-|
|4/24/2012||Guest Lecture or No Class - Sponsor Week||-||-|
|4/26/2012||Guest Lecture or No Class - Sponsor Week||-||-|
|19||5/1/2012||Semantics I (additional slides)||-|
|20||5/3/2012||Project previews / more semantics, briefly||-||-|
|22||5/10/2012||Time and Space||-||-|
|23||5/15/2012||ConceptNet 5; some project presentations||-||-|