Companion code for the bipartite channel-concept analysis of Sulzhytski and Kulhayeva (2025), Ambassadors of War, published in Intersections. East European Journal of Society and Politics.
Citation. Sulzhytski, I., & Kulhayeva, V. (2025). Ambassadors of War: Social and Semantic Networks of Belarusian Pro-Government Telegram Channels during the 2022 Russian Invasion of Ukraine. Intersections. East European Journal of Society and Politics, 11(1), 86–110. https://doi.org/10.17356/ieejsp.v11i1.1224
@article{sulzhytski2025ambassadors,
title = {Ambassadors of War: Social and Semantic Networks of Belarusian
Pro-Government Telegram Channels during the 2022 Russian Invasion
of Ukraine},
author = {Sulzhytski, Ilya and Kulhayeva, Varvara},
journal = {Intersections. East European Journal of Society and Politics},
volume = {11},
number = {1},
pages = {86--110},
year = {2025},
doi = {10.17356/ieejsp.v11i1.1224}
}This repository implements the bipartite channel-concept analysis (Stage 3) of the four-stage socio-semantic pipeline described in Sulzhytski and Kulhayeva (2025). The analysis addresses three research questions drawn from §1 of the paper:
| Research question | |
|---|---|
| RQ1 | How are pro-government Telegram channels in Belarus interconnected in terms of citation patterns and core-periphery structure? |
| RQ2 | What are the similarities and differences in the network's semantic patterns across the core, near-periphery, and far-periphery channels? |
| RQ3 | How are the shared concepts disseminated by these channels interconnected, particularly concerning pro-Russian and anti-Ukrainian agendas? |
The pipeline is the socio-semantic network protocol of Roth and Cointet (2010), applied to 21 pro-government Belarusian Telegram channels during the first month of the 2022 Russian invasion of Ukraine (22 February – 24 March 2022).
| Stage | Operation | Graph | Tool |
|---|---|---|---|
| 1 | Mutual citation analysis | Directed weighted | NetworkX, Gephi 0.10 |
| 2 | Extended hyperlink analysis | Directed weighted | NetworkX |
| 3 | Bipartite channel-concept analysis (this notebook) | Bipartite weighted | scikit-learn + NetworkX |
| 4 | Inter-conceptual relations (unipartite concept projection) | Unipartite weighted | NetworkX |
The present notebook implements Stage 3 and provides the TF-IDF weighted bipartite graph that serves as the input to the concept projection of Stage 4.
- The bipartite channel-concept network reveals a dual-core semantic structure in which pro-Russian military language and pro-Lukashenka state-centric discourse coexist, mediated by public-propagandist channels.
- Anonymous peripheral channels are the most active disseminators of overtly pro-war and anti-Ukrainian content, consistent with the argument developed in §4.2 of the paper.
- Russian political language — pro-Russian warfare and pro-Russian foreign policy combined — accounts for roughly sixty per cent of the distinctive shared concepts in the network, suggesting a critical dominance of Russian discourse within Belarusian pro-government media.
git clone https://github.com/<username>/ambassadors-of-war.git
cd ambassadors-of-war
python -m venv .venv && source .venv/bin/activate
pip install -r requirements.txt
python -m spacy download ru_core_news_lg
jupyter lab Ambassadors_of_War_Portfolio.ipynbThe notebook loads a local pickle at belarusian_channels.pkl if present, and otherwise falls back on a synthetic demonstration dataset whose vocabulary biases reproduce the five thematic communities identified in §4.2 of the paper. The real Telegram corpus is not redistributed for ethical reasons (see §3.5 of the paper).
| File | Purpose |
|---|---|
Ambassadors_of_War_Portfolio.ipynb |
Main reproducible notebook implementing Stage 3 |
requirements.txt |
Python dependencies |
LICENSE |
MIT |
README.md |
This file |
- Text extraction and tokenisation. A Cyrillic-aware regex extracts alphabetic tokens of length at least two from the Telegram entity structure.
- Morphological normalisation. Tokens are lemmatised with
pymystem3(Yandex Mystem 3.0) and filtered by part of speech with spaCy'sru_core_news_lgmodel, retaining only nouns and proper nouns. - Phrase detection. Bigrams and trigrams are identified with Gensim's
Phrasesmodel to capture compound concepts (special military operation, humanitarian corridor). - TF-IDF weighting. Each channel is treated as a single document and weighted via scikit-learn's
TfidfVectorizer, producing a channel × concept matrix. - Bipartite graph construction. Channels and concepts form the two partitions of a weighted bipartite graph; edges are the top-30 TF-IDF concepts per channel.
- Export to Gephi. The graph is serialised as GEXF for community detection (Louvain modularity) and final layout (Force Atlas 2) in Gephi 0.10, as described in §3.4 of the paper.
Channel identities are replaced with the typology codes used in the paper (ANON, GOV_ORG, OFFICIAL_MEDIA, PUBLIC_ACTIVIST) to avoid lending additional visibility to propaganda sources. The repository does not distribute raw Telegram content.
Roth, C. (2013). Socio-semantic frameworks. Advances in Complex Systems, 16(4–5), 1350013.
Roth, C., & Cointet, J.-P. (2010). Social and semantic coevolution in knowledge networks. Social Networks, 32(1), 16–29.
Sulzhytski, I., & Kulhayeva, V. (2025). Ambassadors of War: Social and Semantic Networks of Belarusian Pro-Government Telegram Channels during the 2022 Russian Invasion of Ukraine. Intersections. East European Journal of Society and Politics, 11(1), 86–110. https://doi.org/10.17356/ieejsp.v11i1.1224
MIT — see LICENSE.