Academic year
2022/2023 Syllabus of previous years
Official course title
Course code
LM5870 (AF:393229 AR:209420)
On campus classes
ECTS credits
Degree level
Master's Degree Programme (DM270)
Educational sector code
2nd Semester
Course year
Go to Moodle page
As part of the Language Sciences, Language and Cognition and English Linguistics curricula of the Master's Degree in Language Sciences, and as part of the English and American Literary and Cultural Studies curricula of the Master's Degree in European, American and Postcolonial Languages and Literatures, this course aims at providing the student with an hands-on training on the basic techniques for the computational annotation and analysis of written text.

The main goals of this course are:

- to provide students with the basic technical tools for the computational treatment of textual data
- to introduce students to the fundamental automated knowledge extraction techniques
- to introduce the student to the Python programming language and to some of its modules, among which stanza and gensim
- to stimulate critical thinking and the ability to think out of the box
1. Knowledge and understanding
- familiarity with the Python programming language and with some of its NLP/text mining packages (stanza, gensim)
- familiarity with the most commonly used techniques of (morphosyntactic) linguistic annotation
- learning of the basic techniques for the extraction of linguistic knowledge from corpora
- knowledge of the principal levels of linguistic annotation
- familiarity with the most commonly used techniques for the representation of structured information extracted from text

2. Applying knowledge and understanding
- knowledge of the features and limitations of the most common computational linguistics tools and approaches, so as to be able to pick the most appropriate solution for a given linguistic research issue
- use of Python for the implementation of scripts for the quantitative and computational analysis of text
- ability to advance and test original and sounded hypotheses

3. Making judgements
- ability to implement self-development strategies to improve technical skills
- awareness of the technical and deontological issues connected to the automatic treatment of language
- ability to compare competing hypotheses

4. Communication skills
- ability to write a report to describe the process, progress and result of an original scientific research
- ability to interact with researchers with a different scientific background
- ability to interact with the other students and the professor

5. Learning skills
- ability to learn novel scripting languages (among which, R, PERL, Matlab, Javascript, SQL)
- ability to acquire technical knowledge pertaining to issues only indirectly linked to the automatic treatment of language (e.g. the statistical analysis, the creation of web pages, the management of a database)
- ability to learn novel technical tools for the automatic treatment of language (e.g. annotation tools, corpora management and query tools)
Basic notions of general linguistics (morphology and syntax)

Basic familiarity with computers, but no special experience with programming or software is expected
1. Intro to Python Programming
2. Python programming basics
3. Variable Types
4. Text manipulation in Python
5. Writing structured programs
6. The automatic annotation of a corpus
7. Descriptive statistics for corpus linguistics / the Zipf's law
8. Collocations and association measures
9. Mapping for digital humanities
10. Vector Semantics
11. Topic modeling
Even if the Jupyter notebooks available on the university e-learning platform are mostly self-contained, the following background readings will provide the student with an in-depth explanation of the key concepts of the course:


- M. Hammond (2020) Python for Linguists. Cambridge University Press
- D. Hovy (2021) Text Analysis in Python for Social Scientists. Cambridge University Press


- M. Baroni (2009) Distributions in text. In A. Lüdeling and M. Kytö (eds.), Corpus linguistics: An international handbook, Vol. 2, Mouton de Gruyter: 803-821. Available online at:
- M. Davies (2015) Corpora: An introduction. In D. Biber and R. Reppen (eds.), The Cambridge Handbook of English Corpus Linguistics, Cambridge University Press: 11-31.
- S. Evert (2009) Corpora and collocations. In A. Lüdeling and M. Kytö (eds.), Corpus linguistics: An international handbook, Vol. 2, Mouton de Gruyter: 1212-1248 (sections 1-4). Available online at:
- S.T. Gries and A. L. Berez (2017) Linguistic Annotation in/for Corpus Linguistics. In N. Ide and J. Pustejovsky (eds.), Handbook of Linguistic Annotation, Springer: 379-409. Available online at:
- A. Lenci (2018) Distributional Models of Word Meaning, Annual Review of Linguistics, 4: 151-171. Available online at:
Learning assessment will be based on a series of programming exercises


Students attending at least 70% of the classes qualify as "attending" students. Their learning is assessed through three sets of exercises, assigned one every 4/5 weeks. Each assignment should be submitted electronically by due date.

The partial grade is calculated as follows:
- first assignment: 20% of the partial grade
- second assignment: 40% of the partial grade
- third assignment: 30% of the partial grade
- in class participation: before each laboratory session, students will be required to perform short programming exercises as homework, which will then be briefly discussed in class during the lab session. Students must submit the exercises before the beginning of each lab session. Students should try to solve at least 50% of the exercises, or they will get a grade penalty of 1% of the partial grade for each notebook that is either insufficient or that hasn't been submitted on time (up to a maximum of 10% of the partial grade).


Non-attending students will be evaluated through a single set of programming exercises published on the university e-learning platform. Students are required to submit their solutions electronically by due date.
Lab sessions structured as follows:

- overview of the session key concepts and principles
- work on the programming exercises in the relevant Jupyter notebook available on the university e-learning platform
written and oral
Definitive programme.
Last update of the programme: 11/04/2022