[发明专利]一种基于门控注意力和交互LSTM的代码生成方法在审
申请号: | 202110487654.1 | 申请日: | 2021-04-30 |
公开(公告)号: | CN113126973A | 公开(公告)日: | 2021-07-16 |
发明(设计)人: | 吴军华;王余轩 | 申请(专利权)人: | 南京工业大学 |
主分类号: | G06F8/30 | 分类号: | G06F8/30;G06N3/04;G06N3/08 |
代理公司: | 暂无信息 | 代理人: | 暂无信息 |
地址: | 211816 江苏省南*** | 国省代码: | 江苏;32 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 基于 门控 注意力 交互 lstm 代码 生成 方法 | ||
本发明涉及一种针对python的代码生成方法,该方法基于门控注意力和交互LSTM将自然语言信息映射为计算机可执行的代码片段。包括:采用双向GRU编码单元对输入信息进行提取。使用门控注意力机制,将上一时刻解码器单元状态与编码信息相融。使用交互LSTM对模型进行解码,实现自然语言到代码的转换。与已有的技术相比,本发明的具有简单、快速的特点,能够较好地提高代码生成的质量。
技术领域
本发明涉及自然语言处理领域,具体来说,本发明涉及一种针对python的代码生成方法。
背景技术
互联网技术、人工智能的发展给软件开发带来了新的机遇。开源状态下数以亿计的代码可以快速,免费的获得。基于大规模代码与数据,如何在节约开发成本的同时,保证开发软件的效率与质量成为值得探索的研究方向。研究者将目光放在了从自然语言到程序语言的转换,即代码生成又称为程序自动生成。自动生成代码将减轻开发者的人工工作,也使程序遵循相同规范,可读性与维护性也将大幅提升,因而得到学术界和工业界的广泛关注。
在代码生成的早期,研究者基于语法规则匹配进行了各种尝试,如组合类型语法CCG,依存组合语法DCS等。这些方法的局限性在于只适用于生成特定领域的逻辑生成。随着神经网络在机器翻译,图像识别等各方面取得突破,编码器-解码器(Seq2Seq)框架也同样逐渐崭露头角。基于该框架采用机器翻译方法可实现不同自然语言和目标语言的转换。但与自然语言相比,程序语言间往往包含着更多的结构信息。对于代码结构问题,可引入抽象语法树对代码结构进行表示,先从自然语言生成抽象语法树,结合注意力再通过语法树生成所需代码语言。但在实现不同语言间转换的时候,自然语言信息在生成代码过程中可能逐渐丢失。
发明内容:
针对目前存在的问题,本发明提出基于门控注意力和交互LSTM的代码生成方法。本发明旨在利用改进的注意力和拓展的LSTM提升生成代码的质量和准确度,步骤如下:
步骤1:采用双向GRU网络对输入信息进行编码,对信息进行正向和反向编码;
步骤1.1:GRU在保持LSTM效果的同时,减少约1/3参数量。同时正向和反向的编码方式,可以更完整地捕捉序列间各单元关联。
步骤1.2:若输入信息为(x1,x2...xn),由步骤1.1可知信息将被映射为正向隐状态和后向隐状态将前后隐状态拼接得到此时刻的整体隐状态。若时刻为i,则整体隐状态如下:
步骤1.3:编码器长度根据输入信息长度相应改变,因此使用各个时刻隐状态,编码信息可表示为S=(s1,s2.....sn)。
步骤2:采用门控注意力机制,该注意力包含GAT层和ATT层。
步骤2.1:注意力权值的改变不会带来编码信息S任何变化,不变性导致上下文向量间相似性高进而影响生成质量,引入门控注意力通过GAT层将S细分为
步骤2.2:若时间步为j,那么在S被输入到ATT层前将解码中前一单元状态cj-1引入GAT层,通过细化S打破这种不变性,GAT层整体计算公式如下:
步骤2.2.1:上述公式可分解为如下表示:
rjt=σ(wrccj-1+wrsst+br)
zjt=σ(wzccj-1+wzsst+bz)
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于南京工业大学,未经南京工业大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202110487654.1/2.html,转载请声明来源钻瓜专利网。