Measured outcome
No measured outcome has been published with supporting evidence for this project.
04 / Project / Machine Learning
Content-Based Recommendation System with TF-IDF & Cosine Similarity Machine Learning | Streamlit | TMDB API Integration
01 / Overview
Built MovieMate, a personalized movie recommendation system that suggests 5 similar movies for any given title using content-based filtering on the TMDB 5000 movie dataset. The system analyzes movie attributes - genres, cast, crew, keywords, and overviews - to compute cosine similarity between films and surface intelligent recommendations. The project is delivered as an interactive Streamlit web app with live poster fetching via the TMDB API, packaged with a clean modular structure (notebooks for EDA & training, src for production code, artifacts for serialized models) and ready for one-command deployment.
Measured outcome
No measured outcome has been published with supporting evidence for this project.
02 / Architecture
Grouped from the stack recorded for this project. Scroll to walk the layers, or hover one for its components.
Where a request or upload enters the system.
Handled by Streamlit, Angular.
Handled by TF-IDF, Cosine Similarity, Machine Learning.
Handled by TMDB API.
03 / Tech stack
Interface
AI layer
Tools & integrations
04 / Case study
Content-Based Recommendation System with TF-IDF & Cosine Similarity
Machine Learning | Streamlit | TMDB API Integration
Built MovieMate, a personalized movie recommendation system that suggests 5 similar movies for any given title using content-based filtering on the TMDB 5000 movie dataset. The system analyzes movie attributes - genres, cast, crew, keywords, and overviews - to compute cosine similarity between films and surface intelligent recommendations.
The project is delivered as an interactive Streamlit web app with live poster fetching via the TMDB API, packaged with a clean modular structure (notebooks for EDA & training, src for production code, artifacts for serialized models) and ready for one-command deployment.
Approach: Movies are converted into feature vectors using TF-IDF on combined tags (genres + cast + crew + keywords + overview). Cosine similarity between vectors ranks the top 5 most similar films - scores range from 0 (no overlap) to 1 (identical).
Suggests 5 highly relevant movies for any selected title from a catalog of 5000+ films, ranked by cosine similarity score.
🧮Term Frequency-Inverse Document Frequency encoding converts movie metadata into meaningful numerical vectors for similarity computation.
📐Measures angular distance between movie vectors to rank films - robust to vector magnitude and ideal for sparse text features.
🖼️Real-time integration with the TMDB API to fetch and display movie posters alongside recommendations for a polished UX.
⚡Clean, interactive UI with movie search dropdown, one-click recommendations, and instant visual feedback with posters.
📦Similarity matrix and processed movie data serialized as pickle files for instant inference without re-training at runtime.
.env.local (gitignored) with .env.example templatesrc/recommender.py) from UI (app.py)notebooks/movie_recommender_analysis.ipynbmovie_dict.pkl and similarity.pkl for production userequirements.txt for reproducible buildsUsed in MovieMate. Recommends based on movie attributes - genres, cast, crew, keywords. No user data required, no cold-start for new movies.
Recommends based on user-item interaction patterns and similarity between users. Powerful but requires interaction history.
Combines content + collaborative approaches. Used in production by Netflix, Spotify, and Amazon for best-in-class personalization.
Next step
Tell me what you’re working on and where it gets difficult. I’ll share how this project’s approach would apply to your case.