Program Overview
Program Overview
The University of Copenhagen offers a course in Natural Language Processing (NLP), which provides an introduction to the fundamentals of NLP, involving computational models of language and their applications to text.
Course Description
This course is designed for students interested in building applications that can process, understand, or generate text automatically. It covers the following topics:
- NLP tasks: tokenisation, text classification, language modelling, named entity recognition, part-of-speech tagging, parsing, information extraction, machine translation, question answering
- Methods: log-linear models, structured prediction, and neural network models such as recurrent neural networks and transformers, including representation learning, pre-training, transfer learning, and interpretability methods
- Implementations: relationship between NLP tasks, efficient implementations, and the use of modern NLP libraries such as Hugging Face's Transformers
Learning Outcome
Upon completion of the course, students will have:
Knowledge of
- core NLP tasks (e.g., machine translation, question answering, information extraction)
- methods (e.g., classification, structured prediction, representation learning)
- implementations (e.g., relationship between NLP tasks, efficient implementations)
Skills to
- identify the different kinds of NLP tasks
- choose the correct algorithm for a given problem situation
- implement core algorithms in Python using PyTorch
- assess the most appropriate algorithms to solve a given NLP problem
- distinguish and evaluate the advantages of different approaches to the same task
Competences to
- decompose natural language processing tasks into manageable components
- evaluate systems quantitatively and qualitatively
- apply the learned skills in a wider context to areas that face similar challenges, e.g., data science, social science, or bioinformatics
- critically assess the limitations and use cases of language models, and apply this knowledge to the development and deployment of these models in real-world scenarios
Literature
The course literature is available on Absalon.
Recommended Academic Qualifications
Knowledge of machine learning (probability theory, linear algebra, classification, neural networks) and programming (Python) is required, either through formal education or self-study. No prior knowledge of natural language processing or linguistics is required.
Teaching and Learning Methods
The course consists of lectures, exercises, and project work.
Workload
The estimated workload for the course is:
- Lectures: 28 hours
- Preparation: 14 hours
- Theory exercises: 57 hours
- Practical exercises: 57 hours
- Project work: 50 hours
- Total: 206 hours
Exam
The exam is a written assignment, which is a group project report with individual contributions clearly specified. All aids are allowed, and the marking scale is a 7-point grading scale.
Course Information
- Language: English
- Course code: NDAK18000U
- Credit: 7.5 ECTS
- Level: Full Degree Master
- Duration: 1 block
- Placement: Block 1
- Schedule: B
- Course capacity: No limitation
- Study board: Study Board of Mathematics and Computer Science
- Contracting department: Department of Computer Science
- Contracting faculty: Faculty of Science
- Course Coordinators: Daniel Hershcovich
- Lecturers: Daniel Hershcovich, Anders Søgaard
Re-exam
The re-exam is a 30-minute individual oral examination without preparation, based on the full syllabus. No aids are allowed.
