Search for contacts, projects,
courses and publications

Natural Language Processing for Software Engineering

People

Tonella P.

Course director

Description

The course deals with text search and extraction. The course will present techniques and approaches for the representation of natural language text as a numerical embedding, to support search on large corpora. Then, we will consider various algorithms for text analysis at the syntactic and semantic level, including parts of speech tagging, constituency and dependency parsing, semantic role labelling, text summarization, sentiment analysis and language models. We will cover also large language models and prompt engineering. Students will develop a search engine that can query a large Python code repository.

Objectives

This course deals with the extraction of knowledge from text, using natural language processing algorithms, and its use to address several software engineering tasks. 

Teaching mode

In presence

Learning methods

Students will be involved in practical exercises and will experiment with the presented techniques by applying them to the course project.

Examination information

Optional written mid-term exam; final oral exam; optional homework; mandatory project.

Education