Skip to content

Latest commit

 

History

History
178 lines (121 loc) · 8.01 KB

README.md

File metadata and controls

178 lines (121 loc) · 8.01 KB

StreamWhiz

A Movie Recommendation System

Video Demo

Table of Contents
  1. Fun Facts
  2. About The Project
  3. Getting Started with the idea
  4. Navigation through the app
  5. Comparison and Analysis
  6. Resources Used
  7. Resources used within the Web App

Fun Facts

  • This mentorship programme was no less than a roller coster ride for me. I learnt a lot of things during this period.
  • I also came to know that Netflix(the movie streaming site), once threw an open challenge to make improvements in its recommendation system and win a prize of 1M dollars. Quite huge huh!
  • Recommendation engines are becoming time and forth the driving factors for most of the brands and startups out there.
  • Initially, when I chose the project, I tried choosing the best of the methods and algotrithms than can be chosen to make a recommendation engine.
  • Over time I realized, that every algorithm out there can be implemented as per our requirements and thus to choose an algorithm which i can make the best use of.
  • The I chose to go with Content-based Recommendation system(as I thought I can implement that well) and it is based on the popularity index.
  • The dataset I used is available here
  • This contained a list of 5043 movies and various details of the movies.

About The Project

  • This is a movie recommendation engine, a project built during the Microsoft Engage 2022 mentorship programme.
  • This system make use of content based recommendation methods and it gives recommendations on the basis of genres and movie contents.
  • The model used KNN algorithm to determine the similarity in the content of the movies and thus produce relevent recommendations.

Salient Features

  • The user can make choices about the type of content they want to watch.
  • There are two categories they can choose upon- Genre based and movie based.
  • And yes, the user can also adjust the IMDB ratings of the movies they want to select from.
  • Also, and added feature is, the user can adjust the number of movies they want to be recommended to them.

Compatible Platforms

The app works well with across all the devices and all the operating systems.

Tech stack

Python:

Various libraries used for building machine learning models:

  • Libraries used - NumPy, Scikit-Learn, Matplotlib, Pandas
  • IDEs used - Jupytor, Visual Studio Code

App and Deployment:

  • App buit using - Streamlit
  • Deployment - Heroku

Getting Started with the idea

Until the app gets deployed link starts working efficiently, the app can be accessed by: To run this project on your local systems, the requirements are as follows:

Prerequisites and Accessing the Web Application

  • Download the zip file from the option above.
  • Extract the contents on your local machine.
  • Install the required dependencies by-
pip install streamlit
pip install numpy
  • open the terminal from the required directory and type the command-
streamlit run app.py

Navigation through the app

Working

  • After you run the above command, you will be redirected to your browser and you will the see the following:

Landing page

  • You will see an option to select the application

Selecting Application

  • User can select the mode of recommendation as Movie-based or Genre-based by clicking on the down arrow for 'Select Application'.

Selecting Application

Movie Based

  • If Movie-based application is selcted, then user needs to enter a movie similar to which the user will get the recommendations.

Movie-based - Entering a Movie

  • There are tons of options of movies of the user to choose from by clicking on the down arrow.

Movie Options

  • Then, for the selected movie, recommendations will be provided. The default number of recommendations is set at 5, but you may increase or decrease the number of recommendations as per your requirement.

Recommendations for Movie-based

  • The recommendations provided also enables you to check it's overview and it's trailer by clicking on the Movie you choose from the recommendations and you will be directed to its IMDB page. Here, I clicked on Avatar :

IMDB page of the Recommended Movie

Genre Based

  • If Genre-based application is selected, then the user needs to select either one or more genres from the options provided.

Selecting Genres

  • Then you may adjust the IMDB score according to your requirement for the recommendations. Here as well, you may increase or decrease the number of recommendations you require.

Adjusting IMDB Score

  • You can also increase the number of recommendations :

IMDB page of the Recommended Movie

Additional Features

  • The features to be added are-
    • A login page which requires the user to make an account and then visit the site.
    • A favourites cart in which you can keep your favourite movies and revisit them when required.

Comparison and Analysis

  • On comparison, Content-based filtering will only give partial results for recommendation while collaborative-based filtering will give many possible results for the user seeking recommendation.
  • But when combining the content-based and collaborative-based filtering together as the Hybrid approch, then the user is getting a very pact solution and convincing recommendations. This is the reason that hybrid approach is being used largely in recommendation systems.
  • Popularity-based filtering is another algorithm type which recommends the most seen or liked items to the user. This is inculcated in the 'Recliner Lounge' Web App as the option to adjust the IMDB Scores.

Resources Used

Resources Used within the Web App