[发明专利]一种自动检测注释和代码一致性的方法及其系统有效
申请号: | 201711456698.8 | 申请日: | 2017-12-28 |
公开(公告)号: | CN108170468B | 公开(公告)日: | 2021-04-20 |
发明(设计)人: | 刘志勇;陈湘萍;林格 | 申请(专利权)人: | 中山大学 |
主分类号: | G06F8/75 | 分类号: | G06F8/75;G06F11/36 |
代理公司: | 暂无信息 | 代理人: | 暂无信息 |
地址: | 510006 广东*** | 国省代码: | 广东;44 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 自动检测 注释 代码 一致性 方法 及其 系统 | ||
1.一种自动检测注释和代码一致性的方法,其特征在于,所述方法包括:
提取海量代码,进行分块处理,并对变化前后的代码块一一对应,获得代码数据集;
获取代码数据集,进行特征提取处理,获得代码数据集中的代码文本特征、代码片段的变化特征、注释特征、注释与代码关联特征的特征向量集;
对所述特征向量集进行分类处理,获得的分类结果,即为注释和代码的检测结果;
其中,所述的注释与代码关联特征,即代码的语义和注释之间的相似度,其计算两者之间的相似度之差的方法采用基于Skip-gram的代码和注释语义融合的词向量模型,作为注释和代码单词的词向量模型,根据词向量模型进行计算注释和代码的相似度:
对两个单词的相似度为两个单词的词向量的余弦距离,计算公式为:
sim(w1,w2)=cos(w1,w2);
单词与句子的相似度为单词与句子中的单词的最大相似度,计算公式为:
句子与句子的相似度计算公式为:
其中,n为S1中的单词个数;w为单词;S为句子。
2.一种自动检测注释和代码一致性的系统,其特征在于,所述系统包括:
代码分块模块,用于提取海量代码,进行分块处理,获得代码数据集;
特征提取模块,用于对代码数据集进行特征提取处理,获得代码数据集中的代码文本特征、代码片段的变化特征、注释特征、注释与代码关联特征的特征向量集;
分类模块,用于对特征向量集进行分类处理;
其中,所述特征提取模块还包括计算单元用于计算代码的语义和注释的相似度之差;
其中,所述的注释与代码关联特征,即代码的语义和注释之间的相似度,其计算两者之间的相似度之差的方法采用基于Skip-gram的代码和注释语义融合的词向量模型,作为注释和代码单词的词向量模型,根据词向量模型进行计算注释和代码的相似度:
对两个单词的相似度为两个单词的词向量的余弦距离,计算公式为:
sim(w1,w2)=cos(w1,w2);
单词与句子的相似度为单词与句子中的单词的最大相似度,计算公式为:
句子与句子的相似度计算公式为:
其中,n为S1中的单词个数;w为单词;S为句子。
3.根据权利要求2所述的一种自动检测注释和代码一致性的系统,其特征在于,所述代码分块模块还包括对比单元,用于对变化前后的代码块进行一一对应处理。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于中山大学,未经中山大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201711456698.8/1.html,转载请声明来源钻瓜专利网。