Skip to content

Latest commit

 

History

History
106 lines (69 loc) · 6.48 KB

README.md

File metadata and controls

106 lines (69 loc) · 6.48 KB

RecMeKuda:

RecMeKuda - это сервис рекомендаций организаций на основе текущего запроса пользователя и его геопозиции

Команда:

Этот репозиторий посвящён проектной работе студентов 3-го курса МГТУ Н.Э. им. Баумана по дисциплине «Основы теории Искуственного интеллекта»

Данные:

В качестве данных был взят опубликованный в конце сентярбря 2023 года датасет от Яндекса - «крупнейший русскоязычный датасет отзывов об организациях, опубликованных на Яндекс Картах.»

Описание датасета:

  • 500 000 уникальных отзывов
  • Только отзывы на организации в России
  • Доступны на Яндекс Картах
  • Опубликованы с января по июль 2023 года
  • Датасет не содержит коротких односложных отзывов
  • Тексты очищены от персональных данных (номеров телефонов, адресов почты)

Состав датасета:

Датасет в формате tskv содержит следующую информацию:

  • Адрес организации (address)
  • Название организации (name_ru)
  • Список рубрик, к которым относится организация (rubrics)
  • Оценка пользователя от 0 до 5 (rating)
  • Текст отзыва (text)

Анализ данных:

  • Была проделана большая работа по анализу данных, в результате которой было выявлено 1370 различных классов-категорий организаций, для которых проводилась задача классификации текста пользователя.

  • В качестве базы данных организаций использовалась БД, состоящая из > 276000 уникальных организаций db_organizations, созданная из того же датасета.

  • Для выдачи рекомендаций от сервиса было необходимо получить координаты организаций, (из-за органичений бесплатного тарифа от API Яндекс карты) было решено использовать сервис Dadata с ограничениями ~ 5 000 обращений к API с аккаунта. В итоге были получены адреса для почти 50 тыс. московских организаций.

  • Поиск по необходимым организациям осуществлялся на основании:

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

В качестве ответа пользователю приходят 3 лучшие организации из отранжированных и информация о них, включая расстояния в метрах.

Backend:

  • Для деплоя модели была выбрана реализация с использованием TG-Bot API на Python

  • Для сохранения истории запросов пользователей и их геопозиций используется DataBase SQLite3

  • Классификация текста пользователя осуществляется с использованием открытой NLP модели Ru BERT tiny

Последователность действий для запуска бота:

  1. Склонируйте данный репозиторий и перейдите в директорию app
git clone https://github.com/Alex777Russia/tg-bot-recsys.git
cd tg-bot-recsys/app
  1. Создайте окружение и активируйте его, после чего установите необходимые зависимости
python -m venv myenv
myenv\Scripts\activate
pip install -r requirements.txt
  1. Вставьте свой телеграм токен в скрипте app.py
bot = telebot.TeleBot('YOUR TG-API KEY')
  1. Запустите бота следующей командой и можете отправлять сообщения
python app.py

Заключение

Хочется поблагодарить компанию Яндекс за предоставление возможности воспользоваться данным датасетом в академических и исследовательских целях.

Так же хочется поблагодарить сервис Dadata, дающий возможность использовать свой API так же для учебных целей и написания своих проектов.

Лицензия

Распространяется под лицензией MIT. Больше информации в LICENSE.

Контакты

По всем вопросам, связанным с проектом, пожалуйста, пишите на AlexeyShevchenko03@yandex.ru.