【CN110162297A】一种源代码段自然语言描述自动生成方法及系统【专利】
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
(19)中华人民共和国国家知识产权局
(12)发明专利申请
(10)申请公布号 (43)申请公布日 (21)申请号 201910375962.8
(22)申请日 2019.05.07
(71)申请人 山东师范大学
地址 250014 山东省济南市历下区文化东
路88号
(72)发明人 吕晨 张菡文 张海杰 柴春蕾
吕蕾 郑向伟 刘弘
(74)专利代理机构 济南圣达知识产权代理有限
公司 37221
代理人 黄海丽
(51)Int.Cl.
G06F 8/30(2018.01)
G06F 8/73(2018.01)
(54)发明名称
一种源代码段自然语言描述自动生成方法
及系统
(57)摘要
本发明公开了一种源代码段自然语言描述
自动生成方法及系统,所述方法包括:接收源代
码数据,根据预设的分类规则对源代码数据进行
划分,得到不同类型的程序语句;解析所述程序
语句,获取各程序语句对应的主题、动作和辅助
参数,生成相应的自然语言描述语句;根据语句
主题重要度和语句类型重要度计算上述自然语
言描述语句的权重值,并根据权重值从高到低进
行排序,得到该源代码数据的自然语言描述。本
发明能够根据源代码生成符合人们阅读习惯的
自然语言文本。权利要求书2页 说明书9页 附图2页CN 110162297 A 2019.08.23
C N 110162297
A
权 利 要 求 书1/2页CN 110162297 A
1.一种源代码段自然语言描述自动生成方法,其特征在于,包括如下步骤:
接收源代码数据,根据预设的分类规则对源代码数据进行划分,得到不同类型的程序语句;
解析所述程序语句,获取各程序语句对应的主题、动作和辅助参数,生成相应的自然语言描述语句;
根据语句主题重要度和语句类型重要度计算上述自然语言描述语句的权重值,并根据权重值从高到低进行排序,得到该源代码数据的自然语言描述。
2.如权利要求1所述的源代码段自然语言描述自动生成方法,其特征在于,所述方法还包括,对得到的该源代码数据的自然语言描述进行优化处理:
计算上述自然语言描述语句之间的相似度;
基于相似度对上述自然语言描述语句中的冗余信息进行删除。
3.如权利要求1所述的源代码段自然语言描述自动生成方法,其特征在于,所述预设的分类规则为:
定义标准程序运行格式包括三部分:对变量类型声明/赋值、对变量的方法调用和对变量的执行过程;将符合所述标准程序运行格式、缺少第一部分、缺少第三部分或者同时缺少第一部分和第三部分的程序语句,判定为直接语句;规定标准输出函数判定为特殊语句;其他语句均判定为间接语句。
4.如权利要求1所述的源代码段自然语言描述自动生成方法,其特征在于,生成自然语言描述语句包括:根据各程序语句对应的主题、动作和辅助参数,结合预设的自然语言模板生成相应的自然语言描述语句;其中,预设的自然语言模板为:动词主题介词辅助参数,若不存在辅助参数,忽略后两项。
5.如权利要求1所述的源代码段自然语言描述自动生成方法,其特征在于,所述自然语言描述语句的权重值为语句主题重要度和语句类型重要度之和。
6.如权利要求5所述的源代码段自然语言描述自动生成方法,其特征在于,所述语句主题重要度计算方法为:基于每个主题词语在所有自然语言描述语句中出现的频率,确定该主题词语的重要性;对于每个自然语言描述语句,将该语句中所有主题词语的重要性进行累加,得到该语句的主题重要度;
所述语句类型重要度根据所述自然语言描述语句所属类型得到,语句类型重要度满足:间接语句<直接语句<特殊语句。
7.如权利要求2所述的源代码段自然语言描述自动生成方法,其特征在于,基于相似度对上述自然语言描述语句中的冗余信息进行删除包括:
若两个语句相似度为1,删除其中任意一条语句;
若两个语句相似度大于0且小于1,对这两个语句中包含的词汇进行循环比对,将重复的词汇在其中一个语句中删除。
8.一种源代码段自然语言描述自动生成系统,其特征在于,包括:
预处理模块,用于接收源代码数据,并根据预设的分类规则对源代码数据进行划分,得到不同类型的程序语句;
内处理模块,用于解析所述程序语句,获取各程序语句对应的主题、动作和辅助参数,按照预设的自然语言模板生成相应的自然语言描述语句;
2