Opening the Data and Code Behind my Propaganda Accusations Project and an Ode to Open Science

One thing I wanted to avoid with my Bachelor’s thesis was producing a dataset, running the analysis, submitting the PDF, and then letting the entire research pipeline disappear into a folder on my laptop.

So I made the core replication materials publicly available on GitHub.

The repository contains the data collection, coding, analysis, and figure-generation scripts behind my project on the use of “propaganda” as a political accusation in Romanian parliamentary debate between 2000 and 2024.

Repository: https://github.com/andreicaus33/Propaganda_Accusations_Code

What is included?

  1. Two parliamentary scrapers. One scraper collects Senate stenograms from senat.ro, while another scrapes Chamber of Deputies material published through Monitorul Oficial.

  2. The extracted dataset. The raw scraped output contains 41-word snippets centred on the Romanian keyword “propagandă”, covering the period from 1 January 2000 to 31 December 2024. The repository also includes the final coded dataset used for the thesis analysis: 2,498 unique snippets after deduplication and restriction to 2024.

  3. A rule-based coding pipeline. Each snippet is coded across five binary categories: delegitimization, polarization, scapegoating, conspiracy rhetoric, anti-media rhetoric. The full coding rules are documented in the thesis appendix.

  4. The statistical analysis. The repository includes the scripts used for descriptive statistics, logistic regressions, and the OLS model for the broader weaponization score.

  5. Figure generation. A separate script reproduces the figures used in the thesis, making the full path from scraped text to final result transparent.

Why make it public?

For me, open research should do more than allow someone to check whether the same coefficient can be reproduced.

The more interesting possibility is that someone can take the infrastructure and ask a different question.

The scrapers were built around parliamentary archives rather than around one specific theoretical framework, which means the same general approach could be adapted to study other forms of political language: disinformation, corruption, sovereignty, foreign influence, migration, populism, or institutional trust.

The coding pipeline can also be modified. My own framework focused on propaganda accusations, but the broader structure is reusable:

collect political text → define explicit coding rules → validate automated coding against human coding → analyse longitudinal patterns.

That is particularly useful in political communication and computational social science, where large amounts of public text are available but are not always easy to turn into transparent and replicable datasets.

A note on reliability

The automated coding was validated against a 10% human-coded subsample.

Cohen’s κ was:

  • 0.82 for delegitimization

  • 0.87 for anti-media rhetoric

  • 0.74 for conspiracy rhetoric

  • 0.55 for polarization

Scapegoating had near-zero prevalence, making κ effectively degenerate, so that result should be interpreted with caution.

I think this is also an important part of open research.

Making code public should not only mean showing the parts that worked. It should also make the limits of the measurement strategy visible.

Where this could go next

The thesis focused on one term, one country, and one institutional arena.

But the same infrastructure could be extended in several directions:

  • comparing parliamentary rhetoric across post-communist democracies

  • studying similar accusations across social media platforms

  • extending the framework to terms such as “fake news” or “disinformation”

  • examining who gets targeted by accusations and how those targets shift during crises

  • linking parliamentary rhetoric to elections, protest cycles, media coverage, or public trust

The thesis is finished.

The research infrastructure does not have to be.

Full repository:
https://github.com/andreicaus33/Propaganda_Accusations_Code

Previous
Previous

Another World, Right Next to Us

Next
Next

When “Propaganda” Becomes the Argument