改进的神经语言模型及其在代码提示中的应用
语言模型旨在刻画文本段的发生概率,作为自然语言处理领域中的一类重要模型,近年来其被广泛应用于不同软件分析任务,例如代码提示.为提高模型对代码特征的学习能力,文中提出了一种改进的循环神经网络语言模型——CodeNLM.该模型通过分析词向量形式表示的源代码序列,能够捕获代码规律,实现对序列联合概率分布的估计.考虑到现有模型仅学习代码数据,信息的利用不充分,提出了附加信息引导策略,通过非代码信息的辅助来提高代码规律的刻画能力.针对语言建模任务的特点,提出了节点逐层递增策略,通过优化网络结构来改善信息传递的有效性.实验中,针对9个Java项目共203万行代码,CodeNLM得到的困惑度指标明显优于n-gram类模型和传统神经语言模型,在代码提示应用中得到的平均准确度(MRR指标)较对比方法提高了3.4% ~24.4%.实验结果表明,CodeNLM能有效地实现程序语言建模和代码提示任务,并具有较强的长距离信息学习能力.
软件分析、代码提示、自然语言处理、语言模型、循环神经网络
46
TP311.5(计算技术、计算机技术)
国家安全重大基础研究计划项目613315
2019-12-13(万方平台首次上网日期,不代表论文的发表时间)
共8页
168-175