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