Este repositorio contiene el código del documento de ACL 2021 "Generación de preguntas para la educación adaptativa".
El código para entrenar y probar modelos se encuentra en el subdirectorio ./src
. El código para replicar los resultados y análisis informados, así como análisis adicionales (descritos a continuación), se encuentra en el subdirectorio ./results
. También proporcionamos dos scripts para jugar fácilmente con un modelo de seguimiento del conocimiento de los estudiantes de LMKT ( play_student_model.py
) y un modelo de generación de preguntas ( play_qg_model.py
).
Si encuentra útil este repositorio, cite:
@InProceedings{acl21srivastava,
title = {Question Generation for Adaptive Education},
author = {Srivastava, Megha and Goodman, Noah},
booktitle = {Association for Computational Linguistics (ACL)},
year = {2021},
}
Duolingo proporciona los archivos de datos sin procesar originales y se puede acceder a ellos en: https://sharedtask.duolingo.com/2018.html. Si utiliza datos de Duolingo, asegúrese de citar:
@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
contiene las dependencias necesarias para este código y, además, utilizamos la biblioteca HuggingFaces Transformers versión 3.4.0
. Para acceder a todos los archivos de datos, ejecute los comandos cd data; unzip data.zip
. Para acceder a todos los modelos, incluidos aquellos con los que puede utilizar el script play_student_model.py
, ejecute mkdir models; cd models
, descargue el archivo acl2021_models.zip
(de https://www.dropbox.com/s/chkdhmn54l2ptzf/acl2021_models.zip?dl=0) en el directorio models
y ejecute unzip acl2021_models.zip
.
Una vez que se hayan descargado los modelos, puede interactuar con modelos de estudiantes capacitados para estudiantes de francés y español (del inglés). Un comando de ejemplo para el modelo de estudiante francés es:
python play_student_model.py -m models/lmkt_student/french_student_model
Para probar diferentes mensajes (que representan el historial de preguntas/respuestas del estudiante), modifique la variable prompts
en el guión.
También puede interactuar con modelos capacitados de generación de preguntas para estudiantes de francés y español. Un comando de ejemplo para estudiantes que aprenden español es:
python play_qg_model.py -g models/question_generation/spanish_qg
Para probar diferentes indicaciones (que representan el historial de preguntas/respuestas del estudiante y el control de dificultad ), modifique la variable prompts
en el guión.
En este código base, incluimos análisis exploratorios adicionales que no se incluyeron en el artículo principal. Esto se puede encontrar en ./results/further_analysis
.
En el cuaderno lmkt_trends.ipynb
, investigamos qué preguntas de Duolingo nuestros modelos LM-KT predicen como fáciles para todos los estudiantes (por ejemplo, "no, gracias"), difíciles para todos los estudiantes (por ejemplo, "¿por qué no tocas la tortuga?"). , o muy variada en dificultad entre los estudiantes (por ejemplo, "¡feliz año nuevo!").
En el cuaderno new_vocab.ipynb
, descubrimos que además de generar preguntas novedosas para los estudiantes, nuestro modelo de generación de preguntas generó nuevas palabras de vocabulario , como operador y enseñanza , probablemente debido a que aparecen palabras de la misma familia de palabras en el conjunto de datos de Duolingo.
Si tiene alguna pregunta, comuníquese con [email protected].