Ce référentiel contient le code de l'article ACL 2021 « Question Generation for Adaptive Education ».
Le code pour les modèles de formation et de test se trouve dans le sous-répertoire ./src
. Le code permettant de répliquer les résultats et les analyses rapportés, ainsi que les analyses supplémentaires (décrites ci-dessous), se trouve dans le sous-répertoire ./results
. Nous fournissons également deux scripts pour jouer facilement avec un modèle de traçage des connaissances des étudiants LMKT ( play_student_model.py
) et un modèle de génération de questions ( play_qg_model.py
).
Si vous trouvez ce référentiel utile, veuillez citer :
@InProceedings{acl21srivastava,
title = {Question Generation for Adaptive Education},
author = {Srivastava, Megha and Goodman, Noah},
booktitle = {Association for Computational Linguistics (ACL)},
year = {2021},
}
Les fichiers de données brutes originaux sont fournis par Duolingo et sont accessibles à l'adresse : https://sharedtask.duolingo.com/2018.html. Si vous utilisez des données Duolingo, veillez à citer :
@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
contient les dépendances requises pour ce code, et nous utilisons également la bibliothèque HuggingFaces Transformers version 3.4.0
. Pour accéder à tous les fichiers de données, exécutez les commandes cd data; unzip data.zip
. Pour accéder à tous les modèles, y compris ceux avec lesquels vous pouvez utiliser le script play_student_model.py
, exécutez mkdir models; cd models
, téléchargez le fichier acl2021_models.zip
(à partir de https://www.dropbox.com/s/chkdhmn54l2ptzf/acl2021_models.zip?dl=0) dans le répertoire models
et exécutez unzip acl2021_models.zip
.
Une fois les modèles téléchargés, vous pouvez interagir avec des modèles d'étudiants formés pour les apprenants de français et d'espagnol (à partir de l'anglais). Un exemple de commande pour le modèle étudiant français est :
python play_student_model.py -m models/lmkt_student/french_student_model
Pour essayer différentes invites (qui représentent l'historique des questions/réponses de l'élève), modifiez la variable prompts
dans le script.
Vous pouvez également interagir avec des modèles de génération de questions entraînés pour les apprenants de français et d'espagnol. Un exemple de commande pour les étudiants qui apprennent l'espagnol est :
python play_qg_model.py -g models/question_generation/spanish_qg
Pour essayer différentes invites (qui représentent l'historique des questions/réponses de l'élève et le contrôle de la difficulté ), modifiez la variable prompts
dans le script.
Dans cette base de code, nous incluons une analyse exploratoire plus approfondie qui n'était pas incluse dans l'article principal. Cela peut être trouvé sur ./results/further_analysis
.
Dans le cahier lmkt_trends.ipynb
, nous étudions quelles questions Duolingo prédisent par nos modèles LM-KT comme étant faciles pour tous les étudiants (par exemple "non, merci"), difficiles pour tous les étudiants (par exemple "pourquoi ne touchez-vous pas la tortue ?"). , ou des difficultés très variées selon les élèves (par exemple « bonne année ! »).
Dans le bloc-notes new_vocab.ipynb
, nous découvrons qu'en plus de générer de nouvelles questions d'étudiants, notre modèle de génération de questions a généré de nouveaux mots de vocabulaire , tels que Operator et Teaching , probablement en raison de l'apparition de mots de la même famille de mots dans l'ensemble de données Duolingo.
Pour toute question, veuillez contacter [email protected] !