Spaces:
Sleeping
Sleeping
File size: 4,859 Bytes
f4650c9 09c26e9 c96062c 09c26e9 7a0ab5c 09c26e9 7a0ab5c 09c26e9 7a0ab5c 09c26e9 7a0ab5c 09c26e9 c96062c 09c26e9 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 |
---
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``` - страница с парсингом википедии в райнтайме
|