Metadata-Version: 2.1
Name: multirec
Version: 0.2
Author: CapBlood
Project-URL: Homepage, https://github.com/CapBlood/multi-recommender.git
Project-URL: documentation, https://capblood.github.io/multi-recommender/
Description-Content-Type: text/markdown
Requires-Dist: black (~=22.0)
Requires-Dist: flake8 (<5.0,>=3.7.9)
Requires-Dist: ipython (<8.0,>=7.31.1)
Requires-Dist: isort (~=5.0)
Requires-Dist: jupyter (~=1.0)
Requires-Dist: jupyterlab-server (<2.16.0,>=2.11.1)
Requires-Dist: jupyterlab (~=3.0)
Requires-Dist: kedro (~=0.18.4)
Requires-Dist: kedro-viz
Requires-Dist: kedro-telemetry (~=0.2.0)
Requires-Dist: nbstripout (~=0.4)
Requires-Dist: pytest-cov (~=3.0)
Requires-Dist: pytest-mock (<2.0,>=1.7.1)
Requires-Dist: pytest (~=6.2)
Requires-Dist: pandas (==1.4.2)
Requires-Dist: scikit-learn (==1.0.2)
Requires-Dist: streamlit
Provides-Extra: docs
Requires-Dist: docutils (<0.18.0) ; extra == 'docs'
Requires-Dist: nbstripout (~=0.4) ; extra == 'docs'
Requires-Dist: ipykernel (<7.0,>=5.3) ; extra == 'docs'
Requires-Dist: Jinja2 (<3.1.0) ; extra == 'docs'
Requires-Dist: myst-parser (~=0.17.2) ; extra == 'docs'

# Multirec

- [Multirec](#multirec)
  - [Описание](#описание)
  - [Статус проекта](#статус-проекта)
  - [Установка](#установка)
    - [Через PyPI](#через-pypi)
    - [Через Kedro](#через-kedro)
  - [Использование](#использование)
    - [Через PyPI](#через-pypi-1)
    - [Через Kedro](#через-kedro-1)
    - [Веб-интерфейс](#веб-интерфейс)
  - [Наборы данных](#наборы-данных)


## Описание

Multirec представляет собой набор рекомендательных систем для разного рода медиа-развлечений: фильмы, аниме, игры и т.д. 

Данный репозиторий представляет собой набор пайплайнов [Kedro](https://kedro.org/) для построения рекомендаций на основе заданных наборов данных. 

Документацию по проекту можно найти [здесь](https://CapBlood.github.io/multi-recommender/).

## Статус проекта
На текущий момент реализованы рекомендательные системы для следующих медиа-развлечений:
- аниме;
- манга.

## Установка

### Через PyPI
Установка доступна через `pip`:
```
pip install multirec
```

### Через Kedro

В данном варианте достаточно только клонировать данный репозиторий, затем установить все зависимости с помощью команды `pip install -r src/requirements.txt` и далее работать с [CLI Kedro](https://docs.kedro.org/en/stable/development/commands_reference.html).

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

### Через PyPI
Использование осуществляется с помощью утилиты `multirec` из терминала, устанавливаемой вместе с пакетом (см. [Установка](#через-pypi)). Пример запуска пайплайна, заданного Kedro по умолчанию:
```bash
multirec run <path_to_csv> <out_path_to_csv>
```

В данном примере `dataframe` и `dataframe_with_recs` заданы в качестве аргументов, однако при запуске через утилиту Kedro используются значения из директории `conf`.

### Через Kedro

Для работы с Multirec в данном случае используется стандартная утилита `kedro` ([документация](https://kedro.readthedocs.io/en/stable/development/commands_reference.html)).

Для получения списка доступных пайплайнов необходимо вызвать следующую команду:
```bash
kedro registry list
```

**Примечание:** в случае клонирования утилиту Kedro необходимо запускать из корня клонированного репозитория.

### Веб-интерфейс

Multirec имеет простейший интерфейс упрощающий вывод результатов рекомендательных систем на основе [Streamlit](https://streamlit.io/) (например, для тестирования). Для его использования необходимо задать путь к готовому csv-файлу с предсказанными рекомендациями, опционально можно также задать соответствия имен, так как для работы веб-интерфейса требуются определенные столбцы с конкретными названиями:
```
'Name',
'Description',
'Tags',
'Url',
'Recommendations'
```

Пример запуска веб-интерфейса:
```bash
kedro manage web --index Rank --mappings Shikimori_url:Url,recommendations:Recommendations,Russian_name:Name,Russian_description:Description data/03_primary/anime_with_recommendations.csv
```

## Наборы данных

Для получения рекомендаций и использования веб-интерфейса можно использовать следующие наборы данных:
- [аниме](https://drive.google.com/file/d/11AMxQb2ADXRYVAXfqBA7X91CPnTnk69e/view?usp=sharing);
- [манга](https://drive.google.com/file/d/1MfU1R9Yaa5x6q2DJR0nz_pSBzKzwmFpy/view?usp=sharing).
