Computational Morphology with HFST

Goals and Objectives  

The course demonstrates how HFST tools can be used for generating finite-state morphologies. Through practical exercises, students will learn how to use finite-state methods to develop a morphology for a language. This online course is suitable as a complement to a more theory or linguistics-oriented course on morphology.
After successfully completing the course:
- you can explain the basic theory on finite-state automata and transducers,
- you can design morphological lexica using finite-state technology,
- you know how to write morpho-phonological rules in a finite-state framework,
- you understand the diversity of morphological structure in different languages

  and you know how to take these differences into account when designing computational models of morphology.


Role: Jupyter code developer of course material
Department of digital humanities / The Language Bank of Finland (FIN-CLARIN)
Faculty of Arts, University of Helsinki
Helsinki, Finland
This is an adaptation of the teaching material used for the course 'Computational Morphology' taught by Mathias Creutz in the Master’s programme 'Linguistic Diversity and Digital Humanities' at the University of Helsinki. The original course and its exercises were created by Mathias Creutz and co-developed by Senka Drobac. Using an earlier version of the course material, Erik Axelson developed a Jupyter notebook interactive version.

Description of the Training Materials

(Sub)discipline, topic, language(s)

computational morphology, finite-state methods



morphology, weighted finite-state networks, two-level rules, xfst, lexc, twolc

CLARIN resources


Kielipankki morphologies:

Structure and duration The course comprises seven lectures, based on the original course. The lectures are tutorial-like, showing how HFST tools can be used for implementing finite-state morphologies. There are assignments at the end of each lecture. This is a self-study course, so there are no time limits. Solutions to the assignments are not available, since the original course is still lectured each year.
Target audience Prerequisites include foundations of general linguistics and basic knowledge on how to use a computer. Some programming experience is desirable. Knowledge of Natural Language Processing ( ) is also a plus.
Facilities required

The course is accessible also at Logging to the service requires Haka or CSC account or visitor account via CSC/SAFMORIL helpdesk.


Self-study course containing seven lectures implemented as Jupyter notebooks. Tutorial-type lectures with assignments at the end.

Course(s) in which the training material was used The training material is taught as part of the “Computational Morphology” (LDA-T302) by Mathias Creutz in the Master’s programme Linguistic Diversity and Digital Humanities at the University of Helsinki for 5 ECTS.
Licence and (re)use CC BY 4.0:
Creation date

First GitHub repository commit, Nov 29, 2018

Last modification date A stable release was made on 25 June 2021 

Experience with Using CLARIN Resources in Teaching

Students very much appreciated the availability of XFST and TWOL tools through the Python application interface. It facilitates learning and also makes it easy to integrate morphological analysis and generation as part of larger natural language processing software.

Download Information


Additional Information and Resources

See the info page of the course:


Cite this Work

Axelson, Creutz, Drobac (2019). Computational Morphology with HFST – an adaptation of the teaching material of the course 'Computational Morphology' taught by Mathias Creutz in the Master’s programme 'Linguistic Diversity and Digital Humanities' at the University of Helsinki. [Learning material]. Language bank of Finland. Accessible at

Contact Information

Teachers who reuse and adapt this training material are invited to share their feedback via