Skip to content

This repository provides a content-based movie recommendation system using Python and various data analysis and machine learning libraries. It utilizes the TMDB 5000 Movie Dataset to provide accurate recommendations.

Notifications You must be signed in to change notification settings

HarshitLaloriya/Movie-Recommendation-System

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

9 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Movie Recommenndation System on TMDB datasets

Hello, I'm back with another exciting project. I'm hoping that this readme will speak for my work and my enthusiasm for these types of projects. MODEL PAGE

Project Overview

This project is a web-based movie recommendation system that uses a pre-trained model to suggest movies based on user input. The system is built using Flask, a Python web framework, and TMDB API to fetch movie details.

  • Data Preprocessing: The dataset was preprocessed to extract relevant features such as movie title, genre, keywords etc. The data was then cleaned and normalized to ensure consistency and accuracy.

  • Similarity Calculation: The similarity between movies was calculated using the cosine similarity measure, which measures the cosine of the angle between two vectors. The similarity matrix was then sorted to identify the most similar movies.

  • Recommendation Generation: Given a movie, the system identifies the top three most similar movies and returns their titles and other relevant information. The system also includes a fallback recommendation in case the input movie is not found in the dataset.

  • Web Application: The recommendation model is integrated into a Flask web application, which provides a user interface for movie search and recommendation. The application uses the TMDB API to fetch movie details such as posters, banners, and overviews.

The system uses a content-based filtering techniques to recommend movies. Content-based filtering is used to identify similar movies based on their features. By using this technique, the system is able to provide more accurate and personalized movie recommendations to users.

Overall, the movie recommendation system I designed is a simple yet effective tool for discovering new movies based on user preferences and movie features. The system can be further improved by incorporating additional features such as user ratings, social media integration, and real-time data updates.

Before and After, What I preplaned or What I change?

This project is truly amazing; after grasping the idea of a recommendation system, I was able to prepare for some of the fundamental tasks. Before beginning, I asked myself questions like, "How does the other recommendation system operate?", "How do they recommend movies to users?", "What kinds of recommendation systems are there?" and so on. I also learned a ton of incredible information while working on this project. Even while some things don't work out the way I had hoped, I still learn a lot about how they operate. I'm going to share my mind map with you all here. Maybe you'll enjoy it:)

mind map

Dataset

The dataset used for this project is the TMDB-5000 Dataset, which is downloaded from Kaggle.
Dataset link : - https://www.kaggle.com/datasets/tmdb/tmdb-movie-metadata

Deployment

The recommendation model is integrated into a Flask web application, which provides a user interface for movie search and recommendation.

Website Design

The system uses the TMDB API to fetch movie information, including posters, banners, and other details. The recommended movies are displayed to the user in a JSON format, which can be easily consumed by a JavaScript frontend.

Working.of.model.mp4

Technologies Used


  • Python: The primary programming language used for this project.
  • Scikit-learn: A machine learning library used for training and evaluating the model.
  • Flask: A lightweight web framework used for deploying the model.
  • Pandas: A library used for data manipulation and analysis.
  • Numpy: A library used for scientific computing in Python
  • Pickle: The pickle module in Python allows you to serialize and deserialize Python objects.
  • Requests: The requests library simplifies making HTTP requests in Python.
  • nltk:The NLTK (Natural Language Toolkit) is a powerful library for natural language processing (NLP).
  • ast: The ast (Abstract Syntax Trees) tool for processing trees of the Python abstract syntax grammar.
  • HTML: The structure and content of a webpage, using tags to define elements.
  • CSS: Styles the appearance of HTML elements, including layout, colors, and fonts.
  • Javascript : Adds interactivity and dynamic content to webpages through scripting and programming.

icons8-python-48 icons8-numpy-48 icons8-pandas-48 scikit-learn icons8-flask-48 icons8-html-48 icons8-css-48 icons8-js-48 icons8-figma-48

Future Work


There are several ways to improve and extend this project, including:

  • Collecting more data: Collecting more movie data to improve the accuracy and robustness of the model.
  • Experimenting with different type of recommendation system: Trying out different machine learning recommendation models such as collaborative filtering.
  • Improving the user interface: Improving the user interface of the deployed model to make it more user-friendly and intuitive.
  • Imporvments in system: The system can be further improved by incorporating additional features such as user ratings, social media integration, and real-time data updates.

symbol

About

This repository provides a content-based movie recommendation system using Python and various data analysis and machine learning libraries. It utilizes the TMDB 5000 Movie Dataset to provide accurate recommendations.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published