The_Project

0

Описание

Кравченко В.Р.

Языки

  • Python100%
README.md

Study Material Recommender

Система рекомендации учебных материалов студентам на основе их предпочтений, уровня знаний и истории обучения. Проект демонстрирует гибридный подход (collaborative filtering + content-based) и автоматизацию через GitVerse Actions.

Автор: Кравченко Владислава

Возможности

  • Гибридные рекомендации с настраиваемым весом
    alpha
    .
  • Обработка cold-start пользователей (fallback на популярные материалы).
  • Оценка качества (RMSE) и пример отчета в CI.
  • Минимальный датасет
    data/sample.csv
    для быстрого запуска.

Требования

  • Python 3.8+
  • Установленный
    pip
  • Зависимости из
    requirements.txt
    (numpy, pandas, scikit-learn, pytest и др.).

Установка

Предварительно установите Python 3.8+ и pip.

Быстрый старт

Генерация отчета локально

Примеры результатов

  • В файле
    artifacts/report.md
    после генерации отчета будут, например:
    • размер датасета, количество пользователей и материалов;
    • значение RMSE на тестовой выборке;
    • список рекомендованных материалов для одного из пользователей с их оценками-рейтингами.

Тесты и качество кода

Структура проекта

src/ # Основной код (гибридный алгоритм) tests/ # Unit-тесты (pytest) data/ # Пример датасета scripts/ # Служебные скрипты (генерация отчета) docs/ # Доп. документация (архитектура) .gitverse/workflows # CI/CD (lint/test + отчеты по расписанию)

CI/CD

  • .gitverse/workflows/tests.yml
    — линт, формат, тесты на Python 3.8-3.10.
  • .gitverse/workflows/report.yml
    — cron и ручной
    workflow_dispatch
    для генерации отчета с метриками, артефакт
    artifacts/report.md
    .

Ключевые файлы

  • src/main.py
    — класс
    StudyMaterialRecommender
    , предсказания, RMSE.
  • src/utils.py
    — загрузка данных, разбиение, утилиты.
  • scripts/generate_report.py
    — формирует markdown-отчет.
  • docs/architecture.md
    — краткое описание подхода.

Идеи для расширения

  • Добавить хранение моделей и метрик в объектное хранилище.
  • Поддержать матрицу признаков по авторам/длительности материалов.
  • Реализовать REST API (FastAPI) для онлайн-рекомендаций.