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 …