Inspiration

As a team, we brainstormed problems that were relevant and interesting to us. We all watch anime, and found that we could all use a recommendations engine based on the anime we enjoyed.

What it does

  • Our personalized anime recommendations engine provides a list of ten anime shows based on one that the user provides.
  • The user can also constrain results by setting a minimum score threshold, whether the anime is a TV show or not, and whether it has finished airing or not.

How we built it

  • The front-end was built with Angular 7 using Material-UI.
  • Back-end was built with Flask using CORS, so that our Python script that performed the data analysis could be ran.
  • Data was fetched from an existing dataset pulled from MyAnimeList, and is up to date as of 02/04/2019. The analysis script uses tf-idf, count vectorization and cosine similarity on synopsis' and genres to determine similarity between different anime.
  • Anime is sorted based on cosine similarity, and is then filtered based on above filters and then returned.

Challenges we ran into

  • CORS kept preventing us from making requests with parameters.
  • Dealing with over 15,000 datapoints on relatively low-end machines took a long time for every analysis performed.

Accomplishments that we're proud of

  • One team member learned and applied front-end development using Angular 7 for the first time.
  • NLTK, tf-idf and cosine similarity were all new concepts. Implementation was effective in determining recommendations.

What's next

  • Adding more parameters in analysis to provide better recommendations
  • Ability to integrate MAL API's in order to generate recommendations based on multiple "watched" for a particular user
  • Ability to filter out previous recommendations
  • Optimization of our algorithm
Share this project:

Updates