Skip to content

evk905/Hackaton_museum_guide

Repository files navigation

Проект. Умный городской гид

"Музейный гид в Telegram: персонализация экскурсий"

Команда № 16: (Науки о данных)

Группа 292406-3; SF - TGUDS-1

1. Описание задачи:

Проблема: Крупные музеи обладают большими коллециями и значительными экспозиционными площадями. На знакомство с ними можно потратить много часов, а то и дней. Не всегда турист знает, какой экспонат или зал будет для него наиболее привлекателен. Обладая малым временем на осмотр экспозиции, посетитель может упустить из виду то, что может быть для него действительно интересно. В следствие этого, он может уйти с плохим впечатлением от музея и с мыслью, что зря потратил деньги.

Бизнес-задача: 1. Улучшить впечатления посетителя от музея. 2. Привлечь одиночных туристов с ограниченным временем. 3. Добавить интерактивности в знакомство с музеем. Следовательно: увеличить количество посетителей, увеличить прибыль.

Техническая задача: Разработать рекомендательную систему, которая сможет построить индивидуальный экскурсионный маршрут, основываясь на предпочтениях посетителя. Модель имплементировать в Telegram-бот.

2. Данные

Исходный набор представляет собой открытые данные Государственного каталога музейного фонда РФ Министерства культуры РФ. Содержит 39 624 705 записей, описанных 49 признаками. Общий объем 35.2 Гб.

Критерии выборки данных:

  • Музей, специализирующися на собрании живописи -> известные произведения, профессиональная атрибуция (описание, датировка, определение авторства)
  • Отбираем предметы, в которых заполнен признак "Описание" (важно для подбора ключевых слов)
  • Количество записей, достаточное для обучения ML-модели

Вывод: отбираем записи, относящиеся к экспонатам Государственного Русского музея - 57 254 записи.

Обработка данных:

  • удалены неинформативные признаки
  • очистка от пропусков
  • даты создания произведения преобразованы в категориальный признак
  • выделены ключевые слова на основе TF-IDF
  • отобраны типы экспонатов: живопись / графика

3. Рекомендательная система

EDA.ipynb

3.1. Векторизация с применением RuBERT

Для получения эмбеддингов ключевых слов применен DeepPavlov RuBERT base cased. В итоге получили датасет размерностью (35707, 768).

3.2. Кластеризация KMeans

Датасет разбит на 20 кластеров.

image

3.3. Рекомендательная система на основе KMeans + KNN

Модель предлагает список из 5 рекомендаций на сонове предпочтений пользователя. В качестве меры схожести векторов использовано косинусное расстояние.

4. Итог:

Подготовлен базовый образец телеграм бота с рекомендательной системой, который на основе интересов посетителя музея рекомендует 5 вариантов картин в экспозиции.

image_2025-02-07_23-37-55

Реализация проекта

Стек технологий:

  • Python
  • PostgreSQL
  • aiogram
  • SqlAlchemy

5. Инструкция для запуска телеграм-бота

5.1. Установка виртуального окружения

  • Создание виртуального окружения для проекта
python -m venv venv
  • Активировать виртуальное окружение Для Windows
venv\Scripts\activate
  • Активировать виртуальное окружение Для Linux
source venv/bin/activate
  • Отключить виртуальное окружение
deactivate

5.2. Установка зависимостей

pip install -r requirements.txt

5.3. Настройка переменных окружения

В корневой директории проекта создать .env файл, в котором будут храниться переменные окружения.

Файл необходимо заполнить переменными, которые указаны в файле .env.example.

5.4. Настройка миграций

  • Создается папка migrations и файл alembic.ini. В терминале:
alembic init migrations
  • Генерация миграции
alembic revision --autogenerate -m "Create users table"
  • Применение миграции
alembic upgrade head
  • Откатить миграцию
alembic downgrade -1
  • Смотреть состояние миграции
alembic current

5.5. Запуск бота

python -m main

6. Ссылки на библиотеки

  1. Пополнение базы экспонатов:

    • больше экспонатов и музеев
  2. Расширение функционала бота для удобства туристов:

    • подгружать фото картин
    • отображать информацию месторасположении рекомендованных картин
    • добавить обратныю связь от пользователей после получения рекомендаций
    • добавить возможность запроса пользователем краткого описания о выбранных картинах
    • добавить поиск по авторам

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 3

  •  
  •  
  •  

Languages