Este repositório contém o código do artigo ACL 2021 "Question Generation for Adaptive Education".
O código para modelos de treinamento e teste está no subdiretório ./src
. O código para replicar resultados e análises relatados, bem como análises adicionais (descritas abaixo), está no subdiretório ./results
. Também fornecemos dois scripts para brincar facilmente com um modelo de rastreamento de conhecimento do aluno LMKT ( play_student_model.py
) e um modelo de geração de perguntas ( play_qg_model.py
).
Se você achar este repositório útil, cite:
@InProceedings{acl21srivastava,
title = {Question Generation for Adaptive Education},
author = {Srivastava, Megha and Goodman, Noah},
booktitle = {Association for Computational Linguistics (ACL)},
year = {2021},
}
Os arquivos originais de dados brutos são fornecidos pelo Duolingo e podem ser acessados em: https://sharedtask.duolingo.com/2018.html. Se você usa dados do Duolingo, certifique-se 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
contém dependências necessárias para este código e, adicionalmente, usamos a biblioteca HuggingFaces Transformers versão 3.4.0
. Para acessar todos os arquivos de dados, execute os comandos cd data; unzip data.zip
. Para acessar todos os modelos, incluindo aqueles com os quais você pode usar o script play_student_model.py
, execute mkdir models; cd models
, baixe o arquivo acl2021_models.zip
(em https://www.dropbox.com/s/chkdhmn54l2ptzf/acl2021_models.zip?dl=0) no diretório models
e execute unzip acl2021_models.zip
.
Após o download dos modelos, você poderá interagir com modelos de alunos treinados para alunos de francês e espanhol (do inglês). Um exemplo de comando para modelo de estudante francês é:
python play_student_model.py -m models/lmkt_student/french_student_model
Para tentar prompts diferentes (que representam o histórico de perguntas/respostas do aluno), modifique a variável prompts
no script.
Você também pode interagir com modelos treinados de geração de perguntas para alunos de francês e espanhol. Um exemplo de comando para alunos que estão aprendendo espanhol é:
python play_qg_model.py -g models/question_generation/spanish_qg
Para tentar prompts diferentes (que representam o histórico de perguntas/respostas do aluno e o controle de dificuldade ), modifique a variável prompts
no script.
Nesta base de código, incluímos análises exploratórias adicionais que não foram incluídas no artigo principal. Isso pode ser encontrado em ./results/further_analysis
.
No caderno lmkt_trends.ipynb
, investigamos quais questões do Duolingo nossos modelos LM-KT prevêem como fácil para todos os alunos (por exemplo, "não, obrigado"), difícil para todos os alunos (por exemplo, "por que você não toca na tartaruga?") , ou com dificuldade muito variada entre os alunos (por exemplo, "feliz ano novo!").
No caderno new_vocab.ipynb
, descobrimos que, além de gerar novas perguntas para os alunos, nosso modelo de geração de perguntas gerou novas palavras de vocabulário , como operador e ensino , provavelmente devido a palavras da mesma família de palavras que aparecem no conjunto de dados do Duolingo.
Para qualquer dúvida, entre em contato com [email protected]!