[发明专利]基于机器学习的源程序自动标注方法在审

专利信息
申请号: 201910855472.8 申请日: 2019-09-09
公开(公告)号: CN112463209A 公开(公告)日: 2021-03-09
发明(设计)人: 吴军华;王瑞 申请(专利权)人: 南京工业大学
主分类号: G06F8/73 分类号: G06F8/73;G06N20/00
代理公司: 暂无信息 代理人: 暂无信息
地址: 211816 江*** 国省代码: 江苏;32
权利要求书: 查看更多 说明书: 查看更多
摘要:
搜索关键词: 基于 机器 学习 源程序 自动 标注 方法
【权利要求书】:

1.一种基于机器学习的源程序自动标注方法,其特征在于,包括:

步骤1:采用双编码器对源程序进行预处理,提取程序特征;

步骤2:利用GRU解码器进行模型训练,实现对源程序的自动描述。

2.根据权利要求1所述的基于机器学习的源程序自动标注方法,其特征在于,所述步骤1包括:

步骤1.1:采用Bi-GRU序列编码器提取源程序序列特征向量;

步骤1.2:采用TreeLSTM结构树编码器提取源程序结构特征向量。

3.根据权利要求2所述的基于机器学习的源程序自动标注方法,其特征在于,所述步骤1.1包括:

步骤1.1.1:将Bi-GRU层几个单变量连接的特征向量作为序列编码器的表示向量Vs

4.根据权利要求2所述的基于机器学习的源程序自动标注方法,其特征在于,所述步骤1.2包括:

步骤1.2.1:将程序语句转化为抽象语法树序列x=(x1,x2...,xn);

步骤1.2.2:使用树形TreeLSTM提取抽象语法树的结构信息;

TreeLSTM更新后的规则如下:

fjk=σ(Wf·xj+Uf·hk+bf)

ht=oj*tanh(cj)

cj=ij*uj+∑k∈C(j)fjk*ck

式中:其中c(j)表示抽象语法树中第j个节点的孩子节点集合,k∈C(j);fjk遗忘门;ij输入门;oj输出们;*表示两个向量进行点乘;xt是本时刻输入的字;Wf,Uf,Wi,Ui,Wo,Uo,分别为各个门的权重矩阵;σ是逻辑函数。

步骤1.2.3:对抽象语法树自底向上的更新,最终生成的树编码器表示向量用Vt表示。

5.根据权利要求1所述的基于机器学习的源程序自动标注方法,其特征在于,所述步骤2包括:

步骤2.1:注释关键词提取;

步骤2.2:解码器注释自动生成模型。

6.根据权利要求4所述的基于机器学习的源程序自动标注方法,其特征在于,所述步骤2.1包括:

步骤2.1.1:对程序中所有注释进行提取:①遇到“//”,②遇到“/*”开始,遇到“*/”结束;

步骤2.1.2:采用基于机器学习的双向LSTM的分词方法,对提取出的所有注释词进行分词、关键词提取;

步骤2.1.3:利用python对分词后的结果进行降重;

步骤2.1.4:将分词、降重之后的词整合成字典并进行编码,然后根据每个单词的编号生成其独有的one-hot向量。

7.根据权利要求4所述的基于机器学习的源程序自动标注方法,其特征在于,所述步骤2.2包括:

步骤2.2.1:采用单向GRU网络解码器作为注释生成模型,对两个编码器所得到的向量进行拼接,作为输入初值V0

V0=[Vs,Vt]

步骤2.2.2:通过不断地调整权重参数训练解码器模型。

8.根据权力要求6所述的对基于机器学习的源程序自动标注方法,其特征在于,步骤2.2.1的GRU解码器,输入为两个编码器所得向量的拼接,输出则是步骤2.1所得的注释关键词向量,在解码的过程中,通过不断的对权重进行调整来实现对神经网络的训练,使输入与输出形成一对一、多对一的关系,实现对程序的自动注释。

下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。

该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于南京工业大学,未经南京工业大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服

本文链接:http://www.vipzhuanli.com/pat/books/201910855472.8/1.html,转载请声明来源钻瓜专利网。

×

专利文献下载

说明:

1、专利原文基于中国国家知识产权局专利说明书;

2、支持发明专利 、实用新型专利、外观设计专利(升级中);

3、专利数据每周两次同步更新,支持Adobe PDF格式;

4、内容包括专利技术的结构示意图流程工艺图技术构造图

5、已全新升级为极速版,下载速度显著提升!欢迎使用!

请您登陆后,进行下载,点击【登陆】 【注册】

关于我们 寻求报道 投稿须知 广告合作 版权声明 网站地图 友情链接 企业标识 联系我们

钻瓜专利网在线咨询

周一至周五 9:00-18:00

咨询在线客服咨询在线客服
tel code back_top