[发明专利]一种代码摘要自动生成方法及系统在审
申请号: | 202110327114.7 | 申请日: | 2021-03-26 |
公开(公告)号: | CN113064633A | 公开(公告)日: | 2021-07-02 |
发明(设计)人: | 吕晨;高学剑;王潇;吴琼;姜雪;李季;吕蕾;刘弘 | 申请(专利权)人: | 山东师范大学 |
主分类号: | G06F8/72 | 分类号: | G06F8/72;G06F8/41;G06N3/04;G06N3/08 |
代理公司: | 济南圣达知识产权代理有限公司 37221 | 代理人: | 祖之强 |
地址: | 250014 山*** | 国省代码: | 山东;37 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 代码 摘要 自动 生成 方法 系统 | ||
本公开提供了一种代码摘要自动生成方法及系统,获取待处理的代码;对获取的代码进行预处理,得到抽象语法树聚合向量和API调用依赖关系图聚合向量;将抽象语法树聚合向量和API调用依赖关系图聚合向量集成到单个表示中,生成多视角融合向量;将多视角融合向量输入到预设神经网络模型中,得到代码对应的自然语言摘要;本公开充分提取了代码语义信息与语法信息,对代码的语义结构信息进行创新性表达,通过分析代码的API调用依赖关系对代码语义结构进行图表示,增强了代码语义结构表达能力。
技术领域
本公开涉及代码摘要生成技术领域,特别涉及一种代码摘要自动生成方法及系统。
背景技术
本部分的陈述仅仅是提供了与本公开相关的背景技术,并不必然构成现有技术。
与自然语言不同,代码本身不易理解且具有较强的抽象性。大多数程序开发者会面临语义鸿沟现象,如何分析代码本身的规律,突破语义鸿沟问题以帮助程序开发者理解代码已成为现代软件工程的热点问题。在此基础上,代码摘要自动生成应运而生。
代码摘要自动生成旨在为代码片段生成相应的自然语言摘要。代码是一种结构化语言,具有特殊的语义与语法结构。因此,大多数代码摘要自动生成方法的研究角度是对语义与语法结构进行分析,以建立与自然语言结构的联系。伴随着人工智能与深度学习的兴起,对程序结构进行图嵌入技术处理并采用自动化训练的方式可生成优秀的自然语言摘要。
然而,发明人发现,代码是语义与语法的混合结构,现有大多数代码摘要自动生成方法只对单一程序结构进行处理,造成程序结构探索不够全面;此外,对代码语义结构的表达也不够深入,难以体现代码方法之间的调用依赖关系。
发明内容
为了解决现有技术的不足,本公开提供了一种代码摘要自动生成方法及系统,对代码的语义结构信息进行创新性表达,通过分析代码的API调用依赖关系对代码语义结构进行图表示,增强了代码语义结构表达能力。
为了实现上述目的,本公开采用如下技术方案:
本公开第一方面提供了一种代码摘要自动生成方法。
一种代码摘要自动生成方法,包括以下过程:
获取待处理的代码;
对获取的代码进行预处理,得到抽象语法树聚合向量和API调用依赖关系图聚合向量;
将抽象语法树聚合向量和API调用依赖关系图聚合向量集成到单个表示中,生成多视角融合向量;
将多视角融合向量输入到预设神经网络模型中,得到代码对应的自然语言摘要。
进一步的,提取代码的语法信息,生成相应的抽象语法树;
对抽象语法树进行深度优先遍历,遍历并保存每个节点的信息以及与边的关系;
将抽象语法树中每个节点进行初始化特征表示,得到每个节点的初始化节点向量,将抽象语法树的每个节点的初始化节点向量合并,形成抽象语法树初始化向量矩阵;
根据抽象语法树的初始化向量矩阵、邻接矩阵和度矩阵,结合图卷积网络,得到抽象语法树聚合向量矩阵。
进一步的,提取代码的语法信息,生成相应的抽象语法树,提取代码中定义的函数,识别函数调用关系,得到结点信息、边的关系和标签,进而得到API调用依赖关系图;
将得到的API调用依赖关系图进行初始化特征表示;
将每个节点表示合并为API调用依赖关系图初始化向量矩阵;
根据API调用依赖关系图初始化向量矩阵、邻接矩阵和度矩阵,结合图卷积网络,得到API调用依赖关系图聚合向量。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于山东师范大学,未经山东师范大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202110327114.7/2.html,转载请声明来源钻瓜专利网。