• Stars
    star
    476
  • Rank 89,214 (Top 2 %)
  • Language
    Jupyter Notebook
  • Created almost 4 years ago
  • Updated 4 months ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

A content-based recommender system that recommends movies similar to the movie the user likes and analyses the sentiments of the reviews given by the user

Content-Based-Movie-Recommender-System-with-sentiment-analysis-using-AJAX

Python Framework Frontend API

Updated version of this application can be found at: https://github.com/kishan0725/The-Movie-Cinema

Content Based Recommender System recommends movies similar to the movie user likes and analyses the sentiments on the reviews given by the user for that movie.

The details of the movies(title, genre, runtime, rating, poster, etc) are fetched using an API by TMDB, https://www.themoviedb.org/documentation/api, and using the IMDB id of the movie in the API, I did web scraping to get the reviews given by the user in the IMDB site using beautifulsoup4 and performed sentiment analysis on those reviews.

Check out the live demo: https://mrswsa.herokuapp.com/

Link to youtube demo: https://www.youtube.com/watch?v=dhVePtyECFw

Note

Use this URL - https://the-movie-buff.herokuapp.com/ - in case if you see application error in the above mentioned URL

The Movie Cinema

I've developed a similar application called "The Movie Cinema" which supports all language movies. But the only thing that differs from this application is that I've used the TMDB's recommendation engine in "The Movie Cinema". The recommendation part developed by me in this application doesn't support for multi-language movies as it consumes 200% of RAM (even after deploying it to Heroku) for generating Count Vectorizer matrix for all the 700,000+ movies in the TMDB.

Link to "The Movie Cinema" application: https://the-movie-cinema.herokuapp.com/

Don't worry if the movie that you are looking for is not auto-suggested. Just type the movie name and click on "enter". You will be good to go eventhough if you made some typo errors.

Source Code: https://github.com/kishan0725/The-Movie-Cinema

Featured in Krish's Live Session on YouTube

krish youtube

How to get the API key?

Create an account in https://www.themoviedb.org/, click on the API link from the left hand sidebar in your account settings and fill all the details to apply for API key. If you are asked for the website URL, just give "NA" if you don't have one. You will see the API key in your API sidebar once your request is approved.

How to run the project?

  1. Clone or download this repository to your local machine.
  2. Install all the libraries mentioned in the requirements.txt file with the command pip install -r requirements.txt
  3. Get your API key from https://www.themoviedb.org/. (Refer the above section on how to get the API key)
  4. Replace YOUR_API_KEY in both the places (line no. 15 and 29) of static/recommend.js file and hit save.
  5. Open your terminal/command prompt from your project directory and run the file main.py by executing the command python main.py.
  6. Go to your browser and type http://127.0.0.1:5000/ in the address bar.
  7. Hurray! That's it.

Architecture

Recommendation App

Similarity Score :

How does it decide which item is most similar to the item user likes? Here come the similarity scores.

It is a numerical value ranges between zero to one which helps to determine how much two items are similar to each other on a scale of zero to one. This similarity score is obtained measuring the similarity between the text details of both of the items. So, similarity score is the measure of similarity between given text details of two items. This can be done by cosine-similarity.

How Cosine Similarity works?

Cosine similarity is a metric used to measure how similar the documents are irrespective of their size. Mathematically, it measures the cosine of the angle between two vectors projected in a multi-dimensional space. The cosine similarity is advantageous because even if the two similar documents are far apart by the Euclidean distance (due to the size of the document), chances are they may still be oriented closer together. The smaller the angle, higher the cosine similarity.

image

More about Cosine Similarity : Understanding the Math behind Cosine Similarity

Sources of the datasets

  1. IMDB 5000 Movie Dataset
  2. The Movies Dataset
  3. List of movies in 2018
  4. List of movies in 2019
  5. List of movies in 2020

More Repositories

1

Hospital-Management-System

Hospital Management System using php and mysql
PHP
372
star
2

The-Movie-Cinema

The Movie Database for all language movies
Jupyter Notebook
200
star
3

Movie-Recommendation-System-with-Sentiment-Analysis

Content based movie recommendation system with sentiment analysis
Jupyter Notebook
81
star
4

order-my-food-MEAN

A simple application to order food using Node.js, Angular 10, Express.js and MongoDB
TypeScript
10
star
5

Foodie

An Online food ordering system in ReactJS
JavaScript
6
star
6

Content-Based-Movie-Recommender-System

Recommends top 10 movies for you
Jupyter Notebook
4
star
7

order-my-food

Food ordering app using Angular 10 and Material UI
TypeScript
3
star
8

To-Do-List-App-using-React-JS

A simple To-Do list App using React JS
JavaScript
2
star
9

track-covid19-angular

An application that tracks the status of coronavirus all over the world - using Angular 10
TypeScript
2
star
10

Transfer-Learning-using-VGG16-and-ResNet50

Using vgg16 and resnet50 for image classification
Jupyter Notebook
1
star
11

BMI_Prediction

Predicting Body Mass Index(BMI) of a person
Jupyter Notebook
1
star
12

Google-Stock-Price-Prediction

Predicting Google Stock Price using LSTM
Jupyter Notebook
1
star
13

Breast-Cancer-Wisconsin-Diagnostic

Detecting Breast Cancer using UCI dataset
Jupyter Notebook
1
star
14

Detection-of-Facial-parts-and-Licence-plate-using-OpenCV-Haarcascade

Detecting Face, Eyes, Smile, Body, Cat Face and Licence plate using OpenCV's Haarcascade
Jupyter Notebook
1
star
15

Brent-Oil-Prices---Prophet

Forecasting Brent Oil Prices using FB's Prophet library for timeseries
Jupyter Notebook
1
star
16

Heart-Disease-UCI

Predicting whether a person is suffering from heart disease or not
Jupyter Notebook
1
star
17

Checking-the-Password-Strength-using-ML

Check the strength of the your password using Machine Leaning Classification Models
JavaScript
1
star
18

Weighted-hybrid-technique-for-Recommender-system

A weighted-average rating based recommender system
Jupyter Notebook
1
star