Sentiment analysis is a crucial task in natural language processing (NLP) and large language models (LLMs). This project aims to analyze user sentiment towards banking applications by extracting and processing user comments from app stores.
The final goal is to build a dashboard for comparing customer sentiment across different banking applications and to provide data-driven recommendations through a recommender system. This enables managers and supervisors to make informed decisions for improving their products based on real user feedback.
You can find the structure of the project in Wiki!
To achieve our goals, we have implemented the following steps:
We use Selenium to scrape user comments from Café Bazaar, a popular application marketplace. This allows us to collect real-time customer feedback for analysis.
A PostgreSQL database is used to store and manage the collected data efficiently. The database structure is designed to handle:
To improve data quality and ensure accurate analysis, we apply various preprocessing steps, including:
📅 Date Conversion: Converting Georgian dates to Jalali for better front-end usability.
📝 Text Cleaning: Removing unnecessary characters and normalizing Persian text.
🖼️ Encoding Images: Saving images as Base64 format for optimized storage.
For sentiment classification, we utilize Persian NLP models to categorize user comments into six sentiment classes:
✅ Positive
✅ Very Positive
❌ Negative
❌ Very Negative
⚖ Mixed Sentiment
🔍 No Sentiment Expressed
We run a scheduled task to update all existing app information daily. The system:
An organized logging system is implemented to track:
✅ Tasks (such as scraping and analysis)
❗ Errors and warnings
🔄 System updates
All logs are stored in the logs folder for easy debugging and monitoring.
One of the crucial aspects of the project is how the AI engine communicates with the Front-End client.
In some cases, the server is busy processing tasks while the client sends a request to check task status.
To avoid blocking requests, we implemented multi-threading, allowing the server to:
During scraping and sentiment analysis, various issues such as:
We extract useful insights from customer feedback by identifying:
We provide a dashboard to help managers make better decision.
📈 Track sentiment trends over time
🏦 Compare banking applications
📑 Get sentiment analysis and scrapping whenever the operator wants
🔄 View daily scraping status
📊 Generate reports for managers
First, install all required packages:
pip install -r config/requirements.txt
Create a .env file inside the config/ directory and configure:
DB_HOST="enter your host"
DB_NAME="enter your database name"
DB_USER="enter your database user"
DB_PASS="enter the password of database"
DB_PORT="enter port to connect to the database"
To use pgAdmin with PostgreSQL inside Docker, ensure that your local PostgreSQL service is stopped before running the container. For this purpose, you should stop posgresql on your local system:
sudo service postgresql stop
sudo docker-compose build
sudo docker-compose up app_scraper -d
sudo docker-compose logs -f app_scraper
Since logging is a key feature in your project, here’s a guide to monitoring logs:
Check sentiment analysis logs:
tail -f logs/analyze_sentiment.log
Check scraper logs:
tail -f logs/app_scraper_logging.log
Check daily tasks:
tail -f logs/daily_task.log
The RPC Server allows different components of the system to communicate efficiently.
python RPC/RPC_server.py
python RPC/RPC_client.py
If you have any suggestions to improve this repository, feel free to contact me...
📧contact: [email protected]
Sentiment analysis is a crucial task in natural language processing (NLP) and large language models (LLMs). This project aims to analyze user sentiment towards banking applications by extracting and processing user comments from app stores.
The final goal is to build a dashboard for comparing customer sentiment across different banking applications and to provide data-driven recommendations through a recommender system. This enables managers and supervisors to make informed decisions for improving their products based on real user feedback.
You can find the structure of the project in Wiki!
To achieve our goals, we have implemented the following steps:
We use Selenium to scrape user comments from Café Bazaar, a popular application marketplace. This allows us to collect real-time customer feedback for analysis.
A PostgreSQL database is used to store and manage the collected data efficiently. The database structure is designed to handle:
To improve data quality and ensure accurate analysis, we apply various preprocessing steps, including:
📅 Date Conversion: Converting Georgian dates to Jalali for better front-end usability.
📝 Text Cleaning: Removing unnecessary characters and normalizing Persian text.
🖼️ Encoding Images: Saving images as Base64 format for optimized storage.
For sentiment classification, we utilize Persian NLP models to categorize user comments into six sentiment classes:
✅ Positive
✅ Very Positive
❌ Negative
❌ Very Negative
⚖ Mixed Sentiment
🔍 No Sentiment Expressed
We run a scheduled task to update all existing app information daily. The system:
An organized logging system is implemented to track:
✅ Tasks (such as scraping and analysis)
❗ Errors and warnings
🔄 System updates
All logs are stored in the logs folder for easy debugging and monitoring.
One of the crucial aspects of the project is how the AI engine communicates with the Front-End client.
In some cases, the server is busy processing tasks while the client sends a request to check task status.
To avoid blocking requests, we implemented multi-threading, allowing the server to:
During scraping and sentiment analysis, various issues such as:
We extract useful insights from customer feedback by identifying:
We provide a dashboard to help managers make better decision.
📈 Track sentiment trends over time
🏦 Compare banking applications
📑 Get sentiment analysis and scrapping whenever the operator wants
🔄 View daily scraping status
📊 Generate reports for managers
First, install all required packages:
pip install -r config/requirements.txt
Create a .env file inside the config/ directory and configure:
DB_HOST="enter your host"
DB_NAME="enter your database name"
DB_USER="enter your database user"
DB_PASS="enter the password of database"
DB_PORT="enter port to connect to the database"
To use pgAdmin with PostgreSQL inside Docker, ensure that your local PostgreSQL service is stopped before running the container. For this purpose, you should stop posgresql on your local system:
sudo service postgresql stop
sudo docker-compose build
sudo docker-compose up app_scraper -d
sudo docker-compose logs -f app_scraper
Since logging is a key feature in your project, here’s a guide to monitoring logs:
Check sentiment analysis logs:
tail -f logs/analyze_sentiment.log
Check scraper logs:
tail -f logs/app_scraper_logging.log
Check daily tasks:
tail -f logs/daily_task.log
The RPC Server allows different components of the system to communicate efficiently.
python RPC/RPC_server.py
python RPC/RPC_client.py
If you have any suggestions to improve this repository, feel free to contact me...
📧contact: [email protected]