Spaces:
Sleeping
Sleeping
title: Recommendations | |
emoji: 😻 | |
colorFrom: purple | |
colorTo: indigo | |
sdk: streamlit | |
sdk_version: 1.40.2 | |
app_file: app.py | |
pinned: false | |
## Описание проекта | |
Сегодняшний поиск на стриминговом сервисе происходит только по режиссёру, актёрам и названию сериала, при этом не учитывается описание сериала, которое может содержать ценную информацию для пользовательского запроса. Этот проект направлен на сбор выборки из не менее 5000 описаний сериалов и построение системы поиска наиболее подходящих под пользовательский запрос вариантов. | |
## Язык описаний | |
Описания сериалов собирались на русском языке | |
## Требования | |
Чтобы запустить сервис, необходимо установить следующие зависимости: | |
- streamlit | |
- sentence-transformers | |
- faiss-cpu | |
- pandas | |
- numpy | |
- requests | |
- pillow | |
Чтобы установить все зависимости, необходимо выполнить команду: | |
**pip install -r requirements.txt** | |
## Сбор данных и обработка | |
Для начала работы было необходимо собрать данные с описаниями сериалов. Для этого использовали парсинг [сайта](https://myshows.me/), было собрано около 10 000 описаний к разным сериалам. Важной частью являлась обработка текста, например, удаление скрытых символов и фраз по типу "ПОЖАЛУЙСТА, ОБРАТИТЕ ВНИМАНИЕ" и т.п. | |
## Модель | |
Для получения эмбеддингов использовалась языковая модель - [cointegrated/rubert-tiny2](https://huggingface.co/cointegrated/rubert-tiny2) | |
## Использование и запуск сервиса | |
Чтобы запустить сервис, выполните команду: | |
```streamlit run app.py``` | |
Далее откройте браузер и перейдите по адресу, указанному в терминале. | |
## Структура сервиса | |
#### Страницы: | |
- первая страница реализовывает асимметричный семантический поиск | |
- вторая страница - симметричный семантический поиск | |
#### Метрики | |
- косинусное сходство | |
- евклидово расстояние | |
## Ввод запроса | |
1. Введите ваш запрос в текстовое поле "Введите описание сериала" | |
2. Установите ползунок в диапазоне от 1 до 10 для рекомендации необходимого количества сериалов | |
3. Введите название фильма в текстовом поле для генерации краткого содержания с помощью SberGigachat | |
4. Введите название фильма в текстовом поле для генерации краткого содержания с помощью Википедии с выбором языка генерации (русский, английский) | |
## Результаты поиска | |
1. Сервис вернёт список сериалов, отсортированных по метрике, к вашему запросу | |
2. Сервис сгенерирует краткое содержание с помощью SberGigachat | |
3. Сервис сгенерирует краткое содержание с помощью Википедии с выбором языка генерации (русский, английский) | |
## Структура репозитория | |
- ```app.py``` — главный файл приложения | |
- ```clean_series_data.csv``` — файл с описаниями сериалов | |
- ```embeddings.npy``` - полученные эмбеддинги | |
- ```requirements.txt``` — файл с перечнем зависимостей | |
- ```README.md``` — этот файл с описанием проекта и инструкцией по запуску | |
- ```pages``` - страницы сервиса: | |
- ```model_w_clustering.py``` - страница с симметричным поиском | |
- ```wiki``` - страница с парсингом википедии в райнтайме | |