CS 6840: Natural Language Processing
Fall 2019

Time and Location: Tue, Thu 9:00 – 10:20am, ARC 159
Instructor: Razvan Bunescu
Office: Stocker 341
Office Hours: Tue, Thu 3:00 – 4:00pm, or by email appointment
Email: bunescu @ ohio edu

Recommended Supplementary Text (PDF available online):
  • Natural Language Processing, by Jacob Eisenstein. 2019.
  • Speech and Language Processing (3rd edition draft), by Daniel Juraksfy and James E. Martin. 2019.

  • Course description:
    Natural Language Processing (NLP) is a branch of Artificial Intelligence concerned with developing computer systems that can process or generate natural language. Major applications of NLP include machine translation, sentiment analysis, speech recognition, information retrieval / web search engines, question answering, or information extraction. In this course, students will learn how to use modern machine learning (ML) techniques to solve fundamental NLP tasks, such as training vector-based representations of words and their meanings, document classification, syntactic parsing, language modeling, coreference resolution, entity linking, and semantic parsing.

    Students are expected to be comfortable with programming in Python and have basic knowledge of formal languages (regular and context free grammars), linear algebra, probability theory and statistics. Knowledge of deep learning will be very useful, though not strictly necessary as long as the student is willing to learn. Each ML model will be introduced in class and relevant supplemental online materials will be provided throughout the course.

    Lecture notes:
    1. Syllabus & Introduction
    2. Text Classification with Perceptron, SVMs, and Logistic Regression
    3. Gradient Descent Algorithms
    4. Linear algebra and optimization in Python
    5. HMMs and Part of Speech Tagging
    6. CRFs and Named Entity Recognition
    7. Non-linear Classification, Neural Networks, and PyTorch
    8. Word Embeddings
    9. Recurrent Neural Networks for NLP
    10. RNNs with Attention for Machine Translation
    11. Convolutional Neural Networks for NLP
    12. Contextualized Word Embeddings and Pre-training for NLP
    13. Energy and Policy Considerations for Deep Learning in NLP, Strubell et al., ACL 2019.
    14. Syntax and Grammars
    15. Syntactic Parsing

    Homework Assignments:
    Final Project:
    Online resources: