[发明专利]一种基于层次上下文的API推荐方法有效

专利信息
申请号: 201910503332.4 申请日: 2019-06-11
公开(公告)号: CN110297657B 公开(公告)日: 2023-07-21
发明(设计)人: 李必信;谢仁松;王璐璐;孔祥龙;廖力;周颖 申请(专利权)人: 东南大学
主分类号: G06F8/70 分类号: G06F8/70
代理公司: 南京众联专利代理有限公司 32206 代理人: 杜静静
地址: 210096 *** 国省代码: 江苏;32
权利要求书: 查看更多 说明书: 查看更多
摘要:
搜索关键词: 一种 基于 层次 上下文 api 推荐 方法
【权利要求书】:

1.一种基于层次上下文的API推荐方法,其特征在于,所述方法包括以下步骤:

步骤1)分析调用关系,通过静态分析java程序字节码生成调用关系图和获取项目信息,其中调用关系图的节点表示API,用JVM中间语言表示,边表示API之间的调用关系;项目信息包括项目名称,第三方lib库名称;

步骤2)生成层次上下文信息,去除与API推荐无关的两种调用关系,并删除JDKAPI之间的调用关系来将调用关系图转化为层次上下文信息;

步骤3)生成API序列库,通过遍历层次上下文来抽取API序列,每个API序列体现了API的一种使用方法;

步骤4)抽取推荐点的上下文信息,包括推荐点API序列和推荐点类型,推荐点类型主要指JDK的类型;

步骤5)基于层次上下文推断模型来计算API推荐列表,根据推荐点类型及其上下文信息,利用基于层次上下文推断模型的方法找出候选API序列集合,最终得到推荐API列表;

所述步骤2)中,生成层次上下文方法的具体流程为:

a)遍历图中各个子图,去除构成环的多余的边,将调用关系图转化为多个调用关系树,这些树的不同层次构成了推荐需要的层次上下文信息;

b)利用项目package信息和第三方库信息,过滤掉APIj之间的调用关系,保留APIm调用APIm、APIm调用APIj两类关系信息,这些层次上下文将用于后续的API序列库的构建;

所述步骤3)中生成API序列库的方法的具体流程为:

对于步骤2)生成的层次上下文信息,它的每个节点是APIm或者APIj,且APIj都是叶子节点,以根节点为出发点,采用层次遍历的方法依次获得每个APIm子树的叶子节点序列,每个APIm的叶子节点序列就是一个APIj序列,APIm的个数等同于APIj序列的个数,所有的APIj序列构成API序列库,

所述步骤5)中基于层次上下文推断模型的计算方法的具体流程为:

对于两个API序列A和B:

(a)利用1981年Smith Waterman提出的局部字符串比较算法,计算出序列A和B中任意一对API的相似度值,其中API对设为ai,bj,ai是序列A中的一个APIj,i是ai在序列A中的序号;bj是序列B中的一个APIj,j是bj在序列B中的序号,API对相似度记作simi,j,根据预先设置的相似度阈值σ得到新的API对集合,这个集合中的API对相似度都大于阈值σ;

(b)根据API对集合构造API匹配关系图,匹配关系图是一个DAG图即有向无环图,图的结点是(a)步骤中的API对,同时设置一个虚拟的“开始”结点,用于后续的带权最长路径的计算,该结点与图中所有入度为0的节点相连,图的弧表示API对在匹配序列中的先后次序关系,弧的权重等于弧头的相似度值;

(c)根据API匹配关系图的最长路径计算序列相似度,计算匹配关系图的最长带权路径和最长带权路径长度,最终的API序列相似度为带权最长路径的平均相似度,计算公式如下:

(d)生成候选API序列集合和API推荐列表,根据(a)~(c)步骤计算推荐点上下文和API序列库中API序列的相似度值,取top-k的序列为候选API序列集合,再结合推荐点类型从候选API序列集合对推荐点API进行排序,选择top-kAPI作为最终API推荐列表。

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

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

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

×

专利文献下载

说明:

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

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

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

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

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

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

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

钻瓜专利网在线咨询

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

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