Anime Recommender
As I wrote in my previous blog, I finally applied machine learning and created my own Anime recommender website!
Here is the link to the website~: https://kksk.yukinolov.com
And the links to the github repo: Model Repo, Website Repo
Firstly, I will briefly introduce my machine learning model.
I used the anime dataset from MyAnimeList published on Kaggle.
I seperated the whole dataset into two sub-datasets: TV anime dataset and Movie anime dataset. I did so since I believe movie and tv are different in production and qualities, they should not be mixed up. I used Pytorch and CF (Collaborative Filtering) algorithm for this model.
It is hard to say if the model performes good or not, since recommendation standards are very subjective for each of us. I hope you can find some anime that attracts your interest~
Speaking of the website, I used React as front-end, FastApi as backend, and Mongo db as database.
It was surprising for me to found out that FastApi provides very convienient page for endpoints testing, so I did not need to use postman or curl. Another interesting part is to know how the hint feature works.
Let me introduce the website a little bit.
There are 4 pages: Home, TV Anime, Movie Anime, and MAL-Based.
- On Home page, there is an introduction on different features.
- On TV Anime page and Movie Anime page, typing in TV anime name or Movie anime anime will give back recommendations based on what was given. Type more than 2 characters will trigger hints.
- On MAL-Based page, typing in your MyAnimeList Username will give back the similar user to you and recommendations based on that user. I used api to find the similar user and get the anime list of each user. Then, I filtered out those anime in given Username's list, which have lower scores than the average scores of the similar user. This means that only those anime recognized by the simiar use will be recommended.
P.S: I really like the changing background images~
Lastly, I spent much time figuring out the right way to pack this project into docker images and implement it on my nas, and I finally made it!
Tell me if you like the recommender website or have any suggestions~ Thanks for reading!