Skip to content

About

A multi-dataset NLP and machine learning pipeline analyzing 2,833 Reddit posts from r/breakups and r/relationship_advice to uncover what drives community engagement. Confirms the Sentiment Paradox : emotional tone barely predicts virality; instead structure does.

Topics

Resources

Stars

1 star

Watchers

0 watching

Forks

Latest commit

 

History

6 Commits

Folders and files

Repository files navigation

💔 The Anatomy of a Modern Breakup

A Multi-Dataset Sentiment & Engagement Analytics Pipeline

Course: Data Analytics — DS26
Student: Okah Ahone Ebwekoh
Supervisor: Prof. Nor Azizah Hitam
University: University of Europe for Applied Sciences
Submitted: July 2026


📌 Project Overview

This project analyzes over 2,800 Reddit posts from r/breakups and r/relationship_advice to understand what drives community engagement in online relationship support communities. Using sentiment analysis, topic clustering, and supervised machine learning, the project tests the core hypothesis that structural factors — not emotional content — are the primary drivers of post visibility.

Key finding: Emotional sentiment has near-zero correlation with engagement. Comment count and post timing are the strongest predictors of whether a post goes viral — not how emotional the writing is. We call this the Sentiment Paradox.


📁 Project Structure

data-analytics-breakup-project/
│
├── datasets/
│ ├── raw/ → Source datasets (not tracked)
│ └── processed/ → Processed dataset (not tracked)
│
├── notebooks/
│ └── DA_jupyter notebook.ipynb
│
├── dashboards/
│ └── dashboard.py → Interactive Streamlit dashboard
│
├── diagrams/ → EDA, sentiment, topic & model visualizations
│
├── reports/ → Project reports and conference paper
│
├── presentations/
│ └── Data analytics final presentation.pptx
│
├── documentation/
│ └── tools_used.docx
│
└── references/
└── citation_list.bib

📊 Datasets

Dataset Source Rows Columns
relationship_advice.csv Kaggle 1,885 8
reddit_breakup_dataset_cleaned.csv Kaggle 948 10
Combined (after cleaning) — 2,825 12

🛠️ Tools & Technologies

Category Tools
Language Python 3
Data Processing Pandas, NumPy
Text Cleaning re (regex)
Sentiment Analysis VADER (vaderSentiment)
Topic Modeling Scikit-learn (LDA, CountVectorizer)
Machine Learning Scikit-learn (Logistic Regression, Decision Tree, Random Forest)
Class Imbalance imbalanced-learn (SMOTE)
Visualization Matplotlib, Seaborn, WordCloud
Dashboard Streamlit
Environment Jupyter Notebook (Anaconda)

⚙️ How to Run

1. Install dependencies

pip install pandas numpy matplotlib seaborn scikit-learn imbalanced-learn vaderSentiment wordcloud streamlit

2. Run the Jupyter Notebook

Open Anaconda Navigator → Launch Jupyter Notebook → Open notebooks/main_analysis.ipynb → Run All Cells

Make sure the datasets are in data/raw/ before running.

3. Run the Streamlit Dashboard

cd "path/to/Final_Project_Submission"
streamlit run dashboards/dashboard.py

The dashboard will open automatically at http://localhost:8501


🔑 Key Results

Approach Best Recall Best F1
Baseline Models 0.244 (RF) 0.349 (RF)
Class Weighted 0.944 (DT) 0.630 (DT)
SMOTE 0.861 (DT) 0.634 (DT)

5 Topic Clusters identified:

  • Heartbreak & Recovery — 30.4%
  • Long-term Strain — 21.3%
  • Dating & Early Relationships — 17.9%
  • Intimacy & Dynamics — 16.2%
  • Social & Family Conflict — 14.4%

About

A multi-dataset NLP and machine learning pipeline analyzing 2,833 Reddit posts from r/breakups and r/relationship_advice to uncover what drives community engagement. Confirms the Sentiment Paradox : emotional tone barely predicts virality; instead structure does.

Topics

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages