Natural Language Processing
Course duration: 8 h
Natural Language Processing (NLP) exists at the intersection of 3 disciplines: Computer Science, Linguistics, and Software Engineering. It is based on the foundation of Algorithms, Machine Learning, and Statistics, and is aimed at solving a wide range of real-world computational problems related to human cognition, such as: machine translation, text classification, automated question answering, error correction, etc. We will learn the foundational models of text representation, explore some of the most important algorithms, and work with the tools for applying these approaches to real-world data sets. The course will be built around developing a solution to a particular practical NLP problem. The students will have a choice of 3 languages for performing practical tasks, the code in the course will be presented in Common Lisp (a brief introduction to the language will be given).
Prerequisites: general knowledge of Algorithms and Data Structures, and Statistics
- linguistic concepts in NLP
- most important NLP problems and domains
- working with corpora and real-world data sets
- language models and corresponding generative learning algorithms: bag-of-words model (Bayesian learning), sequence models (hidden Markov models), structural models, holistic models (artificial neural networks)
- discriminative learning algorithms: Maximum entropy, Decision Trees, etc.
- practical applications: Bayesian document classification, CKY parsing, Noisy Channel spelling correction, etc.
Required software (free choice of one of the following options):
- Python NLTK (recommended reading: TBA)
- Stanford Core NLP (recommended reading: TBA)
- Common Lisp cl-nlp (recommended reading: TBA)
Mr. Vsevolod Dyomkin
Place of employment: Grammarly Inc.
Spheres of research: error correction
Phone: +38 096 111 41 56