该存储库包含 ACL 2021 论文“自适应教育的问题生成”的代码。
训练和测试模型的代码位于./src
子目录中。用于复制报告结果和分析以及附加分析(如下所述)的代码位于./results
子目录中。我们还提供了两个脚本来轻松使用 LMKT 学生知识追踪模型 ( play_student_model.py
) 和问题生成模型 ( play_qg_model.py
)。
如果您发现此存储库有用,请引用:
@InProceedings{acl21srivastava,
title = {Question Generation for Adaptive Education},
author = {Srivastava, Megha and Goodman, Noah},
booktitle = {Association for Computational Linguistics (ACL)},
year = {2021},
}
原始原始数据文件由 Duolingo 提供,可以通过以下网址访问:https://sharedtask.duolingo.com/2018.html。如果您使用 Duolingo 数据,请务必引用:
@inproceedings{settles-etal-2018-second,
title = "Second Language Acquisition Modeling",
author = "Settles, Burr and
Brust, Chris and
Gustafson, Erin and
Hagiwara, Masato and
Madnani, Nitin",
booktitle = "Proceedings of the Thirteenth Workshop on Innovative Use of {NLP} for Building Educational Applications",
year = "2018",
}
requirements.txt
包含此代码所需的依赖项,我们还使用 HuggingFaces Transformers 库版本3.4.0
。要访问所有数据文件,请运行命令cd data; unzip data.zip
。要访问所有模型,包括可以使用play_student_model.py
脚本的模型,请运行mkdir models; cd models
,将文件acl2021_models.zip
(来自 https://www.dropbox.com/s/chkdhmn54l2ptzf/acl2021_models.zip?dl=0 )下载到models
目录中,然后运行unzip acl2021_models.zip
。
下载模型后,您可以与法语和西班牙语学习者(来自英语)训练有素的学生模型进行交互。法国学生模型的示例命令是:
python play_student_model.py -m models/lmkt_student/french_student_model
要尝试不同的提示(代表学生问题/答案历史记录),请修改脚本中的prompts
变量。
您还可以与针对法语和西班牙语学习者训练有素的问题生成模型进行交互。学习西班牙语的学生的命令示例是:
python play_qg_model.py -g models/question_generation/spanish_qg
要尝试不同的提示(代表学生问题/答案历史记录和难度控制),请修改脚本中的prompts
变量。
在此代码库中,我们包含了主论文中未包含的进一步探索性分析。这可以在./results/further_analysis
找到。
在lmkt_trends.ipynb
笔记本中,我们研究了 Duolingo 提出的哪些问题,我们的 LM-KT 模型预测哪些问题对所有学生来说都容易(例如“不,谢谢”),而对所有学生来说都很难(例如“你为什么不碰乌龟?”) ,或者不同学生的难度差异很大(例如“新年快乐!”)。
在new_vocab.ipynb
笔记本中,我们发现除了生成新颖的学生问题之外,我们的问题生成模型还生成了新的词汇单词,例如操作员和教学,这可能是由于 Duolingo 数据集中出现的同一词族的单词造成的。
如有任何疑问,请联系[email protected]!