Smart data collection for Tunisian Arabic emotion recognition
p# πΉπ³ Tunisian Emotion Recognition
> **A comprehensive modular system for Tunisian Arabic emotion recognition with data collection, preprocessing, annotation, and machine learning models**
---
## π Table of Contents
- Project Overview
- Key Features
- Project Structure
- Quick Start
- Module Documentation
- Architecture
- Contributing
- License
---
## π― Project Overview
This project provides a **complete pipeline for Tunisian Arabic emotion recognition**, from raw data collection to trained machine learning models. It's designed with modularity and extensibility in mind, allowing researchers and developers to easily customize each stage of the pipeline.
### What This Project Does
1. **Collects** Tunisian Arabic text from multiple sources (YouTube, Twitter, Reddit)
2. **Preprocesses** raw text data with cleaning and normalization
3. **Annotates** data with emotion labels using automated and manual methods
4. **Trains** machine learning models for emotion classification
5. **Evaluates** model performance with comprehensive metrics
---
## β¨ Key Features
- π **Modular Architecture**: Clean separation of concerns with independent modules
- π **Multi-Source Data Collection**: YouTube, Twitter, and Reddit scrapers
- π§Ή **Robust Preprocessing**: Text cleaning, normalization, and feature extraction
- π·οΈ **Flexible Annotation**: Automated NRC-AIL based annotation + manual verification
- π€ **Multiple ML Models**: Random Forest, SVM, Naive Bayes implementations
- π **Comprehensive Evaluation**: Accuracy, precision, recall, F1-score, confusion matrices
- π§ **Easy Configuration**: Centralized settings for all parameters
- π **Well-Documented**: Detailed guides for each module
---
## ποΈ Project Structure
```
EmotionRecogn/
βββ π src/ # Source code
β βββ data_collection/ # Data collection modules
β β βββ run_youtube_scraper.py # Entry point for YouTube scraping
β β βββ youtube_scraper.py # YouTube β¦