# bilall2003/social-media-sentimental-analysis architecture

> Architecture diagram of the GitHub repository bilall2003/social-media-sentimental-analysis, generated by GitDiagram from its file tree, README and a sample of source files (last updated 2026-09-26). It is an AI-made overview: check details against the source.

- Interactive diagram: https://gitdiagram.com/bilall2003/social-media-sentimental-analysis
- Repository: https://github.com/bilall2003/social-media-sentimental-analysis

## Overview

This is a Streamlit dashboard for exploring social-media sentiment data and analyzing entered text. Users can inspect dataset summaries, explore vocabulary and filtered posts, and compare machine-learning and VADER sentiment results alongside NMF topic keywords and dataset-wide topic context. The runtime is concentrated in `script/main.py`; the README documents capabilities whose implementation details are not visible in the excerpts, so uncertain internal wiring is omitted. The tree contains training and test CSVs; their loading path is not shown.

Main entry points: [`script/main.py`](https://github.com/bilall2003/social-media-sentimental-analysis/blob/main/script/main.py) (Streamlit app)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_dashboard["Dashboard &amp; Exploration"]
  node_app["Streamlit app<br/>[main.py]"]
  node_overview["Data overview<br/>[main.py]"]
  node_eda["EDA visualizations<br/>[main.py]"]
  node_vocab["Vocabulary search<br/>[main.py]"]
  node_filter["Text filtering<br/>[main.py]"]
end

subgraph group_sentiment["Sentiment Analysis"]
  node_tfidf["TF-IDF features<br/>[main.py]"]
  node_ml["ML sentiment model<br/>[main.py]"]
  node_vader["VADER engine<br/>[main.py]"]
  node_sentiment_results["Sentiment results<br/>[main.py]"]
end

subgraph group_topics["Topic Discovery"]
  node_nmf["NMF topic model<br/>[main.py]"]
  node_topic_results["Topic keywords<br/>[main.py]"]
end

subgraph group_data["Dataset"]
  node_train[("Training data<br/>[train.csv]")]
  node_test[("Test data<br/>[test.csv]")]
end

node_user(("Dashboard user"))

node_user -->|"uses"| node_app
node_app -->|"shows"| node_overview
node_app -->|"shows"| node_eda
node_app -->|"offers"| node_vocab
node_app -->|"offers"| node_filter
node_app -->|"invokes"| node_ml
node_app -->|"invokes"| node_vader
node_app -->|"invokes"| node_nmf
node_ml -->|"transforms text"| node_tfidf
node_vocab -->|"uses features"| node_tfidf
node_ml -->|"produces"| node_sentiment_results
node_vader -->|"produces scores"| node_sentiment_results
node_nmf -->|"produces"| node_topic_results

click node_app "https://github.com/bilall2003/social-media-sentimental-analysis/blob/main/script/main.py"
click node_overview "https://github.com/bilall2003/social-media-sentimental-analysis/blob/main/script/main.py"
click node_eda "https://github.com/bilall2003/social-media-sentimental-analysis/blob/main/script/main.py"
click node_vocab "https://github.com/bilall2003/social-media-sentimental-analysis/blob/main/script/main.py"
click node_filter "https://github.com/bilall2003/social-media-sentimental-analysis/blob/main/script/main.py"
click node_tfidf "https://github.com/bilall2003/social-media-sentimental-analysis/blob/main/script/main.py"
click node_ml "https://github.com/bilall2003/social-media-sentimental-analysis/blob/main/script/main.py"
click node_vader "https://github.com/bilall2003/social-media-sentimental-analysis/blob/main/script/main.py"
click node_sentiment_results "https://github.com/bilall2003/social-media-sentimental-analysis/blob/main/script/main.py"
click node_nmf "https://github.com/bilall2003/social-media-sentimental-analysis/blob/main/script/main.py"
click node_topic_results "https://github.com/bilall2003/social-media-sentimental-analysis/blob/main/script/main.py"
click node_train "https://github.com/bilall2003/social-media-sentimental-analysis/blob/main/Data/train.csv"
click node_test "https://github.com/bilall2003/social-media-sentimental-analysis/blob/main/Data/test.csv"

classDef toneNeutral fill:#f8fafc,stroke:#334155,stroke-width:1.5px,color:#0f172a
classDef toneBlue fill:#dbeafe,stroke:#2563eb,stroke-width:1.5px,color:#172554
classDef toneAmber fill:#fef3c7,stroke:#d97706,stroke-width:1.5px,color:#78350f
classDef toneMint fill:#dcfce7,stroke:#16a34a,stroke-width:1.5px,color:#14532d
classDef toneRose fill:#ffe4e6,stroke:#e11d48,stroke-width:1.5px,color:#881337
classDef toneIndigo fill:#e0e7ff,stroke:#4f46e5,stroke-width:1.5px,color:#312e81
classDef toneTeal fill:#ccfbf1,stroke:#0f766e,stroke-width:1.5px,color:#134e4a
class node_app,node_overview,node_eda,node_vocab,node_filter,node_user toneBlue
class node_tfidf,node_ml,node_vader,node_sentiment_results toneAmber
class node_nmf,node_topic_results toneMint
class node_train,node_test toneRose
```

## Components

### Dashboard & Exploration

- [Streamlit app](https://github.com/bilall2003/social-media-sentimental-analysis/blob/main/script/main.py): `script/main.py`
- [Data overview](https://github.com/bilall2003/social-media-sentimental-analysis/blob/main/script/main.py): `script/main.py`
- [EDA visualizations](https://github.com/bilall2003/social-media-sentimental-analysis/blob/main/script/main.py): `script/main.py`
- [Vocabulary search](https://github.com/bilall2003/social-media-sentimental-analysis/blob/main/script/main.py): `script/main.py`
- [Text filtering](https://github.com/bilall2003/social-media-sentimental-analysis/blob/main/script/main.py): `script/main.py`

### Sentiment Analysis

- [TF-IDF features](https://github.com/bilall2003/social-media-sentimental-analysis/blob/main/script/main.py): `script/main.py`
- [ML sentiment model](https://github.com/bilall2003/social-media-sentimental-analysis/blob/main/script/main.py): `script/main.py`
- [VADER engine](https://github.com/bilall2003/social-media-sentimental-analysis/blob/main/script/main.py): `script/main.py`
- [Sentiment results](https://github.com/bilall2003/social-media-sentimental-analysis/blob/main/script/main.py): `script/main.py`

### Topic Discovery

- [NMF topic model](https://github.com/bilall2003/social-media-sentimental-analysis/blob/main/script/main.py): `script/main.py`
- [Topic keywords](https://github.com/bilall2003/social-media-sentimental-analysis/blob/main/script/main.py): `script/main.py`

### Dataset

- [Training data](https://github.com/bilall2003/social-media-sentimental-analysis/blob/main/Data/train.csv): `Data/train.csv`
- [Test data](https://github.com/bilall2003/social-media-sentimental-analysis/blob/main/Data/test.csv): `Data/test.csv`

### Other components

- **Dashboard user**

## Connections

- Dashboard user → Streamlit app: uses
- Streamlit app → Data overview: shows
- Streamlit app → EDA visualizations: shows
- Streamlit app → Vocabulary search: offers
- Streamlit app → Text filtering: offers
- Streamlit app → ML sentiment model: invokes
- Streamlit app → VADER engine: invokes
- Streamlit app → NMF topic model: invokes
- ML sentiment model → TF-IDF features: transforms text
- Vocabulary search → TF-IDF features: uses features
- ML sentiment model → Sentiment results: produces
- VADER engine → Sentiment results: produces scores
- NMF topic model → Topic keywords: produces
