基于GIKT深度知识追踪模型的习题推荐系统
目录结构
Flask-BackEndflask后端 app 后端主体文件 alg 深度学习模块 data 数据集data_process.py 数据预处理gikt.py GIKT模型pebg.py PEBG模型params.py 一些参数train.py 仅模型训练train_test.py 模型训练和测试-五折交叉验证train_test2.py 模型训练和测试-4:1训练测试utils.py 工具函数 view flask蓝图_init_.py 初始化create_data.py 创建初始数据entity.py 实体类setup.py 启动 migrate 数据库迁移文件 Vue-FrontEnd vue前端 public 共用文件src 源代码 api 全局请求设置assets 静态组件components 自定义vue组件layout 页面布局router 路由store 信息储存views 页面App.vue 开始文件main.js js包引入 其他的是一些配置 启动
上面未提及的一些目录都在.gitignore,请手动添加后再启动
前端
进入目录Vue-FrontEnd
cd Vue-FrontEnd 安装需要的包
cnpm install 启动
npm run serve 后端
用pycharm打开目录Flask-BackEnd
修改mysql数据库配置项
执行er_gikt.sql文件, 生成数据库结构
运行data_process.py,生成预训练数据
运行pre_train.py,生成预训练问题向量
运行train.py,训练并保存一次模型(以便后端调用)
用pycharm或者终端启动setup.py,根据报错安装需要的包,其中:
解决报错后,运行一次create_data.py(或者在__init__.py的app_context中调用一次create_data函数),在数据库中添加初始数据
重新启动,访问本机5001端口,测试系统
项目存在的一些问题
算法
PEBG模型未按论文实现,实际上忽略了pnn网络(实现中出现了问题,故将其忽略)参数仍可调优,最终结果可以继续优化前端
前端使用的是vue2+vue-cli,最好可以用vue3+vite重构一遍
重复组件较多,Table,Chart等图都直接写在页面中,而未在assests中单独实现
习题、知识的CRUD没有实现(个人感觉没有必要)
后端
包引用(尤其是对算法包alg的引用)存在问题,使用了粗暴的解决方式 sys.path.append() ,且无法使用相对路径导入flask数据库迁移会报错,只能自己手动通过DBMS修改 项目界面展示
完整代码下载地址:基于GIKT深度知识追踪模型的习题推荐系统