# Ethiopian Banks Reviews Scraper & Sentiment Analysis
This project collects, cleans, and analyzes customer reviews from the Google Play Store for three major Ethiopian banks:
1. **Commercial Bank of Ethiopia (CBE)** - App ID: `prod.cbe.birr` (CBEBirr Plus)
2. **Bank of Abyssinia (BOA)** - App ID: `com.boa.boaMobileBanking` (BoA Mobile)
3. **Dashen Bank** - App ID: `com.dashen.dashensuperapp` (Dashen Bank Super App)
It implements data collection, text preprocessing, a modular NLP pipeline, VADER-based sentiment analysis, TF-IDF thematic keyword extraction, PostgreSQL loading, and visual insights.
## Project Structure
```text
ethiopian_banks_reviews/
├── .github/
│ └── workflows/
│ └── unittests.yml # CI/CD configuration to run unit tests
├── data/ # Scraped and processed CSV data (git-ignored)
├── notebooks/
│ └── images/ # Generated visualization charts (git-ignored/documented)
├── reports/
│ └── insights_recommendations.md # Analysis of satisfaction drivers & recommendations
├── scripts/
│ ├── scrape_reviews.py # Scrapes reviews from Google Play Store
│ ├── preprocess_data.py # Cleans reviews (dedupes, drops missing values, formats date)
│ ├── sentiment_thematic_analysis.py # Performs VADER sentiment analysis, TF-IDF, and maps themes
│ ├── insert_data.py # Inserts preprocessed & analyzed reviews into PostgreSQL
│ └── generate_insights.py # Generates sentiment and theme distribution plots
├── src/
│ ├── preprocessing.py # Reusable preprocessing library function
│ ├── nlp_pipeline.py # Modular tokenization, stop-word removal, and lemmatization
│ └── schema.sql # PostgreSQL schema defining tables and constraints
├── tests/
│ └── test_preprocessing.py # Unit tests for the preprocessing stage
├── .gitignore # Prevents committing datasets, virtual envs, etc.
├── requirements.txt # Project Python dependencies
└── RE …