[发明专利]一种基于功能相似度匹配的代码搜索方法有效

专利信息
申请号: 201910828507.9 申请日: 2019-09-03
公开(公告)号: CN110716749B 公开(公告)日: 2023-08-04
发明(设计)人: 李必信;杜成杰;孔祥龙;王璐璐;廖力;周颖 申请(专利权)人: 东南大学
主分类号: G06F8/75 分类号: G06F8/75;G06F16/332;G06F16/38
代理公司: 南京众联专利代理有限公司 32206 代理人: 杜静静
地址: 210096 *** 国省代码: 江苏;32
权利要求书: 查看更多 说明书: 查看更多
摘要:
搜索关键词: 一种 基于 功能 相似 匹配 代码 搜索 方法
【权利要求书】:

1.一种基于功能相似度匹配的代码搜索方法,其特征在于,该方法包括如下步骤:

步骤1)对代码库中的源码,以方法为粒度切分,进行简单特征提取,提取每个方法的方法名和方法体两个特征,分别表示方法名和方法体中出现的特征关键字;

步骤2)分析项目源代码,挖掘代码片段的功能信息,提取功能注释和功能API两个特征;

步骤3)输入自然语言查询进行搜索时,为不同的代码特征分配不同的权重,采用余弦相似度算法,分别计算查询语句和代码片段的原始相似度和功能相似度;

步骤4)为原始相似度和功能相似度分配权重并计算最后的总的相似度得分,根据得分高低对搜索结果进行排序返回给用户;

所述步骤2)中提取功能注释的具体流程为:

(a)解析源代码的抽象语法树,提取类注释和方法注释;

(b)对注释中与功能无关的内容进行过滤,过滤掉注释中与参数及返回值介绍相关的内容、与创建者或作者相关的内容、包含网址或者日期相关的内容、描述版权信息的内容,将剩余的注释信息视为功能信息;

(c)最后得到的方法的功能注释包含了类注释和方法注释两个模块;

所述步骤2)中提取功能API的具体流程为:

(a)提取当前方法中的API调用列表;

(b)过滤掉其中典型的通用类库的API,包括JDK、Log4j;

(c)将API列表中剩下的API视为功能API,提取对应的类名和方法名;

所述步骤3)中,首先采用最常用的相似度计算模型“向量空间模型”将代码和查询分别表示为向量,然后采用余弦相似度算法分别计算原始相似度和功能相似度:

(a)原始相似度的计算的具体步骤为:

计算查询和方法名的相似度:

计算查询和方法体的相似度:

计算原始相似度得分Score(original)=α·Sim(query,name)+(1-α)·Sim(query,body);

其中V(query)表示查询语句向量,V(name)表示方法名向量,V(body)表示方法体向量,α和(1-α)分别表示Sim(query,name)和Sim(query,body)的权重;

(b)功能相似度的计算的具体步骤为:

计算查询和注释的相似度Sim(query,comment):

方法的功能注释包含两个模块:方法注释和类注释,需要分别计算;

Sim(query,comment)=

βSim(query,clascom)+(1-β)Sim(query,methcom);

计算查询和API信息的相似度:

计算功能相似度得分Score(function)=γ·Sim(query,comment)+(1-γ)·Sim(query,API);

其中V(query)表示查询语句向量,V(clascom)表示类注释向量,V(methcom)表示方法注释向量,V(API)表示API向量,β表示Sim(query,clascom)的权重,(1-β)表示Sim(query,methcom)的权重,γ表示Sim(query,comment)的权重,(1-γ)表示Sim(query,API)的权重;

所述步骤4)中计算总的相似度得分方法为:

公式:Score=λ·Score(original)+(1-λ)·Score(function);

其中λ、(1-λ)分别表示Score(original)和Score(function)的权重。

下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。

该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于东南大学,未经东南大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服

本文链接:http://www.vipzhuanli.com/pat/books/201910828507.9/1.html,转载请声明来源钻瓜专利网。

×

专利文献下载

说明:

1、专利原文基于中国国家知识产权局专利说明书;

2、支持发明专利 、实用新型专利、外观设计专利(升级中);

3、专利数据每周两次同步更新,支持Adobe PDF格式;

4、内容包括专利技术的结构示意图流程工艺图技术构造图

5、已全新升级为极速版,下载速度显著提升!欢迎使用!

请您登陆后,进行下载,点击【登陆】 【注册】

关于我们 寻求报道 投稿须知 广告合作 版权声明 网站地图 友情链接 企业标识 联系我们

钻瓜专利网在线咨询

周一至周五 9:00-18:00

咨询在线客服咨询在线客服
tel code back_top