Skip to content

Latest commit

 

History

History
182 lines (111 loc) · 11.4 KB

README.md

File metadata and controls

182 lines (111 loc) · 11.4 KB

Movie Recommendation System🎥

DOI Python Framework Frontend API Coverage Maintenance Contributors Activity PRs Welcome License: MIT Issues Issues Closed black 33.5 kB Language last commit Repo Size contributors GitHub release file_count language_count GitHub all releases Top Language Release Build PEP8

This Movie Recommender System is like having a movie buddy who knows your taste super well. It looks at movie info from TMDB and even checks out what people say on IMDB. Then, it uses something called cosine similarity along with the sentiment analysis to match you with movies you'll love.

Imagine each movie is a star, and cosine similarity is like a cool trick to see which stars go together in the movie universe. You just type in a movie you like, and boom! It suggests other movies you'll probably dig. Setting it up is a breeze—just follow the steps. It's like having your own movie sidekick, making sure every suggestion is spot-on for your movie mood!

🎬✨Unlocking Movie Magic: A Glimpse into Our Enhanced Recommendation System ✨🎥

Let us say you're browsing through our updated system. You select a recent movie you loved, and instantly, the system not only suggests similar movies based on your taste but also factors in how others felt about those movies. Click on a poster, and a trailer pops up, engaging you even more. Dive deeper, and you'll discover captivating details about the actors—when they were born, where they're from, and their remarkable journey in the film industry. It's a journey, not just through movies, but through emotions and experiences.

Architecture of the Recommendation System 🏗️

Alt Text

What's New? 🤔

🔄 Evolution Snapshot: Old vs. New

  • Static to Dynamic Magic: Old system had static movie details - a fixed menu with limited movie details. But now, with dynamic web scraping, we're serving real-time details like titles, cast details, genres, and eye-catching posters. So even the latest movies released are incorporated into the recommendation model. It's not just a movie; it's a dynamic experience! 🍿✨

  • Predictable to Feel-Good Feels: Before, our system only understood your movie preferences. Now, we don't just understand them; we feel them too! Through sentiment analysis, we decode the essence of movie reviews, translating them into a mix of positive and negative vibes. Instead of merely suggesting similar movies based on your selection, we curate recommendations that resonate with your preferences and how others feel about them. It's not just a movie night; it's an emotionally resonant experience! 🎭👍

  • Interface Glow-Up: Say goodbye to the old look; we've given it a complete makeover! The user interface is now a captivating wonderland of movie details, cast revelations, and user reviews. One can even get details of the cast like when their birthday and place of birth is, if you are curious, and also a biography explaining their jouney in the movie industry. It's not just watching; it's a visual feast! 🎨👀

  • Poster Pretty to Interactive Play: Posters were just pretty faces. Now, click on them, and it's a gateway to excitement! Experience the thrill with interactive movie trailers. This transcends the passive observation of movie materials and shift towards active participation and engagement. It's not just lights, camera, action; it's lights, camera, interaction! 🎬🔗

Project Snapshots 📸

  1. Main Page with Search Bar: 🌐

image

  1. Movie Details Page: 🎬

movie details

  1. Cast Details Page: 🌟

cast_info

  1. User Reviews Page: 🗣️

image

  1. Recommended Movies Page: 🎉

image

  1. Trailer Functionality GIF: 🚀
for.gif.mp4

Video ▶️

Please find our Youtube video here

How to run the project? ⚙️

  1. Create an account on TMDB.

  2. Obtain your API key by clicking on the API link in your account settings.

  3. Copy or download this repository to your local machine.

  4. Create a new conda environment using the command:

    conda create --name YOUR_ENV_NAME python=3.6.13
  5. Activate the conda environment:

    conda activate YOUR_ENV_NAME
  6. Install all required Python packages using:

    pip install -r requirements.txt
  7. Replace YOUR_API_KEY in both instances (line no. 15 and 29) within the static/recommend.js file and save the changes.

  8. Launch your terminal or command prompt from the project directory and execute main.py using the command python main.py.

  9. Access http://127.0.0.1:5000/ in your web browser.

Rubric 📝

Refer to Rubric file here

Documentation 📚

Refer to Wiki page here

Similarity Score 📏

The recommender system employs a similarity score to quantify the likeness between two items, providing a numerical measure on a scale from zero to one. This score is derived through the application of cosine similarity, a method that assesses the resemblance between the textual details of the two items. The resulting numerical value encapsulates the degree of similarity, with zero indicating dissimilarity and one signifying identical text details. In essence, the similarity score serves as a crucial metric for the system to gauge and rank the similarity between items based on their textual characteristics.

How Cosine Similarity Works 🔍

Cosine similarity is a measure used to evaluate the similarity between two vectors by calculating the cosine of the angle between them in a multi-dimensional space. In the context of the recommender system, these vectors represent the textual details of different movies. The method is particularly useful when dealing with high-dimensional data, as it captures the similarity between items irrespective of their overall size. A smaller angle between vectors indicates higher similarity, making cosine similarity a valuable tool for comparing and ranking items based on their textual characteristics.

For a deeper dive into the mathematical aspects of cosine similarity, refer to the Cosine Similarity Wikipedia page.

Datasets 📊

The project utilizes data from the following sources:

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

To run test cases enter below commands

  • python -m pip install -r requirements.txt
  • python -m coverage run -m unittest discover

To test Code Coverage

  • python -m coverage report
  • python -m coverage html

Funding 💰

The project is not currently funded

Future Roadmap 🌠

See RoadMap here

For a detailed description of the same, please refer to the comment for each item

Bug? 🐛

Raise an issue on this repository, we would love to look at it ❤️

Contributors 👥


Prathyusha Kodali

Aravinda Raman Jatavallabha


Suraj Raghu Kumar


Yuktasree Muppala

For any further support please email us: [email protected]