# Amharic Sentiment Analysis
A deep learning-based sentiment analysis system for Amharic (Ethiopian) text. This project implements multiple neural network architectures for binary sentiment classification (positive/negative).
## Features
- **Multiple Model Architectures**: CNN, BiLSTM, GRU, and hybrid CNN-BiLSTM
- **Framework Support**: TensorFlow/Keras, PyTorch, and Hugging Face Transformers
- **Amharic-Specific Preprocessing**: Handles Ge'ez script character variants and labialized characters
- **Production-Ready API**: FastAPI REST API with Docker support
- **Comprehensive Evaluation**: Accuracy, precision, recall, F1-score, ROC-AUC metrics
## Model Performance
| Model | Accuracy | Precision | Recall | F1 Score |
|-------|----------|-----------|--------|----------|
| CNN | 84.8% | 80.4% | 73.7% | - |
| GRU | 88.6% | 88.0% | 91.5% | - |
| BiLSTM | 87.6% | 84.2% | 92.9% | - |
| **CNN-BiLSTM** | **91.6%** | **90.5%** | **93.9%** | - |
## Project Structure
```
Amharic-Sentiment-Analysis/
├── amharic_sentiment/ # Main package
│ ├── preprocessing/ # Text cleaning and normalization
│ ├── data/ # Dataset and data loading utilities
│ ├── models/ # TensorFlow/Keras models
│ ├── pytorch/ # PyTorch models
│ ├── transformers/ # Hugging Face Transformers
│ ├── training/ # Training pipeline
│ ├── evaluation/ # Metrics and visualization
│ └── utils/ # Configuration and logging
├── api/ # FastAPI REST API
├── docker/ # Docker configuration
├── configs/ # YAML configuration files
├── scripts/ # Utility scripts
├── notebooks/ # Jupyter notebooks
└── dataset/ # Training data
```
## Installation
### From Source
```bash
# Clone the repository
git clone
github.com …