A content-based movie recommendation system built with Python and Streamlit that suggests similar movies based on user preferences.
- Interactive web interface using Streamlit
- Movie recommendations based on content similarity
- Movie poster display using TMDB API
- Top 5 movie recommendations for any selected movie
pythonProject/
├── app.py # Main application file
├── movies_dict.pkl # Movie dataset
├── similarity.pkl # Pre-computed similarity matrix
├── requirements.txt # Project dependencies
├── setup.sh # Setup script
└── procfile # Heroku deployment configuration
- Python 3.x
- pip (Python package manager)
- Clone the repository:
git clone <your-repository-url>
cd movies-recommender-system
- Create and activate a virtual environment:
python -m venv venv
source venv/bin/activate # On Windows: venv\Scripts\activate
- Install the required packages:
pip install -r requirements.txt
- Run the Streamlit app:
streamlit run pythonProject/app.py
-
Open your web browser and navigate to the provided local URL (typically http://localhost:8501)
-
Select a movie from the dropdown menu or type in your favorite movie
-
Click the "Recommend" button to get similar movie suggestions
- Streamlit - Web application framework
- Pandas - Data manipulation
- Scikit-learn - Machine learning and similarity computation
- TMDB API - Movie data and poster images
- Pickle - Data serialization
The project uses several Python packages, including:
- streamlit
- pandas
- scikit-learn
- requests
- numpy
A complete list of dependencies can be found in requirements.txt
Contributions are welcome! Please feel free to submit a Pull Request.
This project is licensed under the MIT License - see the LICENSE file for details.
- The Movie Database (TMDB) for providing movie data and images
- Streamlit for the web framework
- Scikit-learn for machine learning capabilities