目前在高校C语言编程课程中,使用客观评价的题目难度考验学生的学习情况是非常重要的手段。目前大部分难度评估方法都针对特有科目和特有题型,而对中文编程题目的难度评估存在不足。因此,提出一种融合题目文本和知识点标签的基于BERT(Bidirectional Encoder Representations from Transformers)和双向长短时记忆(Bi-LSTM)模型的C语言题目难度预测模型FTKB-BiLSTM(Fusion of Title and Knowledge based on BERT and Bi-LSTM)。首先,利用BERT的中文预训练模型获得题目文本和知识点的词向量;其次,融合模块将融合后的信息通过BERT处理得到文本的信息表示,并输入Bi-LSTM模型中学习其中的序列信息,提取更丰富的特征;最后,把经Bi-LSTM模型得到的特征表示通过全连接层并经过Softmax函数处理得到题目难度分类结果。在Leetcode中文数据集和ZjgsuOJ平台数据集上的实验结果表明,相较于XLNet等主流的深度学习模型,所提模型的准确率更优,具有较强的分类能力。
目前大部分题目推荐系统基于人工筛选或利用大数据推荐,较少考虑题目本身的信息。为改善在线教育编程平台的用户体验,在有限的条件下为学生推荐合适的题目,提出一种结合动态词向量优化和文本、标签信息融合的深度学习模型——基于文本和标签信息融合和BERT白化的长短期记忆网络(TLFBW-LSTM)。首先,利用白化技术优化BERT(Bidirectional Encoder Representations from Transformers)模型生成的词向量;其次,利用孪生网络结构和注意力机制分别融合不同题目的文本和标签数据;最后,设置全连接层计算相似程度。此外,通过动态词向量优化和标签嵌入的方式,增强模型对相似题目的识别能力。在力扣的编程题库数据集上的实验结果表明,动态词向量和异构数据的加入能够有效提高模型对相似题目判断的准确率,与Sentence-BERT和DenoSent方法相比,TLFBW-LSTM的准确率提升了13.41%和13.62%,验证了TLFBW-LSTM的有效性。