91258 - Natural Language Processing

Academic Year 2020/2021

  • Docente: Paolo Torroni
  • Credits: 6
  • SSD: ING-INF/05
  • Language: English
  • Teaching Mode: Traditional lectures
  • Campus: Bologna
  • Corso: Second cycle degree programme (LM) in Artificial Intelligence (cod. 9063)

Learning outcomes

At the end of the course, the student masters the basic algorithms, tools and systems for the management, processing and analysis of natural language. The student is able to design and develop simple systems oriented to real-world natural language processing applications such as those requiring segmentation and classification of elements of text.

Course contents


  • Introduction to NLP
  • Elements of computational linguistics
  • Basic text processing
  • Language modeling with n-grams
  • Part-of-speech tagging
  • Constituency and dependency parsing
  • Text classification using linear models
  • Vector semantics and embeddings
  • Deep learning methods for NLP
  • Coreference resolution
  • Logical representation of sentence meaning
  • Typical NLP applications, e.g., sentiment analysis, question answering, machine translation, and dialog systems


The course is intended for 2nd-year students of the Masters' Degree in Artificial Intelligence, who have a solid background in foundational subjects and technological tools for tackling modern Natural Language Processing. There are no formal prerequisites in terms of exams taken, but students are expected to be familiar with machine learning and deep learning concepts, methodologies and tools, AI & KR frameworks and methods, statistical and mathematical methods for AI, and the Python programming language.


  • Speech and Language Processing, by Dan Jurafsky and James H. Martin. 3rd Ed. draft
  • Other resources and scientific articles that will be made available throughout the course.

Teaching methods

The course combines theoretical foundations with practical modeling and solving of realistic problems. The main teaching methods are lectures and exercises, hands-on experience using personal laptops, practical assignments on selected topics, and seminars by experts on selected topics.

Assessment methods

The course will include graded assignments and a project. The final grade will take into account the timeliness and quality of solutions of the assignments, and the project report and discussion. The latter are assessed based on the degree of understanding of the course topics and methodologies, and on the ability to put them into practice in the solution of a small-scale but realistic problem requiring NLP. Assignments can be solved in pairs. Projects instead must be developed in teams of max 3/4 students. Each team can choose to either work on a project proposed by the teaching staff, or to propose an own project and work on that (requires prior agreement with the teaching staff).

Teaching tools

Relevant learning material including slides and notebooks will be made available via virtuale. All software resources required for this course are open-source and easy to obtain on the Internet.

Office hours

See the website of Paolo Torroni


Quality education

This teaching activity contributes to the achievement of the Sustainable Development Goals of the UN 2030 Agenda.