Natural Language Processing
|Title||Natural Language Processing (53113)|
|Instructor||Amitabh Chaudhary (firstname.lastname@example.org)|
Natural language processing (NLP) is the application of computational techniques, particularly from machine learning, to analyze and synthesize human language. The recent explosion in the amount of available text data has made natural language processing invaluable for businesses, social sciences, and even natural sciences.
In this course we study the fundamentals of modern natural language processing, emphasizing models based on deep learning. These include language models, word embeddings, recurrent neural networks (Simple RNNs, LSTMs), hidden Markov models, context-free grammars and syntactic parsing, dependency parsing, and attention-based models such as the transformer and BERT.
We use Python and Python based libraries such as PyTorch, NLTK, and SpaCy for implementing algorithms and processing text.
A significant component is the course project in which students apply NLP techniques to solve a real-world problem.
A tentative list of topics follows.
Coursework and Evaluation
A grade of B+ or better in the following courses:
A grade of B or better in MPCS 55001 Algorithms
A grade of B or better in one of the following courses:
MPCS 53111 Machine Learning (recommended; see below)
Programming experience in Python.
Tuesday 5:30-8:30 PM