python llm_extract.py- 输入:txt格式的培养方案
- 输出:输出JSON文件至data目录中
python llm_standard.py- 输入:data目录下的JSON文件
- 输出:clean_data下的JSON文件
- 即使指令明确要求json格式,有时仍然无法生成完整的json
- 语义理解偏差比较大,有时会生成一些无效数据,即重复or遗漏课程信息,导致在构建图谱时,一些相关课程无法成功匹配
- 当收集到的数据是先按学年分类,再按春秋季学期时,无法理解为具体学期
- 对非规范表述的处理能力较弱,如开课学期全部推理为1
- 调用耗时比LLM1更长
- 基本能够按照Prompt要求的格式输出,虽然有时也会生成不完整格式,但是概率明显降低
- 没有重复数据出现,这一点很明显
结论:参数量越大的LLM处理效果更好,但是推理耗费的时间的确更长。
python build_kg.py- 大学——>专业(HAS_MAJOR)
- 专业——>课程——>课程(HAS_COURSE)
- 课程——>章节——>知识点——>知识点(HAS_CHAPTER、HAS_SECTION、PREREQUISITE)
- 输入:JSON格式的培养方案与txt格式的教学大纲(课程目录)
- 输出:nodes.csv和edges.csv
graph_loader.py:读取节点表和关系表kg_query.py:提供核心查询功能visualize.py:使用pyvis生成交互式可视化页面,按节点类型分配不同颜色run.py:生成可视化的查询结果run_backend.py:将查询结果以csv格式保存至本地
python run.py- 查询课程学习路径
- 查询某一专业需学习的课程
- 大学、专业及课程关系总览
python run_backend.py- 查询某门课程的学习路径,输出实体表和关系表
- 查询某专业的课程及课程之间的先修关系
- 查询某大学的课程及课程之间的先修关系
python import2neo4j.py生成适配 Neo4j 的csv,导入neo4j后支持以下查询:
- 查询某门课程的章节与知识点
- 查询某专业的所有课程