Skip to content

w0drs/AnimeRecommendation

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

43 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Шапка

🎌 Anime Recommendation System

Anime Recommendation System - это система для поиска похожих аниме. Она включает анализ смысла описаний аниме и нахождение семантически похожих тайтлов. Можно искать как по описанию аниме, так и по его названию. Поиск аниме "по названию" подразумевает себя внутри поиск тоже по описанию. Название ищется у микросервиса в его базе.

✨ Ключевые особенности

  • Использование эмбеддинга (библиотека sentence_transformer) для кодирования текста.
  • Использование FAISS для поиска похожих аниме.

⚙️ Что включает в себя система

  • Модуль с аниме рекомендатором (с использованием FAISS)
  • Микросервис для выдачи рекомендаций (FastApi)
  • Веб-приложение на Flet

📊 Данные

  • Данные для системы были взяты с сайта kaggle: Anime Database - july 2025.
  • Для обработки этих данных использовал библиотеку pandas.
  • Датасет содержит 28 фичей и около 29 тысяч объектов. После обработки данных число аниме сократилось до 25 тысяч, т.к в убранных объектах не было описания.
  • Из всех признаков оставил, на мой взгляд, только 10 полезных.
  • В колонках жанры, темы, форматы аниме были пропуски. Их я заменял обычным текстом "none" (заменять их модой или чем-нибудь еще было нелогично).

🖼️ Демонстрация

Главный экран Рекомендации Детали аниме
Здесь было взято описание аниме "Магическая битва" (Темы: Проклятая энергия, магический колледж, сражения).
Первые два порекомендованных аниме:
1. Магия и мускулы (Темы: Магия, академия магов, сражения)
2. Непутёвый ученик в школе магии (Темы: Магия, школа магии, сражения)

🏗️ Структура проекта

AnimeRecommendation/
├── backend/                         
│   ├── data_structure.py        # Pydantic Model             
│   └── service.py               # FastAPI приложение
├── config/                         
│   └── config_file.py                                   
├── data/                                        
│   └── anime_dataset.csv        # Необработанный датасет
├── faiss/                         
│   ├── data.parquet             # Отобранные и обработанные данные
│   └── index.faiss              # Faiss индексы
├── frontend/                         
│   ├── assets/
│   ├── app.py                   # Веб-приложение
│   ├── grid_view.py             # Контейнер для аниме тайтлов
│   └── main_page.py             # Главная страница
├── ml_core/                                        
│   └── anime_recommender.py     # Рекомендатор
├── notebooks/    
│   ├── EDA.ipynb                 
│   └── Recommender.ipynb
└── README.md

📚 Использование

Поиск по названию:

  • Введите название аниме в поле "Название аниме"
  • Нажмите "Найти рекомендации"
  • Система найдет семантически похожие тайтлы

Поиск по описанию:

  • Опишите сюжет в поле "Описание аниме"
  • Нажмите "Найти рекомендации"
  • Получите релевантные рекомендации на основе описания

Пример запроса:

# Поиск по названию
{
  "title": "Mashle",
  "synopsis": "",
  "k": 16 
}

Изначально рекомендер смотрит на "title" из запроса и выводит рекомендации по названию. Если название аниме пусто, то рекомендер смотрит на "synopsis" и выдает рекомендации по описанию. Если и описания и названия нет - снизу вылезет уведомление об ошибке.

About

Рекомендательная система аниме, которая используется для поиска семантически похожих аниме. (по описанию аниме).

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors