We wanted a recommendation system that could work across different types of media, not just within one. Most recommenders stay within their own domain — movie sites recommend movies, anime sites recommend anime — but none of them connect the two. We wanted to bridge that gap so someone who loves a particular anime could discover a movie or manga with the same themes.
The biggest challenge was getting meaningful comparisons across datasets that describe content in completely different ways. TMDB and AniList use different tag systems, different genres, and different levels of detail. We solved this with weighted text encoding and semantic embeddings so the model could understand that terms like "swordplay" and "sword combat" mean the same thing without us having to manually map every tag.
We learned how powerful semantic similarity is compared to traditional keyword matching, how to work with multiple APIs and normalize their data into a shared format, and how to build a full ML pipeline from data collection to a working web app in a short timeframe.
Built With
- anilist
- graphql
- hugging-face-transformers
- python
- scikit-learn
- sentence-bert-(all-minilm-l6-v2)
- streamlit
- tmdb-api
Log in or sign up for Devpost to join the conversation.