Skip to content

Flask app for `Movie Recommendation System` using ML🍿🤖

License

Notifications You must be signed in to change notification settings

kinxyo/RecomSys

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

47 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

CinemaScope

recom_sissy_demo

About

Have you ever grown tired of conventional films and just wished to discover something fresh yet similar to your preferences?

CinemaScope commits to solve this problem by utilizing machine learning. This webapp is developed to personalize movie recommendations, catering to unique user preferences. To take this a step further, we also provide recommendations by utilizing search history data to gain a comprehensive understanding of user preferences. This allows us to get bigger picture of one's taste. Our application is built using Flask.

Theory

  • In our movie recommendation system, we used cosine similarity to measure the similarity between different movies based on certain features.
  • These features could include aspects like genre, director, actors, and keywords from the movie's description.
  • Each movie is represented as a multi-dimensional vector of these features. The cosine similarity between any two movies is then calculated by taking the dot product of their feature vectors and dividing by the product of their magnitudes.
  • This results in a similarity score between -1 and 1, where 1 means the movies are identical in terms of the features considered, 0 means they are completely dissimilar, and -1 means they are diametrically opposite.
  • By calculating the cosine similarity between the movie a user has watched and all other movies in our database, we can recommend the movies with the highest similarity scores, thus personalizing the recommendations to the user's unique preferences.

Frame 12

How To Use

Setup

Clone Repository

git clone https://github.com/kinxyo/RecomSys.git

Enter Virtual Env

py -3 -m venv cinema
source cinema/scripts/activate

Install Requirements

pip install -r requirements.txt

Generate Artifacts (Output Model)

python ml.py

Run

python wsgi.py

Jupyter Notebook

You will also find a Jupyter Notebook in the repository. You can easily configure the tags and other algorithm-related stuff in it so you are able to generate your own artifacts by running the notebook.

The notebook will ask for selecting a kernel, select cinema from the dropdown menu. This will ensure that the notebook uses the same environment as the project. Also, before running the notebook, make sure you have installed the following package:

pip install ipykernel

To convert the notebook to a python script, run the following command in the terminal:

pip install nbconvert
cd backend/ml
jupyter nbconvert --to script YourNotebook.ipynb

Closing Remarks

Done as part of a college project.

You can learn more about Cosine Similarity here.

Find Dataset here.

Project Poster

recomsys-readme_poster