このリポジトリには、ACL 2021 論文「適応教育のための質問生成」のコードが含まれています。
モデルのトレーニングとテストのコードは./src
サブディレクトリにあります。報告された結果と分析、および追加の分析 (後述) を複製するためのコードは、 ./results
results サブディレクトリにあります。また、LMKT 学生知識追跡モデル ( play_student_model.py
) と質問生成モデル ( play_qg_model.py
) を簡単に操作できる 2 つのスクリプトも提供します。
このリポジトリが役立つと思われる場合は、以下を引用してください。
@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
ノートブックでは、LM-KT モデルがすべての生徒にとって簡単 (例: 「いいえ、ありがとう」)、すべての生徒にとって難しい (例: 「カメに触れてみませんか?」) と予測する Duolingo の質問を調査します。 、または生徒によって難易度が大きく異なります(例:「明けましておめでとうございます!」)。
new_vocab.ipynb
ノートブックでは、新しい生徒の質問を生成することに加えて、質問生成モデルが、 OperatorやTeachingなどの新しい語彙を生成したことがわかりました。これは、おそらく Duolingo データセットに出現する同じ単語ファミリーの単語が原因であると考えられます。
ご質問がございましたら、[email protected] までご連絡ください。