[发明专利]一种基于深度学习的代码生成方法及装置有效
申请号: | 201910770155.6 | 申请日: | 2019-08-20 |
公开(公告)号: | CN110489110B | 公开(公告)日: | 2023-10-03 |
发明(设计)人: | 赵旸;刘思凡;邱旻峰 | 申请(专利权)人: | 腾讯科技(深圳)有限公司 |
主分类号: | G06F8/36 | 分类号: | G06F8/36 |
代理公司: | 深圳市深佳知识产权代理事务所(普通合伙) 44285 | 代理人: | 骆苏华 |
地址: | 518000 广东省深圳*** | 国省代码: | 广东;44 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 基于 深度 学习 代码 生成 方法 装置 | ||
1.一种基于深度学习的代码生成方法,其特征在于,所述方法包括:
获取待处理自然语言描述内容;
得到所述待处理自然语言描述内容中各个词语的词向量;
调用预设神经网络模型,得到所述预设神经网络模型输出的所述词向量对应的各个代码对象,所述预设神经网络模型指示已有自然语言描述内容中各个词语的词向量和已有标准代码中各个代码对象之间的映射关系;
基于所述词向量对应的各个代码对象,生成所述待处理自然语言描述内容对应的代码。
2.根据权利要求1所述的方法,其特征在于,所述调用预设神经网络模型,得到所述预设神经网络模型输出的所述词向量对应的各个代码对象包括:
调用所述预设神经网络模型的第一神经网络层,得到所述第一神经网络层输出的各个所述词向量匹配的词;
将各个所述词向量匹配的词作为所述预设神经网络模型的注意力层的输入,得到所述注意力层输出的各个代码对象向量;
调用所述预设神经网络模型的第二神经网络层,得到所述第二神经网络层输出的各个代码对象向量匹配的代码对象。
3.根据权利要求2所述的方法,其特征在于,所述将各个所述词向量匹配的词作为所述预设神经网络模型的注意力层的输入,得到所述注意力层输出的各个代码对象向量包括:在任一次将各个所述词向量匹配的词输入到所述注意力层后执行以下步骤得到代码对象向量:
获取所述第二神经网络层在该次词输入之前输出的上一个代码对象;
基于所述上一个代码对象,推断当前所述第二神经网络层待输出的代码对象与所述词之间的关系;
基于所述第二神经网络层待输出的代码对象与各个所述词之间的关系以及各个所述词,得到当前所述第二神经网络层输出的代码对象向量。
4.根据权利要求3所述的方法,其特征在于,所述基于所述上一个代码对象,推断当前所述第二神经网络层待输出的代码对象与各个所述词之间的关系包括:
将所述上一个代码对象与各个所述词进行点积,得到各个所述词的点积结果;
基于各个所述词的点积结果,得到各个所述词的权重,各个所述词的权重表示当前所述第二神经网络层待输出的代码对象与各个所述词之间的关系。
5.根据权利要求1所述的方法,其特征在于,所述预设神经网络模型的训练过程包括:
将所述已有自然语言描述内容中各个词语的词向量作为第一输入,将所述已有自然语言描述内容对应的已有标准代码中的代码对象作为第二输入;
得到所述第一输入匹配的词以及所述第二输入的代码对象向量;
通过所述第一输入、所述第二输入、所述第一输入匹配的词以及所述第二输入的代码对象向量,对所述预设神经网络模型的第一神经网络层、注意力层和第二神经网络层的模型参数进行训练,以得到所述预设神经网络模型。
6.根据权利要求1或5所述的方法,其特征在于,所述预设神经网络模型输出的第一个代码对象为表示预测代码开始的代码对象,所述预设神经网络模型输出的最后一个代码对象为表示预测代码结束的代码对象。
7.一种基于深度学习的代码生成装置,其特征在于,所述装置包括:
获取单元,用于获取待处理自然语言描述内容;
得到单元,用于得到所述待处理自然语言描述内容中各个词语的词向量;
调用单元,用于调用预设神经网络模型,得到所述预设神经网络模型输出的所述词向量对应的各个代码对象,所述预设神经网络模型指示已有自然语言描述内容中各个词语的词向量和已有标准代码中各个代码对象之间的映射关系;
生成单元,用于基于所述词向量对应的各个代码对象,生成所述待处理自然语言描述内容对应的代码。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于腾讯科技(深圳)有限公司,未经腾讯科技(深圳)有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201910770155.6/1.html,转载请声明来源钻瓜专利网。