[发明专利]一种基于标签图嵌入技术的自动代码生成方法及系统有效
申请号: | 201910898025.0 | 申请日: | 2019-09-23 |
公开(公告)号: | CN110673840B | 公开(公告)日: | 2022-10-11 |
发明(设计)人: | 吕晨;张菡文;王汝芸;高学剑;吕蕾;刘弘 | 申请(专利权)人: | 山东师范大学 |
主分类号: | G06F8/30 | 分类号: | G06F8/30;G06F8/33;G06F8/41 |
代理公司: | 济南圣达知识产权代理有限公司 37221 | 代理人: | 李琳 |
地址: | 250000 山*** | 国省代码: | 山东;37 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 基于 标签 嵌入 技术 自动 代码 生成 方法 系统 | ||
1.一种基于标签图嵌入技术的自动代码生成方法,其特征在于,步骤如下:
读取自然语言描述并将其转化为对应语句的二维one-hot向量序列,读取目标代码中的方法调用序列并将方法转化为初始化的二维one-hot向量序列;
对提取出的方法调用序列进行标签图建模,并合并标签图中邻居节点的同类节点,再利用标签图嵌入方法将合并后图模型中的节点信息转化为代码片段的二维图嵌入向量序列,具体为:
当目标代码转化为标签图后,根据节点的调用关系,将节点的后向节点按照相同的标签进行分组,分组完成后,按照组别对该节点的后向节点进行均值聚合,得到虚拟节点,根据合并节点后的图模型中节点调用关系产生的时序序列,对节点特征进行融合,将融合邻居节点特征后的每个节点映射到一个一维图嵌入向量,对当前读取的自然语言描述片段对应的目标代码片段包含的节点向量序列进行合并得到当前对应目标代码片段的二维图嵌入向量序列;
对自然语言描述的二维one-hot向量序列和目标代码的二维图嵌入向量序列进行训练得到自然语言描述与目标代码相对应的神经网络参数,构建序列到序列神经网络模型,具体为:
所述序列到序列神经网络模型包括编码器、基于标签图嵌入方法的解码器和注意力机制模型,所述编码器利用长短时记忆网络进行自然语言描述特征的训练;所述基于标签图嵌入方法的解码器利用长短时记忆网络对标签图嵌入方法生成的代码片段的节点向量特征进行训练;所述注意力机制模型利用匹配函数与正切变化计算自然语言描述特征与目标代码特征之间对应的权重值;
根据序列到序列神经网络模型,基于自然语言描述的特征值并进行解码,生成对应目标代码。
2.如权利要求1所述的基于标签图嵌入技术的自动代码生成方法,其特征在于,利用one-hot编码对自然语言描述所形成的语料库进行处理,将语料库所属的每一个词汇映射为一个一维one-hot向量后,对当前读取的自然语言描述片段中包含的词汇向量序列进行合并得到当前读取自然语言描述语句的二维one-hot向量序列。
3.如权利要求1所述的基于标签图嵌入技术的自动代码生成方法,其特征在于,利用one-hot编码对目标代码中提取出的方法调用序列进行初始化,对方法调用序列所形成的语料库进行编码,将语料库所属的每个方法名称映射为一个一维one-hot向量,合并得到初始化后所有节点对应的二维one-hot向量序列。
4.如权利要求1所述的基于标签图嵌入技术的自动代码生成方法,其特征在于,所述标签图建模的方法具体为:利用程序依赖分析工具提取目标代码的方法依赖关系,根据方法之间的输入输出关系构造标签图,并将标签图存放在邻接矩阵中。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于山东师范大学,未经山东师范大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201910898025.0/1.html,转载请声明来源钻瓜专利网。