A dedicated search and discovery engine for East Asian cinema and television. This project is designed to help users find their next favorite title by analyzing content similarities across various regional databases.
The databases are curated to include titles released up until Mid-2025.
- Movies: Includes Chinese, Korean, Hong Kong, and Japanese titles.
- Dramas: Includes Chinese, Korean, and Japanese titles.
- Dual Sites: Separate live sites for episodic dramas and feature films.
- Country Filtering: Users can refine recommendations by selecting specific countries of origin.
- Content-Based Logic: Suggestions are generated based on genres, cast, and plot tags.
- Real-Time Search: Instant results powered by a lightweight Flask backend.
Note: This project implements a basic content-based filtering system. It is designed for educational and practical search purposes rather than advanced predictive deep learning.
The system identifies similarities by looking at the metadata of the titles. Unlike collaborative filtering, which requires user history, this model only uses the attributes of the titles themselves.
Cosine Similarity to measure the relationship between two titles:
- Every drama/movie is converted into a mathematical vector based on its tags.
- The "distance" (angle) between these vectors is calculated.
- Titles with the smallest angle (highest cosine score) are presented as "similar."
A core feature of this system is the Country Selection. Users can choose to restrict recommendations to a specific region (e.g., only Japanese Dramas or only Hong Kong Movies). The system filters the similarity matrix to only return top-ranked results that match the selected country code.
- Framework: Python (Flask)
- Data Handling: Pandas, NumPy
- Machine Learning: Scikit-Learn (TF-IDF Vectorization, Cosine Similarity)
- Deployment: Render
├── app.py # Flask application entry point for dramas
├── movies.py # Flask application entry point for movies
├── requirements.txt # Python dependencies
├── app_df.pkl # Processed model for dramas
├── app_movie_df.pkl # Processed model for movies
├── comb_sim.pkl # Pickled similarity scores
├── sim_matrix.npz # Compressed similarity matrix for scalability
└── templates/ # HTML files for web UITo run this project on your local machine:
git clone https://github.com/drjollof/drama-recommender.git
cd drama-recommenderpython -m venv venv
# Windows
venv\Scripts\activate
# Mac/Linux
source venv/bin/activatepip install -r requirements.txt
python app.py
python movies.pyLocal Access: View the app at
http://127.0.0.1:5000/
LinkedIn | Twitter (X) | GitHub Profile
If you find this project helpful for your Asian cinema marathon, please give it a ⭐!