[发明专利]基于机器学习的源程序自动标注方法在审
| 申请号: | 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所得的注释关键词向量,在解码的过程中,通过不断的对权重进行调整来实现对神经网络的训练,使输入与输出形成一对一、多对一的关系,实现对程序的自动注释。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于南京工业大学,未经南京工业大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201910855472.8/1.html,转载请声明来源钻瓜专利网。
- 上一篇:数据预处理方法、装置、设备及计算机可读存储介质
- 下一篇:一种双层塔台式陵寝





