[发明专利]一种基于深度学习的代码生成方法及装置有效
申请号: | 201910770155.6 | 申请日: | 2019-08-20 |
公开(公告)号: | CN110489110B | 公开(公告)日: | 2023-10-03 |
发明(设计)人: | 赵旸;刘思凡;邱旻峰 | 申请(专利权)人: | 腾讯科技(深圳)有限公司 |
主分类号: | G06F8/36 | 分类号: | G06F8/36 |
代理公司: | 深圳市深佳知识产权代理事务所(普通合伙) 44285 | 代理人: | 骆苏华 |
地址: | 518000 广东省深圳*** | 国省代码: | 广东;44 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 基于 深度 学习 代码 生成 方法 装置 | ||
本发明提供一种基于深度学习的代码生成方法及装置,在获取到待处理自然语言描述内容后,得到待处理自然语言描述内容中各个词语的词向量,调用预设神经网络模型,得到预设神经网络模型输出的词向量对应的各个代码对象,基于词向量对应的各个代码对象,生成待处理自然语言描述对应的代码,其中预设神经网络模型指示已有自然语言描述内容中各个词语的词向量和已有标准代码中各个代码对象之间的映射关系,因此在得到待处理自然语言描述内容中各个词语的词向量后,通过调用预设神经网络模型能够从已有标准代码中得到与待处理自然语言描述内容匹配的代码对象,实现对已有标准代码中代码对象的复用。
技术领域
本发明属于软件工程技术领域,尤其涉及一种基于深度学习的代码生成方法及装置。
背景技术
在应用程序(Application,APP)开发过程中,用户需求的多变以及APP开发规模的加大,使得APP开发周期变长且成本增加,对于开发的不同APP来说,APP之间有一些相似逻辑的代码可以抽取出来复用,例如游戏类型APP中的角色校验和游戏道具发货是具有相似逻辑的,相对应的角色校验和游戏道具发货的代码是可以复用的。
但是目前不同APP中相似逻辑的代码都需要程序开发人员各自独立开发,因此亟需一种能够实现代码复用的基于深度学习的代码生成方法及装置。
发明内容
有鉴于此,本发明的目的在于提供一种基于深度学习的代码生成方法及装置,实现对已有标准代码的复用。技术方案如下:
本发明提供一种基于深度学习的代码生成方法,所述方法包括:
获取待处理自然语言描述内容;
得到所述待处理自然语言描述内容中各个词语的词向量;
调用预设神经网络模型,得到所述预设神经网络模型输出的所述词向量对应的各个代码对象,所述预设神经网络模型指示已有自然语言描述内容中各个词语的词向量和已有标准代码中各个代码对象之间的映射关系;
基于所述词向量对应的各个代码对象,生成所述待处理自然语言描述内容对应的代码。
优选的,所述调用预设神经网络模型,得到所述预设神经网络模型输出的所述词向量对应的各个代码对象包括:
调用所述预设神经网络模型的第一神经网络层,得到所述第一神经网络层输出的各个所述词向量匹配的词;
将各个所述词向量匹配的词作为所述预设神经网络模型的注意力层的输入,得到所述注意力层输出的各个代码对象向量;
调用所述预设神经网络模型的第二神经网络层,得到所述第二神经网络层输出的各个代码对象向量匹配的代码对象。
优选的,所述将各个所述词向量匹配的词作为所述预设神经网络模型的注意力层的输入,得到所述注意力层输出的各个代码对象向量包括:在任一次将各个所述词向量匹配的词输入到所述注意力层后执行以下步骤得到代码对象向量:
获取所述第二神经网络层在该次词输入之前输出的上一个代码对象;
基于所述上一个代码对象,推断当前所述第二神经网络层待输出的代码对象与所述词之间的关系;
基于所述第二神经网络层待输出的代码对象与各个所述词之间的关系以及各个所述词,得到当前所述第二神经网络层输出的代码对象向量。
优选的,所述基于所述上一个代码对象,推断当前所述第二神经网络层待输出的代码对象与各个所述词之间的关系包括:
将所述上一个代码对象与各个所述词进行点积,得到各个所述词的点积结果;
基于各个所述词的点积结果,得到各个所述词的权重,各个所述词的权重表示当前所述第二神经网络层待输出的代码对象与各个所述词之间的关系。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于腾讯科技(深圳)有限公司,未经腾讯科技(深圳)有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201910770155.6/2.html,转载请声明来源钻瓜专利网。