Recommendations / README.md
DanilO0o's picture
Update README.md
c96062c verified
|
raw
history blame
4.86 kB
---
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``` - страница с парсингом википедии в райнтайме