Analyzing German Parliamentary Speeches: A Machine Learning Approach for Topic and Sentiment Classification

Lukas Pätz, Moritz Beyer, Jannik Späth, Lasse Bohlen, Patrick Zschech +2 more
8/5/2025
cs.CLcs.LG

No confident code implementation found for this paper.

Abstract

This study investigates political discourse in the German parliament, the Bundestag, by analyzing approximately 28,000 parliamentary speeches from the last five years. Two machine learning models for topic and sentiment classification were developed and trained on a manually labeled dataset. The models showed strong classification performance, achieving an area under the receiver operating characteristic curve (AUROC) of 0.94 for topic classification (average across topics) and 0.89 for sentiment classification. Both models were applied to assess topic trends and sentiment distributions across political parties and over time. The analysis reveals remarkable relationships between parties and their role in parliament. In particular, a change in style can be observed for parties moving from government to opposition. While ideological positions matter, governing responsibilities also shape discourse. The analysis directly addresses key questions about the evolution of topics, sentiment dynamics, and party-specific discourse strategies in the Bundestag.

View on arXivView PDF

Code Implementations

No confident code match yet

We couldn't find an author-owned or strongly-evidenced community implementation for this paper. Any repos shown below are weak matches — verify before relying on them.

No code implementations found yet.

Know of an implementation? Let us know in the comments below!

Similar Papers

Cite this paper

@article{ptz2025analyzing,
  title  = {Analyzing German Parliamentary Speeches: A Machine Learning Approach for Topic and Sentiment Classification},
  author = {Lukas Pätz and Moritz Beyer and Jannik Späth and Lasse Bohlen and Patrick Zschech and Mathias Kraus and Julian Rosenberger},
  year   = {2025},
  eprint = {2508.03181},
  archivePrefix = {arXiv},
  url    = {http://arxiv.org/abs/2508.03181v1}
}

Add a badge to your README

Shows whether official code is linked for this paper.

Code of Paper badge
[![Code of Paper](https://codeofpaper.com/badge/2508.03181.svg)](https://codeofpaper.com/paper/2508.03181)

Discussion