[发明专利]一种从自然语言自动生成Python代码的方法有效
申请号: | 201910689490.3 | 申请日: | 2019-07-29 |
公开(公告)号: | CN110489102B | 公开(公告)日: | 2021-06-18 |
发明(设计)人: | 祝亚兵;张岩峰 | 申请(专利权)人: | 东北大学 |
主分类号: | G06F8/30 | 分类号: | G06F8/30;G06F8/41 |
代理公司: | 大连理工大学专利中心 21200 | 代理人: | 戴风友;梅洪玉 |
地址: | 110819 辽宁*** | 国省代码: | 辽宁;21 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | 本发明属于自然语言处理技术领域,具体涉及一种从自然语言自动生成Python代码的方法。所述的方法步骤如下:步骤1:采用GAN网络的生成器根据自然语言描述生成程序片段的抽象语法树。步骤2:采用GAN的判别器判断生成器生成的抽象语法树的语义是否与给定的自然语言描述的语义是否一致。步骤3:将GAN网络的生成器和判别器一起训练。本发明通过生成对抗网络优化训练,生成一个代码生成系统,该系统可以根据用户给定的对于一个功能的自然语言描述,然后生成一段具有相同功能的程序代码。相较于传统的优化方法,使用生成对抗网络进行对抗博弈训练,生成器能够更有效地学习到自然语言和编程语言的语言模型。 | ||
搜索关键词: | 一种 自然语言 自动 生成 python 代码 方法 | ||
【主权项】:
1.一种从自然语言自动生成Python代码的方法,其特征在于,步骤如下:/n步骤1:采用GAN网络的生成器根据自然语言描述生成程序片段的抽象语法树;/n步骤1.1:采用双向LSTM网络作为Encoder,对自然语言描述序列进行编码;/n步骤1.1.1:从左到右以及从右到左两个方向对自然语言描述序列进行编码,得到每个字符的中间隐藏向量 /n步骤1.1.2:将中间隐藏向量 进行concat操作 即为自然语言描述字符的编码向量,并把每个字符的编码向量保存下来,以待后面Decoder使用;/n步骤1.1.3:将最后一个字符的中间隐藏向量作为Decoder的初始状态hend;/n步骤1.2:采用单向LSTM网络作为Decoder,将Encoder编码的自然语言语义解码构建为程序的抽象语法树;/n步骤2:训练判别器的数据分为三种:A训练数据中的自然语言描述和与之对应的程序的抽象语法树;B给定自然语言描述和生成器生成的抽象语法树;C自然语言描述序列和与之无关的程序的抽象语法树;/n对于训练数据A给定标签为一致;而训练数据B,C给定标签为不一致;/n步骤2.1:采用GAN生成器中Encoder的方法对自然语言描述序列进行编码;/n步骤2.2:采用树型LSTM网络,自底向上对抽象语法树进行编码,一直编码到抽象语法树的根节点;/n步骤2.3:将2.1和2.2中的自然语言语义向量和抽象语法树的语义向量进行向量乘法;/n步骤2.4:重复2.1和2.3,对步骤2中的训练数据B和训练数据C进行同样的操作;/n步骤2.5:对2.4中的训练数据对进行二分类预测,及判断这三种情况下自然语言和程序抽象语法树的语义是否一致;/n步骤3:将GAN网络的生成器和判别器一起训练,生成器和判别器交替优化。/n
下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于东北大学,未经东北大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/patent/201910689490.3/,转载请声明来源钻瓜专利网。