[发明专利]一种代码片段重要性的判断方法和装置有效
| 申请号: | 202011418126.2 | 申请日: | 2020-12-07 |
| 公开(公告)号: | CN112417852B | 公开(公告)日: | 2022-01-25 |
| 发明(设计)人: | 舒俊淮;陈湘萍;金舒原;郑子彬 | 申请(专利权)人: | 中山大学 |
| 主分类号: | G06F40/253 | 分类号: | G06F40/253;G06F40/216 |
| 代理公司: | 北京集佳知识产权代理有限公司 11227 | 代理人: | 苏云辉 |
| 地址: | 510275 *** | 国省代码: | 广东;44 |
| 权利要求书: | 查看更多 | 说明书: | 查看更多 |
| 摘要: | |||
| 搜索关键词: | 一种 代码 片段 重要性 判断 方法 装置 | ||
本发明公开了一种代码片段重要性的判断方法和装置,包括:通过预置的分类模型训练过程生成目标分类模型;当接收待注释代码片段时,提取所述待注释代码片段的第一特征向量;将所述第一特征向量输入到所述目标分类模型,输出对所述待注释代码片段的重要性判断结果。该方法能够高效地判断待注释代码的重要性,以便于软件开发与维护人员的注释行为规范化,使代码注释量保持在一个更为合适的范围。
技术领域
本发明涉及计算机技术领域,尤其涉及一种代码片段重要性的判断方法和装置。
背景技术
智能软件工程的研究方向包括软件仓库挖掘、程序代码理解、代码自动生成、注释自动生成等,其目的都是帮助软件开发人员提高开发、维护过程中的效率。近几年来,由于机器学习和深度学习技术的兴起,智能软件工程问题的相关研究人员开始探索用这些先进技术来解决相关研究问题的可能性,并得到了不少令人鼓舞的成果。例如基于信息检索和推荐系统技术帮助开发人员提高对开源软件仓库的利用率;基于机器学习的方法判别出代码中重要的词语以帮助其他任务对程序的正确理解;基于卷积神经网络的代码生成技术;等等。
代码注释的自动生成技术是智能软件工程研究领域一个热门的话题。代码注释可以帮助我们了解代码作者的意图和思路,对软件维护、代码重用和团队协作开发等都有重要作用。该技术的研究旨在对于一个给定的代码片段,由机器自动生成该代码片段的注释,以减少软件开发人员花在撰写代码注释上的时间,提高开发效率。借助机器学习和深度学习技术,研究人员把该问题转化成自然语言处理中的“翻译任务”来解决。通过使用自然语言处理中的序列到序列模型(即,输入一个文本序列,模型会输出一个文本序列),研究人员将代码语言“翻译”成自然语言,将得到的自然语言当成对应代码片段的注释。
但在现有的预测代码注释位置的技术中,只是单纯地将代码文本转化成特征向量来训练模型。这种做法在自然语言处理中是相当常见的。但这样做相当于把代码文本完全当成自然语言,只是利用了代码的文本信息,导致最后这种方法的效果并不那么理想。另外,这种方法对文本信息的利用也不够充分,它只是单纯地将单词转换成特征,没有考虑到文本的分布情况,可能会导致确定代码注释位置的准确性变低,无法给开发人员合理的建议,进而降低软件开发和维护人员的工作效率。
发明内容
本发明提供了一种代码片段重要性的判断方法和装置,解决了现有的预测代码注释位置的技术中仅局限于将代码文本当成无结构的纯文本,对多个维度的特征利用率较低所导致的确定代码注释位置的准确性变低,无法给开发人员合理的建议,进而降低软件开发与维护人员工作效率的技术问题。
本发明提供的一种代码片段重要性的判断方法,包括:
接收待注释代码片段;
提取所述待注释代码片段的第一特征向量;
将所述第一特征向量输入到所述目标分类模型,输出对所述待注释代码片段的重要性判断结果;
其中,所述目标分类模型通过预置的分类模型训练过程所生成。
可选地,所述分类模型训练过程包括:
从预置的软件仓库中获取已注释代码文件;
以函数为单位对所述已注释代码文件进行划分,生成多个训练代码片段;
为具有预设类型注释的所述训练代码片段设置第一预设标签;
为不具有预设类型注释的所述训练代码片段设置第二预设标签;
分别提取每个所述训练代码片段的第二特征向量;
采用多个所述第二特征向量训练预置的初始分类模型,得到目标分类模型。
可选地,所述第一特征向量包括语法特征向量、文本特征向量、结构特征向量和关系特征向量,所述提取所述待注释代码片段的第一特征向量的步骤,包括:
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于中山大学,未经中山大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202011418126.2/2.html,转载请声明来源钻瓜专利网。





