NextBinge - Demo
NextBinge.mov
NextBinge is a personalized movie recommender system designed to suggest movies similar to the ones you've watched and liked. It leverages content-based filtering, recommending movies by analyzing genres, keywords, cast, and crew information. The system displays movie posters, taglines, genres, and even provides YouTube trailers. It is built using Streamlit for the frontend and leverages machine learning to compute movie similarities, providing a sleek user experience.
- Content-Based Filtering: Recommends movies by comparing similarity tags, including genres, keywords, and cast.
- Poster and Trailer Display: Shows movie posters along with taglines, genres, and provides trailers when available.
- Interactive UI: Users can select a movie from a dropdown list, and the system generates movie recommendations with an easy-to-use interface.
- Movie Poster Hover Effects: Smooth hover transitions that display movie titles over posters.
- Watch Trailers: Allows users to watch trailers for recommended movies directly from the app using a modal pop-up.
- Mobile-Friendly: Responsive design that ensures a consistent experience across devices.
- Natural Language Processing (NLP): Uses stemming, tokenization, and vectorization to convert movie metadata into numerical vectors.
- Cosine Similarity: Calculates movie similarity based on their tags and recommends the top 10 closest movies to the selected one.
- Efficient Data Processing: Handles a dataset of 4806 movies, computing vector similarities using a Bag of Words model.
- Data Merging: Combines information from
tmdb_5000_movies.csv
andtmdb_5000_credits.csv
to create a complete dataset. - Data Preprocessing: Cleans and processes the movie data, including converting lists of genres, keywords, and cast to a unified format.
- Model Training: Utilizes a CountVectorizer to extract the top 5000 features from the movie tags and computes similarities using cosine distance.
- Frontend Integration: Implements a Streamlit app that allows users to generate and view movie recommendations, including trailers and other details.
-
Data Preprocessing:
- The movie and credits datasets are merged to obtain relevant columns such as movie ID, title, genres, keywords, cast, and crew.
- Lists are extracted from JSON-like strings using
ast.literal_eval
. - Text data (genres, keywords, etc.) are processed by removing spaces and applying stemming to normalize the words.
-
Model Training:
- Movie tags are combined into a single string and transformed into a lower-cased, stemmed format.
- A Bag of Words model is applied to vectorize the tags.
- Cosine similarity is calculated between the vectors, producing a similarity matrix that is used to recommend movies.
-
Recommendation System:
- When a user selects a movie, the app finds similar movies by calculating the cosine distance to recommend the top 10 closest movies.
- The app fetches additional details like posters, taglines, genres, and YouTube trailers via the TMDB API.