首页 期刊 计算机科学 改进的神经语言模型及其在代码提示中的应用 【正文】

改进的神经语言模型及其在代码提示中的应用

作者:张献; 贲可荣 海军工程大学电子工程学院; 武汉430033
软件分析   代码提示   自然语言处理   语言模型   循环神经网络  

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

注:因版权方要求,不能公开全文,如需全文,请咨询杂志社

学术咨询 免费咨询 杂志订阅