🚀 Capstone project developed by a 4-member team.
🛠 Dockerization and container deployment independently implemented by Shibani Roychoudhury.
- Goal: Build a recommendation system that suggests products to users based on their sentiment expressed in reviews.
- Approach:
- Built a Sentiment Analysis Model using textual features from reviews.
- Integrated User-User Collaborative Filtering for personalized recommendations.
- Dockerized the full system for consistency across environments (solo contribution).
- Used XGBoost Classifier with tuned hyperparameters for sentiment classification.
- Focused on data leakage prevention and meaningful feature engineering.
- The Collaborative Filtering component uses User-User similarity to recommend products based on inferred sentiment and user behavior.
- ✅ Dockerized and deployed the system using custom scripts.
- The full system is containerized and can be run with Docker.
- Docker image pushed to Docker Hub.
- Deployed briefly on Railway.app for public testing.
🔗 Docker Hub: helloshibani/sentiment-recommendation
🛠 Dockerization independently contributed by Shibani Roychoudhury.
📄 See docker_notes.md for build/run instructions.
- Python
- Pandas, NumPy, XGBoost
- FastAPI + Jinja2
- Docker, Uvicorn
- Railway (optional deployment)
-
Clone the repository:
git clone https://github.com/helloshibani/Sentiment-Based-Product-Recommendation-Analysis.git cd Sentiment-Based-Product-Recommendation-Analysis -
Install dependencies:
pip install -r requirements.txt
-
Build and run the Docker container:
docker build -t sentiment-recommendation-system . docker run -p 8000:8000 sentiment-recommendation-system
Then open http://localhost:8000 in your browser.
Sentiment_Recommendation_Capstone.ipynb: Main notebookapp.py: FastAPI app logicmodel.py: Sentiment + recommendation enginetemplates/: Contains Jinja2 HTML filespickle/: Trained models (excluded in repo)Dockerfile,Procfile,requirements.txt,runtime.txt: For Docker & Railway deployment
- Predicts sentiment from user reviews and recommends relevant products.
- Containerized setup allows reproducible testing across platforms.
- Improve model robustness and runtime performance.
- Streamline model loading in Docker containers.
- Link with Revised Solo Repo for enhanced model and improved explainability.
- Thanks to the Capstone team for collaborative effort and Railway deployment.
- Docker setup and deployment independently implemented by Shibani Roychoudhury
📬 LinkedIn – Shibani Roychoudhury
Let’s build, break, and learn together 🚀