[发明专利]源代码注释自动生成方法及系统有效
| 申请号: | 201711137568.8 | 申请日: | 2017-11-16 |
| 公开(公告)号: | CN109799990B | 公开(公告)日: | 2022-02-11 |
| 发明(设计)人: | 劳生;刘艳彬;吴春光;罗飞;范凡;申利飞 | 申请(专利权)人: | 中标软件有限公司 |
| 主分类号: | G06F8/41 | 分类号: | G06F8/41;G06N3/06;G06N3/08 |
| 代理公司: | 北京汇智英财专利代理事务所(普通合伙) 11301 | 代理人: | 何晖 |
| 地址: | 200030 上海市徐汇*** | 国省代码: | 上海;31 |
| 权利要求书: | 查看更多 | 说明书: | 查看更多 |
| 摘要: | |||
| 搜索关键词: | 源代码 注释 自动 生成 方法 系统 | ||
1.一种源代码注释自动生成方法,其特征在于,包括如下步骤:
步骤S1:利用第一源代码的第一抽象语法树,建立语法标识tid-句子标识sid映射关系;所述步骤S1具体包括:
步骤S11:对第一源代码进行词法及语法分析,得到第一源代码中的每一个功能模块的第一抽象语法树,并为每棵第一抽象语法树分配一个唯一的第一语法标识tid;
步骤S12:提取出第一源代码中各个层次的代码注释,并为每个独立的第一句子分配一个唯一的第一句子标识sid;
步骤S13:根据步骤S11的第一语法标识tid及步骤S12的第一句子标识sid,建立语法标识tid与句子标识sid的一一映射关系;
步骤S14:将第一源代码的第一句子标识sid保存到递归神经网络训练数据集中,供后续的递归神经网络模型学习;
步骤S2:对第二源代码进行词法及语法分析,得到第二抽象语法树,并对该第二抽象语法树进行匹配计算,得到第二语法标识tid;
步骤S3:根据步骤S1中的语法标识tid-句子标识sid映射关系以及步骤S2中的第二语法标识tid,得到第二句子标识sid;
步骤S4:根据步骤S14中的递归神经网络训练数据集,对由递归神经网络神经元组成的递归神经网络进行学习训练,应用领域问题知识体系结构,构建注释生成模型;
步骤S5:根据步骤S3中的第二句子标识sid以及步骤S4中的注释生成模型,生成第二源代码的注释;
其中,第一源代码为已有注释的软件程序源代码,第二源代码为欲对其注释的源代码;第一抽象语法树为已有注释的软件程序源代码的抽象语法树,第二抽象语法树为欲对其注释的源代码的抽象语法树;第一语法标识tid及第一句子标识sid分别为已有注释的软件程序源代码的语法标识tid及句子标识sid,第一句子为已有注释的软件程序源代码的句子;第二语法标识tid及第二句子标识sid分别为欲对其注释的源代码的语法标识tid及句子标识sid。
2.如权利要求1所述的源代码注释自动生成方法,其特征在于,所述步骤S4中,递归神经网络进行的学习训练过程包括:
S41:前向计算每个递归神经网络神经元的五个向量输出值;
S42:反向计算每个递归神经网络神经元的误差项δ值;
S43:根据相应的误差项δ值,计算每个权重的梯度;
其中,步骤S42中,神经元的反向计算包括延时反向传播及将误差项向上一层传播。
3.如权利要求1所述的源代码注释自动生成方法,其特征在于:
所述步骤S11中及步骤S2中,词法分析使用Flex程序处理,语法分析使用bison程序处理;
所述步骤S13中,语法标识tid与句子标识sid的一一映射关系使用哈希算法建立。
4.如权利要求1所述的源代码注释自动生成方法,其特征在于:
所述步骤S4中,递归神经网络进行的学习训练内容包括句子匹配以及与应用软件领域相关的知识及词汇的表述及表达顺序。
5.如权利要求1所述的源代码注释自动生成方法,其特征在于:所述步骤S2中,对该第二抽象语法树进行的匹配计算使用VF2子图匹配算法。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于中标软件有限公司,未经中标软件有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201711137568.8/1.html,转载请声明来源钻瓜专利网。





