← back to the wall

Discursul lui Nicușor Dan

RESEARCH

Quantitative Discourse Analysis

MAY 2026

Evolutia discursului lui Nicusor Dan - Quantitative Discourse Analysis
built with
PythonBERTopicspaCysentence-transformersGeminiQuartoyt-dlp

"Cat din ce a spus se regaseste in ce face? Si cat din ce face nu apare in ce spune?"

Overview

Nicusor Dan was elected president of Romania in May 2025. A year later I collected everything he had said in public — from the campaign through the first year of the mandate — and asked a question that is easy to argue about and hard to answer: how much of the talk turned into action, and how much of the action never made it into the talk.

1,525 raw documents from 9 sources (his Facebook page and 8 YouTube channels), deduplicated to 1,110 canonical documents, about 650,000 words. Written communication and spoken communication were kept as separate projections, which turned out to matter more than anything else in the study.

What the numbers said

  • Two distinct registers. Facebook is institutional and brand-shaped; video is deliberative and reflective. The same person, two different communication modes — and 76% of the Facebook corpus collapses into a single institutional mega-topic.
  • Volume collapsed after inauguration — 3.6x lower than during the campaign.
  • The campaign brand was shed. "Romania onesta" goes from a dominant TF-IDF term to literally zero after the inauguration.
  • 131 promises extracted and classified: 20% kept, 59% in progress, 21% never mentioned again. Diplomacy is the only domain with a high completion rate (60%); Bucharest and local issues are effectively abandoned in the discourse (67% never mentioned).

The part I am proudest of: proving myself wrong

The promise classifier only reads what the president says. So I ran an independent fact-check against the real world — decrees, laws, signed contracts — on ten of the biggest promises.

Six of the ten had actually been done while my classifier had marked them NO_MENTION or IN_PROGRESS: the magistrates' pension law promulgated, DNA and DIICOT appointments made, the largest deficit correction in the EU, 50 km of tram contracts signed, eight consolidation sites active out of five promised.

That is a real limitation of a discourse-only method, and it is written into the findings rather than buried. The honest conclusion is not "he did not deliver" — it is that he talks about intentions more than about his own results, which is a different and more interesting finding.

Method

  • Collection — Facebook posts plus 8 YouTube channels via yt-dlp and the transcript API behind rotating proxies
  • Speaker diarization with an LLM — Romanian TV transcripts do not say who is speaking; Gemini separates his lines from the interviewers' at 95-97% accuracy on the validation set
  • Deduplication — the same speech is republished across channels; Jaccard similarity at 0.70 collapses 1,525 documents to 1,110
  • Topic modelling — BERTopic with Romanian sentence embeddings, 26 topics, run on a free Colab T4
  • Analysis passes — 42 numbered scripts covering frequency, topics over time, promises, entities, complexity, hedging and stylometry
  • Verification — a self-audit on stratified samples (75% classifier agreement) and the independent web fact-check above
  • Publication — a Quarto site with the full write-up, all charts, and the method documented end to end

Why I built this

Because "he said one thing and did another" is a sentence people repeat without ever measuring it, and because the raw material is entirely public. Also because I wanted to know what happens when you point the same tooling at political speech that everyone points at customer reviews.

Evolutia discursului lui Nicusor Dan - Quantitative Discourse Analysis screenshot 1
Evolutia discursului lui Nicusor Dan - Quantitative Discourse Analysis screenshot 2