A production-ready, AI-powered content-based movie recommendation engine featuring a stunning custom UI.
CINMATCH goes beyond standard recommendation scripts to offer a fully immersive movie discovery platform. It combines an advanced machine learning backend with a visually breathtaking, highly customized frontend designed in PyCharm and rendered via Streamlit.
By analyzing the semantic DNA of a film—its genres, cast, crew, keywords, and plot summary—CINMATCH maps the cinematic universe around your favorite movies to deliver uncanny, high-fidelity recommendations in milliseconds.
- 🧠 NLP-Powered Matching — Uses advanced TF-IDF vectorization to extract meaningful signals from unstructured movie metadata.
- 📐 High-Dimensional Cosine Similarity — Mathematically calculates the distance between films in a 5,000+ dimensional feature space for hyper-accurate matching.
- ⚡ Sub-second Inference — Pre-computed similarity matrices allow for near-instant, real-time results without loading screens.
- 🎨 Premium Custom UI — Features a completely bespoke CSS architecture built on top of Streamlit. Includes glassmorphism, ambient glows, responsive poster grids, and fluid micro-animations.
- 🌍 Dynamic API Integration — Seamlessly hooks into the TMDB API to fetch live, high-resolution movie posters and metadata on the fly.
- 🏗️ Modular Architecture — Clean separation of concerns between data pipeline, ML training, artifact serialization (
.pkl), and presentation layer (app.py).
| Domain | Tools & Technologies |
|---|---|
| Frontend UI | Streamlit, Custom CSS3 (Glassmorphism, Grid/Flexbox), TMDB API |
| Machine Learning | scikit-learn (TF-IDF Vectorizer, Cosine Similarity), pandas, numpy |
| NLP & Preprocessing | NLTK (PorterStemmer), JSON parsing |
| Data Storage | pickle (Serialized ML Artifacts) |
Raw Data (TMDB 5000 Movies & Credits)
│
▼
Data Preprocessing (Merging, Null Handling, JSON parsing)
│
▼
Feature Engineering (Combining: genres + cast + director + keywords + overview -> "Tags")
│
▼
NLP Vectorization (TF-IDF applied to "Tags" -> Sparse Matrix)
│
▼
Similarity Compute (Cosine Similarity -> 5000x5000 Pre-computed Matrix)
│
▼
Model Artifacts (Exported as similarity.pkl & movies.pkl)
│
▼
Web Application (Loads artifacts -> Takes User Input -> Renders Matches + TMDB Posters)
Want to run the engine locally? Follow these steps:
1. Clone the repository
git clone https://github.com/anish-devgit/content-recommender-ml.git
cd content-recommender-ml2. Create and activate a virtual environment
# macOS / Linux
python -m venv venv
source venv/bin/activate
# Windows
python -m venv venv
venv\Scripts\activate3. Install dependencies
pip install -r requirements.txt4. Ensure ML Artifacts are present
Make sure movies.pkl and similarity.pkl are in the root directory. If they are missing, run the Jupyter Notebook (movie-recommendation-system.ipynb) to generate them.
5. Launch the application
streamlit run app.pyThe app will launch in your browser at http://localhost:8501.
- Hybrid Recommendation System: Blend content-based scores with collaborative filtering.
- Transformer-based Embeddings: Replace TF-IDF with
Sentence-BERTmodels for deeper semantic contextual understanding. - REST API Module: Build an exposed
/recommend?title=endpoint using FastAPI for third-party integrations. - Containerization: Complete Docker support for easier cloud orchestration.
Contributions are always welcome! Feel free to open an issue or submit a Pull Request.
- Fork the Project
- Create your Feature Branch (
git checkout -b feature/AmazingFeature) - Commit your Changes (
git commit -m 'Add some AmazingFeature') - Push to the Branch (
git push origin feature/AmazingFeature) - Open a Pull Request
This project is open-source and available under the terms of the MIT License.
Designed and engineered with ❤️ by anish-devgit. Developed in PyCharm.
If you like this project, consider giving it a ⭐!


