Categories
Uncategorized

Hi Nuremberg! What I’ve learnt at the Computational Linguistics Fall School

This September, Jiaqi attended the first week of the Computational Linguistics Fall School 2026 at the University of Technology Nuremberg. The Fall School is a biennial event for Master’s and PhD students from the humanities and computer science who want to deepen their knowledge of Computational Linguistics (CL) and Natural Language Processing (NLP).

The morning course, Programming for Computational Linguistics and Natural Language Processing, was taught by Selina Meyer (UTN). Walking through Python basics again was unexpectedly nostalgic, after four years in the field of DH. The afternoon course, Reading Concordances with Algorithms: a training course in key corpus linguistics methodology, was taught by Stephanie Evert and Michaela Mahlberg (FAU Erlangen-Nürnberg). This was my first formal encounter with linguistics through a course, and I was lucky to have Stephanie and Michaela as guides. They introduced the core apparatus of corpus linguistics — the concordance and the KWIC view, collocation, colligation, semantic preference and semantic prosody, and the lexical item as a unit that extends beyond the single word. 

They also introduced the tools their team has been building as part of the Reading Concordances in the 21st Century (RC21) project, funded by the AHRC and the DFG. Its main output is FlexiConc, a Python library that lets researchers sort, rank, partition and cluster concordance lines using combinable algorithms — and, importantly, keeps an analysis tree recording every algorithm applied along the way.

What struck me was less any individual technique than a way of thinking. Corpus linguistics insists on focusing on the individual example and requires going back to the concordance lines and reading them. Another thing I learnt from the design of FlexiConc’s analysis tree (which aims to record every step that leads to the reading of a concordance systematically and consistently) is that a result is only interpretable alongside the procedure that produced it. For example, when I play with contextualised embeddings I extracted from a BERT model and use them to track how the usage of a word changes over time, each decision shapes what can be observed, such as which model produces the representation, which hidden layer(s) it is taken from, how occurrences are grouped, how the time axis is cut, and which metric measures the difference. None of these is neutral, and results produced under different settings are not straightforwardly comparable.

Thanks to Michael Roth and the organising team at UTN for putting the Fall School together, and to Selina, Stephanie, and Michaela for the courses. Thanks also to GSCL (German Society for Computational Linguistics and Language Technology) and DGfS (Linguistic Society of Germany), whose support made this possible. A week like this is a chance to step outside my own project and look at computational methods from another angle — and then to carry some of it back.