Skip to content

A sentiment Analysis Project of mobile banking applications with focus on Retail focused Banks using customer reviews on Google Play Store .

Notifications You must be signed in to change notification settings

haile12michael12/fintech-customer-analytics

Repository files navigation

📊 Banking App Review Sentiment Analysis (CBE, BOA, Dashen)

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

🗂️ Repository Structure

  • 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

🚀 Project Tasks

✅ Task 1: Data Collection & Preprocessing

  • 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.

✅ Task 2: Sentiment & Thematic Analysis

  • 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').

✅ Task 3: Oracle DB Integration

  • Designed relational schema: Banks, Reviews.
  • Inserted cleaned data (>1,000 rows) into Oracle XE using Python + cx_Oracle.

✅ Task 4: Insights & Recommendations

  • 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.

✅ Task 5: Project Enhancement (Completed)

  • 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.

📊 Example Visualizations

  • 📈 Sentiment Distribution by Bank
  • ☁️ Word Clouds (Positive & Negative)
  • 📉 Ratings vs. Sentiment Trends
  • 🧠 Thematic Clusters per Bank

🛠️ Technologies Used

Core Technologies

  • Python 3.8+
  • Oracle XE Database
  • GitHub (version control, PRs, branches per task)

Data Processing & Analysis

  • Pandas, NumPy
  • Scikit-learn
  • Google Play Scraper

NLP & Sentiment Analysis

  • Transformers (DistilBERT)
  • VADER Sentiment Analysis
  • spaCy (en_core_web_md model)
  • Gensim (LDA Topic Modeling)
  • pyLDAvis (Topic Visualization)

Visualization

  • Matplotlib, Seaborn
  • Plotly, Dash (Interactive Dashboard)
  • WordCloud

Database

  • cx_Oracle (Python Oracle Client)

Utilities

  • tqdm (Progress Bars)
  • joblib (Parallel Processing)
  • python-dotenv (Environment Variables)

📚 How to Run

  1. Clone this repo:

    git clone https://github.com/haile12michael12/fintech-customer-analyst.git
    cd fintech-customer-analytics
    
  2. Set up the environment:

    python setup.py
    

    This will install all dependencies, create necessary directories, and verify data files.

  3. Run the complete analysis pipeline:

    python run_analysis.py --all
    

    Or 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
    
  4. Access the interactive dashboard:

    • Open your browser and navigate to http://localhost:8050/

📋 Project Documentation

Planning Documents

  • 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

Implementation Files

  • 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

Output Reports

  • reports/recommendations.md: Comprehensive recommendations for each bank
  • reports/recommendations_template.md: Template for bank-specific recommendations

About

A sentiment Analysis Project of mobile banking applications with focus on Retail focused Banks using customer reviews on Google Play Store .

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published