Skip to content

This repository is a team project of the GoodAI team and belongs to the discipline fundamentals of the theory of artificial intelligence (FTAI)

License

Notifications You must be signed in to change notification settings

Alex777Russia/tg-bot-recsys

Repository files navigation

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.

About

This repository is a team project of the GoodAI team and belongs to the discipline fundamentals of the theory of artificial intelligence (FTAI)

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published