[发明专利]一种基于对象分类和自适应子图匹配的API推荐方法在审

专利信息
申请号: 201711188298.3 申请日: 2017-11-21
公开(公告)号: CN109814855A 公开(公告)日: 2019-05-28
发明(设计)人: 周毓明;贾倩倩 申请(专利权)人: 南京大学
主分类号: G06F8/33 分类号: G06F8/33;G06F8/35
代理公司: 暂无信息 代理人: 暂无信息
地址: 210093 江苏省南京市*** 国省代码: 江苏;32
权利要求书: 查看更多 说明书: 查看更多
摘要:
搜索关键词: 概率 对象分类 方法使用 模式串 自适应 图库 匹配 集合 方法推荐 使用模式 搜索匹配 语言模型 字母排序 剪枝 调用 排序 抽取
【权利要求书】:

1.一种基于对象分类和自适应子图匹配的API推荐方法,首先从GitHub上下载若干项目源代码,使用抽象语法树从方法级别进行语法分析,得到若干API使用模式串;针对API模式串中的每一个API方法,依据其所属的类进行分组,由此便可得到类库中每个类的API方法使用模式串;根据抽取出的属于单个类的API方法模式串建立图库GDB(GraphDataBase),当开发者开发过程中需要在位置L处进行API方法推荐时,则会从位置L的上文环境中抽取与位置L处待推荐方法同属一个类库的API方法串,建立子图SG(SubGraph),再使用基于剪枝的自适应子图匹配算法(Pruning-Based Adaptive Subgraph MatchingAlgorithm)在图库GDB中搜索最佳可能匹配结果,从而生成推荐方法列表,呈现给开发人员。

2.根据权利要求1中所述的一种基于对象分类和自适应子图匹配的API推荐方法,其特征是包括以下步骤:

1)根据从GitHub中下载得到的源代码文件,建立抽象语法树AST(Abstract SyntaxTree),通过语法分析得到方法级别的API方法调用模式串;

2)针对API方法调用模式串中的每一个调用方法,根据其所属的类库进行分组,得到类库中每个类中的API方法使用模式串;

3)根据步骤2)中得到的各个类库的API模式串,进行统计学习,建立图库GDB;

4)当开发人员需要在位置L处进行API方法推荐时,按照步骤1)和步骤2)中所描述的方法从位置L处的上文代码中抽取出与待推荐位置的API方法属于相同类的API方法使用模式串,生成子图SG;

5)按照Pruning-based ASMA模型所描述,首先使用剪枝法对步骤4)中生成的待匹配子图SG进行剪枝,得到子图集合SGs,对于子图集合中的任一子图,先计算其概率Prob1,再使用该子图在步骤3)中建立的图库GDB中进行搜索匹配,得到推荐的结果以及对应的概率Prob2,将Prob1以及Prob2相结合,得到每个结果所对应的概率;

6)通过步骤5)即可得到的推荐API方法以及每个方法对应的概率,将概率从高至低依次排序,得到最终的API方法序列,呈现给开发人员。

3.根据权利要求2中所述的一种基于对象分类和自适应子图匹配的API推荐方法,其特征是将步骤1)中到的API方法使用模式串,根据其中API方法所属的类库进行分组,得到类库中每个类中的API方法使用模式串。其主要步骤是:先从GitHub上下载项目源代码,对于其中的每一个源代码文件,分别建立抽象语法树(Abstract Syntax Tree,简记AST),进行方法级别的语法分析,得到方法级别的API方法使用模式串,根据API方法使用模式串中的每一个API方法所属的类进行分组,得到属于每一个类的API方法使用模式串。最终使用上述步骤得到的分类后的API方法使用模式串进行统计学习,建立图库GDB。

4.根据权利要求2所述的一种基于对象分类和自适应子图匹配的API推荐方法,其特征是基于剪枝的自适应子图匹配算法Pruning-Based ASMA(Pruning-Based AdaptiveSubgraph Matching Algorithm)。当开发者开发过程中,需要在位置L处进行API方法推荐时,首先会采用同上述步骤2)相同的方法,建立抽象语法树进行语法分析,得到位置L上文中已有API调用方法串,再采取步骤3)中所述的方法进行过滤,得到与位置L处所属类库一致的API方法串,建立子图,Pruning-Based ASMA会自动地对当前子图SG进行剪枝操作,得到若干待匹配的子图集合SGs<SubGraph1,SubGraph2,SubGraph3,……>,针对子图集合中的每个子图(以SubGraph1为例),先计算子图SubGraph1对应的概率Prob1,,再使用SubGraph1在图库GDB中搜索最佳匹配图,从而得到可能的推荐结果<Res1,Res2,……>,以及对应的概率为<Prob2_1,Prob2_2,……>,再将推荐结果的概率与用于搜索匹配的子图概率相结合,得到最终推荐结果<Res1,Res2,……>,及其相应的概率为<Prob1*Prob2_1,Prob1*Prob2_2,……>。按照此方法,依次计算子图集合中其余子图所得到的结果及概率,将概率按照从高至低的顺序进行排序,便可得到最终的推荐结果列表。

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

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

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

×

专利文献下载

说明:

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

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

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

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

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

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

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

钻瓜专利网在线咨询

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

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