Spaces:
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
Сбор данных и обработка
Для начала работы было необходимо собрать данные с описаниями сериалов. Для этого использовали парсинг сайта, было собрано около 10 000 описаний к разным сериалам. Важной частью являлась обработка текста, например, удаление скрытых символов и фраз по типу "ПОЖАЛУЙСТА, ОБРАТИТЕ ВНИМАНИЕ" и т.п.
Модель
Для получения эмбеддингов использовалась языковая модель - cointegrated/rubert-tiny2
Использование и запуск сервиса
Чтобы запустить сервис, выполните команду:
streamlit run app.py
Далее откройте браузер и перейдите по адресу, указанному в терминале.
Структура сервиса
Страницы:
- первая страница реализовывает асимметричный семантический поиск
- вторая страница - симметричный семантический поиск
Метрики
- косинусное сходство
- евклидово расстояние
Ввод запроса
- Введите ваш запрос в текстовое поле "Введите описание сериала"
- Установите ползунок в диапазоне от 1 до 10 для рекомендации необходимого количества сериалов
- Введите название фильма в текстовом поле для генерации краткого содержания с помощью SberGigachat
- Введите название фильма в текстовом поле для генерации краткого содержания с помощью Википедии с выбором языка генерации (русский, английский)
Результаты поиска
- Сервис вернёт список сериалов, отсортированных по метрике, к вашему запросу
- Сервис сгенерирует краткое содержание с помощью SberGigachat
- Сервис сгенерирует краткое содержание с помощью Википедии с выбором языка генерации (русский, английский)
Структура репозитория
app.py
— главный файл приложенияclean_series_data.csv
— файл с описаниями сериаловembeddings.npy
- полученные эмбеддингиrequirements.txt
— файл с перечнем зависимостейREADME.md
— этот файл с описанием проекта и инструкцией по запускуpages
- страницы сервиса:model_w_clustering.py
- страница с симметричным поискомwiki
- страница с парсингом википедии в райнтайме