Skip to content

citec-spbu/schedule-optimization

Repository files navigation

Оценка тематических связей между дисциплинами учебного плана

Репозиторий содержит код и данные к выпускной квалификационной работе «Оценка тематических связей между дисциплинами учебного плана».

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

Основной пайплайн

рабочие программы дисциплин
        ↓
извлечение раздела 2.2 из РПД
        ↓
формирование корпуса текстов курсов
        ↓
извлечение учебных понятий
        ↓
формирование описаний понятий
        ↓
расчёт CSR/PRS для пар понятий
        ↓
интерактивное построение графа пререквизитов
        ↓
расчёт графовых характеристик

Структура репозитория

  • rpd_preprocessing.py — извлечение раздела 2.2 из рабочих программ дисциплин.
  • theme_extraction_LLM.py — автоматическое извлечение учебных понятий через GigaChat.
  • description_generation.py — автоматическое формирование описаний понятий через GigaChat.
  • concept_extraction_prompts.py — генерация промптов для извлечения понятий.
  • concept_description_prompts.py — генерация промптов для описаний понятий.
  • calculate_csr.py — расчёт CSR/PRS для пар понятий.
  • run_interactive_ace.py — интерактивное построение графа пререквизитов.
  • metric_calculation.py — расчёт графовых характеристик.

Данные

Папка extracted_data/ содержит основные данные проекта:

  • rpd_2_2.json — извлечённые тексты раздела 2.2 из РПД.
  • educational_concepts.json — полный набор учебных понятий по курсам.
  • selected_concepts.json — выбранные понятия для экспериментального запуска.
  • courses_topics.json — учебные описания выбранных понятий.
  • all_prompts.txt — промпты для извлечения понятий.

Эксперименты

Папка experiments/ содержит материалы экспериментов по проверке вычисления CSR.

Папка future_project_drafts/ содержит наброски будущего развития проекта, связанные с анализом и оптимизацией расписания.

Запуск

Для установки основных зависимостей:

pip install numpy pandas networkx sentence-transformers torch requests openai

Для файлов, использующих GigaChat API, нужно заранее задать переменную окружения:

GIGACHAT_AUTH_KEY

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors