A sophisticated recommendation engine that provides personalized movie suggestions using collaborative filtering, content-based filtering, and hybrid approaches.
-
Multiple Recommendation Methods:
- Collaborative filtering with ANN (Approximate Nearest Neighbors)
- Content-based filtering using movie metadata
- Hybrid recommendations combining multiple approaches
-
Real-time Processing:
- Efficient batch processing of new ratings
- Automatic model updates
- Caching system for fast responses
-
User Experience:
- User and admin interfaces
- Personalized recommendations
- Similar movie suggestions
- Genre-based filtering
- Clone the repository
git clone https://github.com/nwaimo/RecSys.git
cd RecSys
- Create a virtual environment
python -m venv venv
# Windows
venv\Scripts\activate
# Unix/MacOS
source venv/bin/activate
- Install dependencies
pip install -r requirements.txt
Run the system:
python run.py
# Start the system in user mode
python run.py
# Available commands:
1. Search for movies
2. Get personalized recommendations
3. Rate movies
4. View popular movies
5. Switch to admin mode
# Access admin features with password
1. System status
2. Save model
3. Evaluate model
4. Clear cache
5. Switch to user mode
RecSys/
├── src/
│ ├── recommender.py # Core recommendation engine
│ ├── data_loader.py # Data management
│ ├── evaluation.py # System evaluation
│ ├── batch_processor.py # Real-time processing
│ └── main.py # CLI interface
├── tests/ # Unit and integration tests
├── requirements.txt # Dependencies
└── README.md # Documentation
Run the test suite:
python -m pytest tests/
- Fork the repository
- Create a feature branch (
git checkout -b feature/AmazingFeature
) - Commit changes (
git commit -m 'Add AmazingFeature'
) - Push to branch (
git push origin feature/AmazingFeature
) - Open a Pull Request
Distributed under the MIT License. See LICENSE
for more information.
Your Name - @nwaimo
Project Link: https://github.com/nwaimo/RecSys