Topic modeling approach for tunisian social media posts
# TunVeCTM — Topic Modeling of Tunisian Dialect on Social Media
Topic modeling pipeline for user-generated **Tunisian dialect** text (Arabizi and Arabic script) from social media, using **Contextualized Topic Models (CTM)** built on several combined embedding strategies.
This repo accompanies:
- 📝 *TunVeCTM: A Topic Modeling Approach of Tunisian Dialect on Social Media*
- 📝 *Topic Modeling of User-Generated Arabic on Social Media: A Systematic Literature Review*
- 🎓 Master's Thesis: *Topic Modeling of Tunisian Dialect on Social Media: A Contextual Approach using Combined Embeddings* — ISG Tunis, 2025
## 🧠 Overview
Tunisian dialect on social media is highly informal and code-switched (Arabic script, Latin script/Arabizi, French loanwords), which makes standard topic modeling tools a poor fit. This project addresses that by:
1. Applying dialect-specific preprocessing (custom stopword removal, character elongation normalization, Arabizi digit-to-letter conversion)
2. Generating and comparing **7 embedding strategies**, each feeding a Combined Topic Model (CombinedTM)
3. Evaluating each configuration with topic coherence metrics (**C_V**, **NPMI**) across a grid of topic counts
## 📁 Repository Structure
Each embedding combination has its **own self-contained notebook** — every notebook repeats the shared preprocessing steps so it can be run independently, without needing to run the others first.
```
tunvectm/
├── notebooks/
│ ├── 01_tunbert_baseline.ipynb # TunBERT contextual embeddings (baseline)
│ ├── 02_tunbert_fasttext.ipynb # TunBERT + FastText (subword robustness)
│ ├── 03_e5_tunbert.ipynb # E5 (multilingual) + TunBERT
│ ├── 04_sbert_tunbert.ipynb # SBERT (multilingual) + TunBERT
│ ├── 05_tunbert_doc2vec.ipynb # TunBERT + Doc2Vec (corpus-trained)
│ ├── 06_arabertopic.ipynb # AraBERT only — MSA baseline (no TunBERT)
│ └── 07_rober2vectm.ipynb # XLM-RoBERTa (Arabic) + Doc2Vec
├── data/
│ └── README.md …