movie_recommender

CSC 510 class project

https://github.com/vbuddar/movie_recommender

Science Score: 54.0%

This score indicates how likely this project is to be science-related based on various indicators:

  • CITATION.cff file
    Found CITATION.cff file
  • codemeta.json file
    Found codemeta.json file
  • .zenodo.json file
  • DOI references
    Found 3 DOI reference(s) in README
  • Academic publication links
    Links to: zenodo.org
  • Academic email domains
  • Institutional organization owner
  • JOSS paper metadata
  • Scientific vocabulary similarity
    Low similarity (8.3%) to scientific vocabulary
Last synced: 6 months ago · JSON representation ·

Repository

CSC 510 class project

Basic Info
  • Host: GitHub
  • Owner: vbuddar
  • License: mit
  • Language: HTML
  • Default Branch: master
  • Size: 13.3 MB
Statistics
  • Stars: 0
  • Watchers: 1
  • Forks: 2
  • Open Issues: 0
  • Releases: 0
Created over 1 year ago · Last pushed over 1 year ago
Metadata Files
Readme Contributing License Code of conduct Citation

README.md

Movie Recommendation System🎥

DOI Python Framework Frontend API Static Badge 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: 🚀

https://github.com/SurajRKU/SEPROJECTGRP_12/assets/64723066/08a9d643-4ad3-4fd8-b4a3-3daade87c215

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:

    bash conda create --name YOUR_ENV_NAME python=3.6.13

  5. Activate the conda environment:

    bash conda activate YOUR_ENV_NAME

  6. Install all required Python packages using:

    bash 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: segrp12fall2023@gmail.com

Owner

  • Login: vbuddar
  • Kind: user

Citation (CITATION.md)

[![DOI](https://zenodo.org/badge/DOI/10.5281/zenodo.10212033.svg)](https://doi.org/10.5281/zenodo.10212033)

Link to the project repository: https://github.com/SurajRKU/SE_PROJECT_GRP_12

### Authors

 - Aravinda Raman Jatavallabha (arjatava@ncsu.edu)

 - Prathyusha Kodali (pkodali@ncsu.edu)

 - Suraj Raghu Kumar (sraghuk@ncsu.edu)

 - Yuktasree Muppala (ymuppal2@ncsu.edu)

### License: MIT

GitHub Events

Total
  • Public event: 1
  • Push event: 32
  • Gollum event: 2
  • Fork event: 7
  • Create event: 1
Last Year
  • Public event: 1
  • Push event: 32
  • Gollum event: 2
  • Fork event: 7
  • Create event: 1

Dependencies

requirements.txt pypi
  • Flask *
  • Jinja2 *
  • MarkupSafe *
  • Werkzeug *
  • beautifulsoup4 *
  • gunicorn *
  • jsonschema *
  • lxml *
  • nltk *
  • numpy *
  • pandas *
  • pickleshare *
  • requests *
  • scikit-learn *
  • scipy *
  • tmdbv3api *
  • urllib3 *