ast2vec:利用 Python 程序的递归神经编码
机器学习
2022-02-11 v1 计算机与社会
神经与进化计算
摘要
教育数据挖掘涉及将数据挖掘技术应用于学生活动。然而,在计算机编程背景下,许多数据挖掘技术无法应用,因为它们期望向量形状的输入,而计算机程序具有语法树的形式。在本文中,我们提出 ast2vec,一种将 Python 语法树映射到向量再映射回来的神经网络,从而促进对计算机程序的数据挖掘以及数据挖掘结果的解释。Ast2vec 已在近五十万份新手程序员的程序上训练,并设计为可跨学习任务应用而无需重新训练,意味着用户无需任何(额外的)深度学习即可应用它。我们在三种设置中展示了 ast2vec 的通用性:首先,我们在课堂规模的数据集上使用 ast2vec 提供示例分析,涉及可视化、学生动作分析、聚类和离群点检测,包括两种新颖分析,即进度-方差投影和动力系统分析。其次,我们考虑 ast2vec 在训练数据和另外两个大规模编程数据集上从其向量表示恢复原始语法树的能力。最后,我们评估了在 ast2vec 之上简单线性回归的预测能力,获得了与直接在语法树上工作的技术相似的结果。我们希望 ast2vec 能够通过使计算机程序的分析更轻松、更丰富和更高效来扩充教育数据挖掘工具集。
引用
@article{arxiv.2103.11614,
title = {ast2vec: Utilizing Recursive Neural Encodings of Python Programs},
author = {Benjamin Paaßen and Jessica McBroom and Bryn Jeffries and Irena Koprinska and Kalina Yacef},
journal= {arXiv preprint arXiv:2103.11614},
year = {2022}
}
备注
Under consideration at the Journal of Educational Datamining