1. 项目背景与核心目标
程序设计课程作为计算机专业的核心基础课,知识点之间存在复杂的逻辑关联。传统教学模式下,学生往往难以建立完整的知识体系框架,容易陷入"只见树木不见森林"的学习困境。我在大三担任课程助教期间,经常遇到学生提出这样的问题:"老师,递归和迭代到底有什么区别?为什么这里要用指针?"这些问题的背后,反映的正是知识点关联理解的缺失。
基于这个痛点,我们团队决定开发一个基于知识图谱的关键知识链系统。不同于普通的在线文档检索,这个系统的核心价值在于:
- 结构化呈现知识点间的逻辑关系(如前置依赖、相似对比、应用场景)
- 支持语义级智能问答(而不仅是关键词匹配)
- 动态生成个性化学习路径(根据学生掌握程度推荐关联知识点)
实际开发中发现,单纯的关键词检索准确率不足40%,而引入知识图谱后,语义理解的准确率提升至78%以上
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. 技术架构设计解析
2.1 整体技术栈选型
经过对三个主流技术方案的对比测试(如下表),我们最终选择了轻量级组合方案:
| 方案类型 | 开发效率 | 运行性能 | 学习成本 | 扩展性 |
|---|---|---|---|---|
| Django全栈 | ★★★ | ★★★★ | ★★ | ★★★★ |
| Spring Boot | ★★ | ★★★★ | ★ | ★★★★ |
| Flask+Neo4j | ★★★★ | ★★★ | ★★★ | ★★★ |
选择理由:
- 教学场景对并发要求不高(预计日均访问<1000次)
- Python生态的NLP工具链更丰富(使用spaCy比Java的OpenNLP效率高30%)
- 团队成员已有Python基础,降低学习成本
2.2 知识图谱构建流程
2.2.1 数据来源处理
我们收集了三种核心教学资源:
- 官方教材(PDF/Word格式)
- 教师讲义(Markdown格式)
- 历年考题(结构化JSON)
使用PyPDF2和python-docx库进行文本提取时,发现教材中的代码示
