Преподаватели и сотрудники приёмных комиссий университетов ежедневно получают сотни однотипных вопросов от студентов и абитуриентов: о сроках поступления, стоимости обучения, порядке заселения в общежитие, правилах получения стипендий и порядке работы электронных сервисов. По данным неформальных опросов, проведённых среди сотрудников РГСУ, до 70% входящих запросов в мессенджерах и на электронную почту являются повторяющимися и допускают стандартизированный ответ.
Существующие универсальные решения на основе больших языковых моделей (ChatGPT, YandexGPT и аналоги) обладают рядом существенных недостатков: они требуют постоянного доступа к сети Интернет, не имеют актуальных сведений об институциональной специфике конкретного университета и склонны к генерации правдоподобных, но недостоверных ответов («галлюцинации»).
Цель настоящей работы — разработка локальной информационно-поисковой системы на базе Telegram-бота, способной без подключения к внешним API автоматически отвечать на типовые вопросы студентов РГСУ.
В основе системы лежит классический метод векторного пространства с использованием меры TF-IDF. Вес термина t в документе d из корпуса D вычисляется по формуле:
Для измерения близости векторов применяется косинусная мера сходства:
Если наилучший показатель сходства не превышает порогового значения 0,15, система отказывается от ответа. Перед векторизацией все тексты проходят лингвистическую предобработку: приведение к нижнему регистру, удаление стоп-слов и лемматизацию с помощью pymorphy3. В движке «TF-IDF + синонимы» дополнительно применяется словарь замен студенческого сленга (40+ пар: «стипуха» → «стипендия», «общага» → «общежитие» и т.д.).
Система состоит из четырёх модулей Python 3.11: bot.py — Telegram-обработчики и inline-навигация; engines.py — три поисковых движка; nlp_utils.py — лемматизация, стоп-слова, словарь синонимов; eval_compare.py — сравнительное тестирование.
Система развёртывается как изолированный Docker-контейнер одной командой docker compose up -d --build. Выбор поискового движка осуществляется через переменную окружения ENGINE_TYPE без изменения исходного кода.
Корпус вопросов и ответов сформирован на основе официального сайта РГСУ (rgsu.net) и включает 210 Q&A-пар, распределённых по 15 тематическим категориям. Наиболее обширными являются разделы «Поступление» (56 вопросов) и «Учебный процесс» (50 вопросов). База хранится в формате JSON и допускает пополнение без изменения программного кода.
Для сравнительного анализа трёх поисковых движков сформирован тестовый набор из 33 запросов: перефразированные вопросы, запросы со студенческим сленгом, запросы с опечатками и перестановками слов, а также три заведомо нерелевантных запроса (ожидаемый отказ).
| Движок | Accuracy | Precision | Recall | F1-score |
|---|---|---|---|---|
| TF-IDF базовый | 78,8% | 80,0% | 78,8% | 78,8% |
| TF-IDF + синонимы | 87,9% | 88,9% | 87,9% | 87,7% |
| TF-IDF Advanced | 84,8% | 86,4% | 84,8% | 84,3% |
Движок TF-IDF + синонимы показал наилучшие результаты по всем метрикам. Все три движка корректно отказались от ответа на три нерелевантных запроса, что подтверждает адекватность порогового механизма.
Разработан и протестирован Telegram-бот-помощник РГСУ, реализующий локальный информационный поиск на основе методов TF-IDF и косинусного сходства с морфологической предобработкой. Лучший поисковый движок достигает точности 87,9% на тестовой выборке из 33 запросов. Система не требует подключения к внешним сервисам, развёртывается посредством Docker и обеспечивает полную конфиденциальность данных.
Перспективы развития: замена TF-IDF на нейросетевые представления текста (Sentence-Transformers, multilingual-e5-base) для повышения точности до ~95%; интеграция с порталом my.rgsu.net для получения актуальных данных в реальном времени.