This project analyzes customer satisfaction with mobile banking applications in Ethiopia by collecting and processing user reviews from the Google Play Store. It simulates the role of a Data Analyst at Omega Consultancy, providing insights and recommendations to improve digital banking experiences for:
- 🇪🇹 Commercial Bank of Ethiopia (CBE)
- 🇪🇹 Bank of Abyssinia (BOA)
- 🇪🇹 Dashen Bank
- banking-review-analysis/
- ├── data/ # Raw and cleaned review CSVs
- ├── notebooks/ # Jupyter notebooks for each task
- ├── scripts/ # Python scripts for scraping, analysis, DB
- ├── db/ # SQL schema and inserts
- ├── plots/ # Visualizations
- ├── reports/ # Markdown report with findings
- ├── requirements.txt # Project dependencies
- ├── README.md # Project documentation
- Scraped 1,200+ user reviews using
google-play-scraper. - Cleaned the data (duplicates, missing values, normalized dates).
- Stored as structured CSV with:
review,rating,date,bank,source.
- Applied DistilBERT and VADER to score sentiments (positive/negative/neutral).
- Extracted keywords using spaCy and TF-IDF.
- Clustered keywords into 3–5 themes per bank (e.g., 'Login Issues', 'Transaction Delays').
- Designed relational schema:
Banks,Reviews. - Inserted cleaned data (>1,000 rows) into Oracle XE using Python +
cx_Oracle.
- Visualized trends (bar plots, word clouds).
- Identified pain points (e.g., login failure, app crashes) and satisfaction drivers (e.g., easy navigation).
- Proposed 2+ actionable improvements per bank.
- Integrated transformer-based models (DistilBERT) for advanced sentiment classification.
- Automated thematic clustering using topic modeling (LDA with spaCy).
- Enhanced Oracle XE database for efficient querying of sentiment and thematic data.
- Built interactive visualizations with Dash/Plotly (trend plots, word clouds, rating distributions).
- Delivered comprehensive, actionable recommendations for each bank.
- 📈 Sentiment Distribution by Bank
- ☁️ Word Clouds (Positive & Negative)
- 📉 Ratings vs. Sentiment Trends
- 🧠 Thematic Clusters per Bank
- Python 3.8+
- Oracle XE Database
- GitHub (version control, PRs, branches per task)
- Pandas, NumPy
- Scikit-learn
- Google Play Scraper
- Transformers (DistilBERT)
- VADER Sentiment Analysis
- spaCy (en_core_web_md model)
- Gensim (LDA Topic Modeling)
- pyLDAvis (Topic Visualization)
- Matplotlib, Seaborn
- Plotly, Dash (Interactive Dashboard)
- WordCloud
- cx_Oracle (Python Oracle Client)
- tqdm (Progress Bars)
- joblib (Parallel Processing)
- python-dotenv (Environment Variables)
-
Clone this repo:
git clone https://github.com/haile12michael12/fintech-customer-analyst.git cd fintech-customer-analytics -
Set up the environment:
python setup.pyThis will install all dependencies, create necessary directories, and verify data files.
-
Run the complete analysis pipeline:
python run_analysis.py --allOr run individual components:
python run_analysis.py --setup # Set up the environment python run_analysis.py --sentiment # Run transformer-based sentiment analysis python run_analysis.py --topics # Run topic modeling for thematic analysis python run_analysis.py --database # Set up Oracle XE database python run_analysis.py --recommendations # Generate recommendations python run_analysis.py --dashboard # Launch interactive dashboard python run_analysis.py --report # Generate summary report -
Access the interactive dashboard:
- Open your browser and navigate to
http://localhost:8050/
- Open your browser and navigate to
- PROJECT_PLAN.md: Overview of project improvements and completed tasks
- IMPLEMENTATION_PLAN.md: Detailed implementation steps for each task
- TIMELINE.md: Project schedule with milestones and deliverables
- src/transformer_sentiment.py: Advanced sentiment analysis using DistilBERT
- src/topic_modeling.py: Thematic clustering using LDA and spaCy
- db/oracle_integration.py: Oracle XE database integration
- src/dashboard.py: Interactive visualization dashboard using Dash/Plotly
- src/generate_recommendations.py: Actionable recommendations generator
- reports/recommendations.md: Comprehensive recommendations for each bank
- reports/recommendations_template.md: Template for bank-specific recommendations