This project is a Movie Recommendation System built using content-based filtering and frontend created using Streamlit. It allows users to receive movie recommendations based on their favorite movie, using a precomputed similarity matrix.
- Interactive Streamlit interface.
- Movie selection from a dropdown menu.
- Five movie recommendations based on the selected movie.
- Python: Backend and logic implementation.
- Streamlit: For creating an interactive web interface.
- Pickle: For loading precomputed data files.
- movie_recomender_system.ipynb: Jupyter Notebook containing the code for preprocessing, model training, and similarity computation.
- app.py: Streamlit application script for the frontend.
Ensure you have the following installed:
- Python 3.8+
- Streamlit
- Clone the repository or download the files.
- Navigate to the project directory.
- Install the required Python libraries:
pip install streamlit
- Place the movies.pkl and similarity.pkl files in the project directory.
- Open a terminal in the project directory.
- Run the Streamlit app using:
streamlit run app.py
- The application will open in your default web browser.
- The user selects a movie from the dropdown menu.
- When the "Recommend" button is clicked, the app:
- Finds the index of the selected movie.
- Retrieves the top 5 most similar movies based on a precomputed similarity matrix.
- Displays the recommended movies on the screen.
- movies.pkl: Contains movie metadata, including titles.
- similarity.pkl: Contains the precomputed similarity matrix.
The system uses content-based filtering, which recommends movies based on similarities between their features. These features may include genres, cast, director, and movie descriptions. The similarity matrix is computed using cosine similarity.
- Add movie posters for the recommended movies.
- Improve recommendation algorithm with collaborative filtering or a hybrid approach.
This project is inspired by the need for personalized movie recommendations to enhance user experience.