04-801-N4   Natural Language Processing

Location: Africa

Units: 6

Semester Offered: Spring

Course discipline 


Course description

This course will introduce an area of Artificial Intelligence known as Natural Language Processing (NLP). The course aims to cover the techniques used today in software that does useful things with text like Chinese, English, and Hindi. Applications of NLP include automatic translation between languages, extraction, and summarization, question-answering and dialog systems, and conversational agents. This course will focus on core representations and algorithms, with some time spent on real-world applications. Modern NLP relies heavily on Machine Learning, and a brief overview of these techniques will also be covered. Good NLP also requires knowledge of Linguistics, so topics in linguistics (phonology, morphology, and syntax) will be covered. From a software engineering perspective, there will be an emphasis on rapid prototyping, a useful skill in many other areas of Computer Science.

Learning objectives

  • Apply their knowledge of NLP algorithms like text representation, text pre-processing, feature extraction, statistical text analysis, and AI methods.
  • Design, implement, and document appropriate, effective, and efficient software solutions for a variety of NLP problems.
  • Exploit standard Python NLP libraries in the development of these solutions.


  • Understand a variety of NLP algorithms
  • Demonstrate a theoretical and practical knowledge of building NLP applications


Knowledge of Python programming will be useful.


Alexander Nareyek