← All projects
Bluesky Political Sentiment Analysis
Snowflake · SQL · Python (statsmodels, SciPy) · Tableau
How do Bluesky users talk about political and cultural topics, and does that
change over time? This project matches NLP-labeled posts from the Bluesky
firehose (Summer 2025) against a list of keywords, aggregates sentiment at the
thread level to avoid over-counting multi-post threads, and tests the results
statistically: sample-size checks, chi-square goodness-of-fit, stationarity,
seasonal decomposition and correlation.
Interactive dashboard. Best viewed on a desktop screen —
open full screen on Tableau Public.
Method in brief
- Sampling: an interrupted census — every post in a 5-minute window, every 3 hours — so time series are aggregated by day.
- Threads, not posts: each author × keyword × thread counts once per sentiment, removing pseudoreplication from self-reply chains.
- Quality filter: only sentiment labels with confidence above 0.6.
- Tests: Cochran's sample size, chi-square vs. an even sentiment split, Augmented Dickey-Fuller, seasonal decomposition (weekly period), Pearson correlation and Welch's t-test for before/after event comparisons.
Code on GitHub