This is a Streamlit web application that provides personalized movie recommendations based on user interests. The system employs a content-based filtering algorithm, which suggests movies with similar attributes to the ones the user has shown interest in. Below are some screenshots showcasing the app's interface:
This model uses a content-based filtering algorithm.
Content-Based Filtering:
- Content-based systems use item attributes (such as movie genres, cast, director, etc.) to make recommendations.
- Systems like Twitter and YouTube use similar algorithms to suggest content based on user preferences.
- The system forms embeddings (vectors) based on features, such as the movies you watch or the music you listen to.
- Recommendation Approach: It creates a vector of item features and compares them with the user’s preferences to recommend similar items.
- Advantages: Personalized suggestions based on past user behavior.
- Limitations: This may lead to excessive specialization (i.e., the system might only recommend items from the same categories, missing out on other potentially interesting items).
Data is sourced from the TMDb Movie Metadata Dataset.
The model uses Cosine Similarity to compare movies:
- Cosine Similarity is a metric that measures the similarity between two vectors.
- Vectors are generated from movie features using a NumPy array.
- The
cosine_similarity()
function calculates the similarity between two vectors, with values ranging from [0,1].- 0: Completely dissimilar.
- 1: Completely similar.
-
Clone the repository:
https://github.com/Kyouma45/Movie_Recommendation_System
-
Create a conda environment after opening the repository make sure that you are using python>=3.7
conda create -n movie python=3.7.10 -y
conda activate movie
-
Install the requirements
pip install -r requirements.txt
-
Generate models
#run this notebook file to generate models Movie_Recommender_System.ipynb
-
Now run
streamlit run app.py