There are basically three types of recommender systems:-
Demographic Filtering - They offer generalized recommendations to every user, based on movie popularity and/or genre. The System recommends the same movies to users with similar demographic features. Since each user is different , this approach is considered to be too simple. The basic idea behind this system is that movies that are more popular and critically acclaimed will have a higher probability of being liked by the average audience.
Content Based Filtering - They suggest similar items based on a particular item. This system uses item metadata, such as genre, director, description, actors, etc. for movies, to make these recommendations. The general idea behind these recommender systems is that if a person liked a particular item, he or she will also like an item that is similar to it.
Collaborative Filtering - This system matches persons with similar interests and provides recommendations based on this matching. Collaborative filters do not require item metadata like its content-based counterparts.
In this repository I have made three python kernels explaining and implementing the different types of movie recommender systems.
A webapp built using streamlit to display movie recommendation based on content based filtering using cosine similarity.
- It gives recommendations based on movie content.
- One can give the movie title or director's name to get appropriate movie recommendations.
After preprocessing the datasets I decided to keep these columns in order to proceed further
Column | Description |
---|---|
Movie ID | Unique ID for identification of movie and fetch appropriate poster for the same |
Title | Title was used to get recommendations |
Tags | Tags column was made using 'Overview','Cast','Genres','Keywords','Crew' |
crew | Kept it to fetch recommendations based on Directors |
- Python 3.6
- nltk.stem.porter
- CountVectorizer
- cosine_similarity
final.mp4
- Clone this repository to your local machine.
- Install all the libraries mentioned in the requirements.txt file with the command
pip install -r requirements.txt
- Open your terminal/command prompt from your project directory and run the file
app.py
by executing the commandstreamlit run app.py
.
- Make some changes in the UI and also shift it to flask webapp.
- Improve my predictions and also implement collabrative,demographic and hybrid filtering based recommendations.
Datasets - The Movie Dataset , TMDB Movie Dataset