Dieses Repository enthält den Code für das ACL 2021-Papier „Question Generation for Adaptive Education“.
Code zum Trainieren und Testen von Modellen befindet sich im Unterverzeichnis ./src
. Code zum Replizieren gemeldeter Ergebnisse und Analysen sowie zusätzlicher Analysen (unten beschrieben) befindet sich im Unterverzeichnis ./results
. Wir bieten außerdem zwei Skripte zum einfachen Spielen mit einem LMKT-Studenten-Wissensverfolgungsmodell ( play_student_model.py
) und einem Fragengenerierungsmodell ( play_qg_model.py
).
Wenn Sie dieses Repository nützlich finden, geben Sie bitte Folgendes an:
@InProceedings{acl21srivastava,
title = {Question Generation for Adaptive Education},
author = {Srivastava, Megha and Goodman, Noah},
booktitle = {Association for Computational Linguistics (ACL)},
year = {2021},
}
Die Original-Rohdatendateien werden von Duolingo bereitgestellt und können unter https://sharedtask.duolingo.com/2018.html abgerufen werden. Wenn Sie Duolingo-Daten verwenden, geben Sie bitte unbedingt Folgendes an:
@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
enthält erforderliche Abhängigkeiten für diesen Code, und wir verwenden zusätzlich die HuggingFaces Transformers-Bibliothek Version 3.4.0
. Um auf alle Datendateien zuzugreifen, führen Sie die Befehle cd data; unzip data.zip
. Um auf alle Modelle zuzugreifen, einschließlich derjenigen, mit denen Sie das Skript play_student_model.py
verwenden können, führen Sie mkdir models; cd models
, laden Sie die Datei acl2021_models.zip
(von https://www.dropbox.com/s/chkdhmn54l2ptzf/acl2021_models.zip?dl=0) in das models
-Verzeichnis herunter und führen Sie unzip acl2021_models.zip
aus.
Sobald die Modelle heruntergeladen wurden, können Sie Modelle zur Interaktion mit geschulten Schülern für Französisch- und Spanischlerner (aus dem Englischen) verwenden. Ein Beispielbefehl für das französische Studentenmodell ist:
python play_student_model.py -m models/lmkt_student/french_student_model
Um verschiedene Eingabeaufforderungen auszuprobieren (die den Frage-/Antwortverlauf der Schüler darstellen), ändern Sie die prompts
im Skript.
Sie können auch mit trainierten Fragegenerierungsmodellen für Französisch- und Spanischlerner interagieren. Ein Beispielbefehl für Spanischlernende ist:
python play_qg_model.py -g models/question_generation/spanish_qg
Um verschiedene Eingabeaufforderungen auszuprobieren (die den Frage-/Antwortverlauf des Schülers und die Schwierigkeitskontrolle darstellen), ändern Sie die prompts
im Skript.
In diese Codebasis integrieren wir weitere explorative Analysen, die nicht im Hauptpapier enthalten waren. Diese finden Sie unter ./results/further_analysis
.
Im Notizbuch lmkt_trends.ipynb
untersuchen wir, welche Duolingo-Fragen unsere LM-KT-Modelle als leicht für alle Schüler (z. B. „Nein, danke“) und als schwierig für alle Schüler (z. B. „Warum fassst du nicht die Schildkröte an?“) vorhersagen. oder sehr unterschiedliche Schwierigkeitsgrade zwischen den Schülern (z. B. „Frohes neues Jahr!“).
Im Notizbuch new_vocab.ipynb
stellen wir fest, dass unser Fragegenerierungsmodell nicht nur neue Fragen von Schülern generiert, sondern auch neue Vokabeln wie „operator“ und „ Teaching“ generiert hat, was wahrscheinlich darauf zurückzuführen ist, dass Wörter aus derselben Wortfamilie im Duolingo-Datensatz vorkommen.
Bei Fragen wenden Sie sich bitte an [email protected]!