This is a Content-Based Movie Recommender System that suggests movies similar to the one you select. It uses Natural Language Processing (NLP) techniques to analyze movie metadata and return recommendations based on cosine similarity.
This project focuses on the Content-Based recommendation method. Below are the common types of recommender systems:
- Content-Based Filtering β Recommends items similar to those the user liked in the past.
- Collaborative Filtering β Recommends items liked by similar users.
- Hybrid System β Combines both content-based and collaborative filtering.
-
Data Collection
Utilized datasets from TMDB (The Movie Database). -
Preprocessing
Cleaned the data and created a combined metadata string for each movie using features like genres, cast, crew, and keywords. -
Model Building
- Used
CountVectorizer
to convert text data into a 5000-dimensional numerical vector. - Calculated cosine similarity between movie vectors to determine closeness.
- Used
-
Website Deployment
Frontend built using Streamlit and deployed via local/server environment using PyCharm.
- Frontend: Streamlit
- Backend: Python (Jupyter Notebook / PyCharm)
- Libraries:
- Pandas
- Scikit-learn
- Pickle
- Requests (for fetching movie posters from TMDB API)
- Modeling:
- CountVectorizer (from sklearn)
- Cosine Similarity
File/Folder Name | Description |
---|---|
App.py |
Main Streamlit app code to run the recommender UI |
Movie Recommendation System.ipynb |
Jupyter notebook for data exploration, preprocessing, and model building |
Image_of_the_system.png |
Screenshot of the application for preview |
README.md |
Project documentation |