CN114416159A - 基于信息增强调用序列的api推荐方法及装置 - Google Patents

基于信息增强调用序列的api推荐方法及装置 Download PDF

Info

Publication number
CN114416159A
CN114416159A CN202210335647.4A CN202210335647A CN114416159A CN 114416159 A CN114416159 A CN 114416159A CN 202210335647 A CN202210335647 A CN 202210335647A CN 114416159 A CN114416159 A CN 114416159A
Authority
CN
China
Prior art keywords
api
sequence
vector
representation
original
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN202210335647.4A
Other languages
English (en)
Other versions
CN114416159B (zh
Inventor
高翠芸
陈雨佳
王轩
廖清
刘川意
韩培义
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Shenzhen Graduate School Harbin Institute of Technology
Original Assignee
Shenzhen Graduate School Harbin Institute of Technology
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Shenzhen Graduate School Harbin Institute of Technology filed Critical Shenzhen Graduate School Harbin Institute of Technology
Priority to CN202210335647.4A priority Critical patent/CN114416159B/zh
Publication of CN114416159A publication Critical patent/CN114416159A/zh
Application granted granted Critical
Publication of CN114416159B publication Critical patent/CN114416159B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/70Software maintenance or management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • Computational Linguistics (AREA)
  • Biophysics (AREA)
  • Evolutionary Computation (AREA)
  • General Health & Medical Sciences (AREA)
  • Molecular Biology (AREA)
  • Computing Systems (AREA)
  • Biomedical Technology (AREA)
  • Artificial Intelligence (AREA)
  • Mathematical Physics (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Health & Medical Sciences (AREA)
  • Stored Programmes (AREA)

Abstract

本发明公开了一种基于信息增强调用序列的API推荐方法及装置,方法包括解析源代码提取得到原始API调用序列,根据原始API调用序列获取用户自定义API和非自定义API的对应关系,得到增强API调用序列;将原始API调用序列和增强API调用序列分别放入神经网络嵌入层,得到原始序列表示向量和第一增强序列表示向量,将第一增强序列表示向量输入神经网络第一编码器,得到第二增强序列表示向量,并和原始序列表示向量进行信息融合得到API新向量表示;将API新向量表示输入神经网络第二编码器中,得到API序列向量并输入相似度计算模块,得到每一个候选API的概率。本发明可解决原始API调用序列信息不足和用户自定义API携带信息过少影响推荐准确率的问题。

Description

基于信息增强调用序列的API推荐方法及装置
技术领域
本发明属于数据处理技术领域,具体涉及一种基于信息增强调用序列的API推荐方法及装置。
背景技术
在软件开发过程中,一种常见的做法是重用外部库提供的应用程序编程接口(API),而不是从头开始重新实现它们。开发人员经常需要找出在当前编程环境中应该使用哪些API来实现他们的目的。然而,要熟悉大量外部库的所有API并不容易。在这种情况下,开发人员会通过查阅API官方文档、查询问答网站、使用搜索引擎等方式来正确使用API。但是,这些方式可能会非常耗时而且容易出错,因为官方文档通常只报告API描述,而没有提供琐碎的示例、问答示例可能不完整且质量差,通用的搜索引擎出现质量不高、无关甚至是错误的结果。
近些年,推荐技术的研究引起了越来越多的关注。为了降低开发人员熟悉API的时间成本,正确有效的使用API,提高编程效率,很多研究人员将API学习的问题与推荐技术结合,提出了API推荐方法。更具体的说,API推荐技术旨在根据前面的部分代码信息,在当前编程位置自动推荐正确的API调用。
为了准确进行API推荐,前人使用频繁模式挖掘或集群技术从大量实际项目中提取API使用模式或者使用API调用序列的概率统计模型来预测API使用模式,但是这些方法往往存在高冗余问题,并产生不准确的API使用模式。随着深度学习技术的发展,有人提出了采用上下文感知的协同过滤推荐系统,根据相似的项目和方法进行API推荐,但是这种方法只能捕获精确匹配,无法利用API调用和项目的高阶连接性,导致API推荐的准确率不高。又有人提出了基于图的协同过滤,构建方法、项目和目标API的集成图,有效利用了图上的高阶连通性,但是这个方式忽视了API之间很重要的顺序调用关系,开发人员确定下一个要调用的API,很大程度上是基于之前调用的API的逻辑关系。而且,在实际的项目开发过程中,开发人员经常会调用自己写好的特定用于本项目的API,但是,已经提出的这些方法,都将关注点集中在官方API库、流行的第三方API库里的API,却忽略了用户自定义的API,降低API推荐的准确率。
发明内容
本发明针对上述问题,提供了一种基于信息增强调用序列的API推荐方法及装置,用于解决原始API调用序列信息不足和用户自定义API携带信息过少影响推荐准确率的问题,使软件开发过程中API推荐更准确。
本发明的第一方面,提供了一种基于信息增强调用序列的API推荐方法,方法包括如下步骤:
数据预处理:解析源代码提取得到原始API调用序列,根据所述原始API调用序列获取用户自定义API和非自定义API的对应关系,得到增强API调用序列;
API调用序列表示学习:将所述原始API调用序列和所述增强API调用序列分别放入神经网络嵌入层,得到原始序列表示向量和第一增强序列表示向量,将所述第一增强序列表示向量输入神经网络第一编码器,得到第二增强序列表示向量,将所述第二增强序列表示向量和所述原始序列表示向量进行信息融合得到API新向量表示;
API使用预测:将所述API新向量表示输入神经网络第二编码器中,得到API序列向量,将所述API序列向量输入相似度计算模块,得到每一个候选API的相似性得分,选出相似性得分从高到低序列中的前N个API即为推荐的API。
本发明的进一步技术方案是:所述数据预处理中,所述用户自定义API为不在官方库或第三方库的API,根据所述用户自定义API,提取实现所述用户自定义API功能的官方库或第三方库的API序列,并将提取的所述API序列代替所述原始API调用序列中的用户自定义API,得到增强API调用序列。
本发明的进一步技术方案是:所述API调用序列表示学习中,所述信息融合包括门控融合,所述门控融合是对所述第二增强序列表示向量中的自定义API表示向量和所述原始序列表示向量中的自定义API表示向量进行融合,通过图注意力机制根据所述用户自定义API和非自定义API的对应关系,得到所述第二增强序列表示向量中的自定义API表示向量,将所述第二增强序列表示向量中的自定义API表示向量与所述原始序列表示向量中的自定义API表示向量通过更新门进行信息融合,得到自定义API表示输出向量。
本发明的进一步技术方案是:所述API调用序列表示学习中,所述信息融合还包括线性融合,所述线性融合是将所述第二增强序列表示向量中的非自定义API表示向量和所述原始序列表示向量中的非自定义API表示向量拼接后进行线性变换,得到信息融合后的非自定义API表示输出向量,将所述非自定义API表示输出向量与所述自定义API表示输出向量结合得到所述API新向量表示。
本发明的第二方面,提供了一种基于信息增强调用序列的API推荐装置,装置包括:
数据预处理模块,用于解析源代码提取得到原始API调用序列,根据所述原始API调用序列获取用户自定义API和非自定义API的对应关系,得到增强API调用序列;
API调用序列表示学习模块,将所述原始API调用序列和所述增强API调用序列分别放入神经网络嵌入层,得到原始序列表示向量和第一增强序列表示向量,将所述第一增强序列表示向量输入神经网络第一编码器,得到第二增强序列表示向量,将所述第二增强序列表示向量和所述原始序列表示向量进行信息融合得到API新向量表示;
API使用预测模块,用于将所述API新向量表示输入神经网络第二编码器中,得到API序列向量,将所述API序列向量输入相似度计算模块,得到每一个候选API的相似性得分,选出相似性得分从高到低序列中的前N个API即为推荐的API。
本发明的进一步技术方案是:所述数据预处理模块中,所述用户自定义API为不在官方库或第三方库的API,根据所述用户自定义API,提取实现所述用户自定义API功能的官方库或第三方库的API序列,并将提取的所述API序列代替所述原始API调用序列中的用户自定义API,得到增强API调用序列。
本发明的进一步技术方案是:所述API调用序列表示学习模块中,所述信息融合包括门控融合,所述门控融合是对所述第二增强序列表示向量中的自定义API表示向量和所述原始序列表示向量中的自定义API表示向量进行融合,通过图注意力机制根据所述用户自定义API和非自定义API的对应关系,得到所述第二增强序列表示向量中的自定义API表示向量,将所述第二增强序列表示向量中的自定义API表示向量与所述原始序列表示向量中的自定义API表示向量通过更新门进行信息融合,得到自定义API表示输出向量。
本发明的进一步技术方案是:所述API调用序列表示学习模块中,所述信息融合还包括线性融合,所述线性融合是将所述第二增强序列表示向量中的非自定义API表示向量和所述原始序列表示向量中的非自定义API表示向量拼接后进行线性变换,得到信息融合后的非自定义API表示输出向量,将所述非自定义API表示输出向量与所述自定义API表示输出向量结合得到所述API新向量表示。
本发明提出了一种基于信息增强调用序列的API推荐方法及装置,通过设计一种将代码段解析成原始API调用序列和增强API调用序列的方法,来弥补原始序列信息不足和用户自定义API携带信息过少影响推荐准确率的问题;设计了一种融合原始API调用序列和增强API调用序列信息来学习序列表示的深度学习网络,该深度学习网络通过图注意力机制,获取增强调用序列中的替换API的信息,再通过门控机制,与原始API调用序列中对应的用户自定义API进行信息融合,这样原始调用序列中的用户自定义API的信息就得到了更新;再通过线性变换机制,将两条序列里的非用户自定义API的信息进行融合,这样原始API调用序列中的非用户自定义API的信息就得到了更新;经过两次更新操作,原始序列中的API新向量表示已经全部完成融合了增强序列的信息,使得学习到的API新向量表示更加准确。
附图说明
图1是本发明实施例中基于信息增强调用序列的API推荐方法流程示意图;
图2是本发明实施例中图注意力机制示意图;
图3是本发明实施例中基于信息增强调用序列的API推荐装置结构示意图。
具体实施方式
为进一步对本发明的技术方案作详细说明,本实施例在以本发明技术方案为前提下进行实施,给出了详细的实施方式和具体的步骤。
基于本发明的实施例1
实施例1提供了基于信息增强调用序列的API推荐方法,如图1所示,方法包括如下步骤:
数据预处理:解析源代码提取得到原始API调用序列,根据原始API调用序列获取用户自定义API和非自定义API的对应关系,得到增强API调用序列;
具体实施过程中,数据预处理部分用于解析源代码,获取神经网络需要的三个输入,原始API调用序列、原始API调用序列获取用户自定义API和实现功能的底层非自定义API的对应关系以及增强API调用序列,其中,使用静态分析工具Eclipse JDT解析源代码,识别出源代码中的函数体,将函数体中的API调用序列作为原始API调用序列,将API表示为s,则原始API调用序列为
Figure RE-249260DEST_PATH_IMAGE001
,其中n表示为神经网络能处理的最大序列长度。如果序列的长度小于n,就重复的在序列的左方添加填充值,直到长度为n;如果序列的长度大于n,则只考虑最右的n的API,因为离要预测的API越近,影响程度越大。
进一步的,数据预处理中,用户自定义API为不在官方库或第三方库的API,根据用户自定义API,提取实现用户自定义API功能的官方库或第三方库的API序列,并将提取的API序列代替原始API调用序列中的用户自定义API,得到增强API调用序列。
具体实施过程中,分析获得的原始API调用序列,对于每个API,若该API不在官方库里或者流行的第三方库里,则认为其是用户自定义API,记为u。根据源代码中用户自定义API的代码,提取实现其的底层官方API或流行第三方库的API序列,将对应关系记为
Figure RE-459356DEST_PATH_IMAGE002
。可以根据识别出的用户自定义API,修改序列表示为
Figure RE-854565DEST_PATH_IMAGE003
。然后,将原始序列中的用户自定义API替换为其底层实现API序列,则原始API调用序列就变为增强API调用序列
Figure RE-668937DEST_PATH_IMAGE004
API调用序列表示学习:将原始API调用序列和增强API调用序列分别放入神经网络嵌入层,得到原始序列表示向量和第一增强序列表示向量,将第一增强序列表示向量输入神经网络第一编码器,得到第二增强序列表示向量,将第二增强序列表示向量和原始序列表示向量进行信息融合得到API新向量表示;
具体实施过程中,API调用序列表示学习部分首先将原始API调用序列
Figure RE-491400DEST_PATH_IMAGE005
和增强API调用序列
Figure RE-696116DEST_PATH_IMAGE006
分别经过神经网络嵌入层得到原始序列表示向量和第一增强序列表示向量,再将第一增强序列表示向量经过Transformer编码器,得到第二增强序列表示向量。然后将第二增强序列表示向量与原始序列表示向量进行信息融合。
进一步的,API调用序列表示学习中,信息融合包括门控融合,门控融合是对第二增强序列表示向量中的自定义API表示向量和原始序列表示向量中的自定义API表示向量进行融合,通过图注意力机制根据用户自定义API和非自定义API的对应关系,得到第二增强序列表示向量中的自定义API表示向量,将第二增强序列表示向量中的自定义API表示向量与原始序列表示向量中的自定义API表示向量通过更新门进行信息融合,得到自定义API表示输出向量。
具体实施过程中,信息融合结构主要分为两个部分,门控融合和线性融合。门控融合部分首先通过图注意力机制按照对应关系
Figure RE-895016DEST_PATH_IMAGE007
,得到第二增强序列表示向量中的自定义API表示向量,再与原始序列表示向量中的自定义API表示向量通过更新门进行信息融合,门控融合机制的公式如下:
Figure RE-563895DEST_PATH_IMAGE008
Figure RE-494942DEST_PATH_IMAGE009
其中,
Figure RE-249271DEST_PATH_IMAGE010
表示非线性激活函数sigmoid,x表示第二增强序列表示向量中的自定义API表示向量,
Figure RE-986283DEST_PATH_IMAGE011
表示原始序列表示向量中的自定义API表示向量,
Figure RE-447351DEST_PATH_IMAGE012
Figure RE-877196DEST_PATH_IMAGE013
分别表示x、y线性变换中的权重矩阵,综合考虑两种编码信息得到更新门z参数,out输出向量即为自定义API表示输出向量。
进一步的,图注意力机制如图2所示,公式如下:
Figure RE-118821DEST_PATH_IMAGE014
Figure RE-393945DEST_PATH_IMAGE015
Figure RE-DEST_PATH_IMAGE017A
其中,节点j是节点i的邻居,使用Attention机制计算节点j对于节点i的重要性,得到重要性分数
Figure RE-473634DEST_PATH_IMAGE018
。其中,
Figure RE-746483DEST_PATH_IMAGE019
表示节点i经过线性变换后的表示,
Figure RE-475405DEST_PATH_IMAGE020
表示节点j经过线性变换后的表示,d表示
Figure RE-554219DEST_PATH_IMAGE019
的维度。最后使用了softmax对中心节点的邻居节点做了归一化,得到
Figure 3
表示重要性系数,最终通过对输入特征的加权得到输出特征,其中
Figure 4
表示节点i的所有邻居。
进一步的,API调用序列表示学习中,信息融合还包括线性融合,线性融合是将第二增强序列表示向量中的非自定义API表示向量和原始序列表示向量中的非自定义API表示向量拼接后进行线性变换,得到信息融合后的非自定义API表示输出向量,将非自定义API表示输出向量与自定义API表示输出向量结合得到API新向量表示。
具体实施过程中,线性融合部分主要是融合第二增强序列表示向量中的非自定义API表示向量和原始序列表示向量中的非自定义API表示向量。将两种表示向量拼接到一起,再通过线性变换,得到信息融合后的非自定义API表示输出向量,公式如下:
Figure RE-712165DEST_PATH_IMAGE023
其中,
Figure RE-594671DEST_PATH_IMAGE024
表示原始序列表示向量中的非自定义API表示向量,
Figure RE-884838DEST_PATH_IMAGE025
表示第二增强序列表示向量中的非自定义API表示向量,最终得到融合结果非自定义API表示输出向量
Figure RE-827386DEST_PATH_IMAGE026
API使用预测:将所述API新向量表示输入神经网络第二编码器中,得到API序列向量,将所述API序列向量输入相似度计算模块,得到每一个候选API的相似性得分,选出相似性得分最高的N个API即为推荐的API。
具体实施过程中,API使用预测部分,经过信息融合后,得到API新向量表示,再将其放入Transformer编码器中,得到最终的API序列向量,再通过一个相似度计算模块将得到的API序列向量与候选API集作匹配,选出相似性得分最高的N个API推荐给开发人员,其中候选API集为源代码数据集中的所有API。
具体的,相似度计算模块使用内积作为相似函数,得到相似性分数:
Figure RE-265321DEST_PATH_IMAGE027
其中,
Figure RE-889200DEST_PATH_IMAGE028
表示最终的API序列向量,
Figure RE-DEST_PATH_IMAGE029
表示候选集里的API向量,g(s,a)表示得到的相似性分数。
基于本发明的实施例2
本实施例描述根据本公开实施例1的方法对应的装置,一种基于信息增强调用序列的API推荐装置,装置100包括:数据预处理模块101,用于解析源代码提取得到原始API调用序列,根据所述原始API调用序列获取用户自定义API和实现相同功能的底层非自定义API的对应关系,得到增强API调用序列;API调用序列表示学习模块102,将所述原始API调用序列和所述增强API调用序列分别放入神经网络嵌入层,得到原始序列表示向量和第一增强序列表示向量,将所述第一增强序列表示向量输入神经网络第一编码器,得到第二增强序列表示向量,将所述第二增强序列表示向量和所述原始序列表示向量进行信息融合得到API新向量表示;API使用预测模块103,用于将所述API新向量表示输入神经网络第二编码器中,得到API序列向量,将所述API序列向量输入相似度计算模块,得到每一个候选API的相似性得分,选出相似性得分最高的N个API即为推荐的API。除了上述3个模块以外,装置100还可以包括其他部件,然而,由于这些部件与本公开实施例的内容无关,因此在这里省略其图示和描述。
进一步的,所述数据预处理模块中,所述用户自定义API为不在官方库或第三方库的API,根据所述用户自定义API,提取实现所述用户自定义API功能的官方库或第三方库的API序列,并将提取的所述API序列代替所述原始API调用序列中的用户自定义API,得到增强API调用序列。
进一步的,所述API调用序列表示学习模块中,所述信息融合包括门控融合,所述门控融合是对所述第二增强序列表示向量中的自定义API表示向量和所述原始序列表示向量中的自定义API表示向量进行融合,通过图注意力机制根据所述用户自定义API和实现相同功能的底层非自定义API的对应关系,得到所述第二增强序列表示向量中的自定义API表示向量,将所述第二增强序列表示向量中的自定义API表示向量与所述原始序列表示向量中的自定义API表示向量通过更新门进行信息融合,得到自定义API表示输出向量。
进一步的,所述API调用序列表示学习模块中,所述信息融合还包括线性融合,所述线性融合是将所述第二增强序列表示向量中的非自定义API表示向量和所述原始序列表示向量中的非自定义API表示向量拼接后进行线性变换,得到信息融合后的非自定义API表示输出向量,将所述非自定义API表示输出向量与所述自定义API表示输出向量结合得到所述API新向量表示。
一种基于信息增强调用序列的API推荐装置100的具体工作过程参照上述一种基于信息增强调用序列的API推荐方法实施例1的描述,不再赘述。
本发明实施例针对以上所述基于信息增强调用序列的API推荐方法及装置,通过设计一种将代码段解析成原始API调用序列和增强API调用序列的方法,来弥补原始序列信息不足和用户自定义API携带信息过少影响推荐准确率的问题;设计了一种融合原始API调用序列和增强API调用序列信息来学习序列表示的深度学习网络,该深度学习网络通过图注意力机制,获取增强调用序列中的替换API的信息,再通过门控机制,与原始API调用序列中对应的用户自定义API进行信息融合,这样原始调用序列中的用户自定义API的信息就得到了更新;再通过线性变换机制,将两条序列里的非用户自定义API的信息进行融合,这样原始API调用序列中的非用户自定义API的信息就得到了更新;经过两次更新操作,原始序列中的API新向量表示已经全部完成融合了增强序列的信息,使得学习到的API新向量表示更加准确。
在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的步骤、方法不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种步骤、方法所固有的要素。
以上内容是结合具体的优选实施方式对本发明所作的进一步详细说明,不能认定本发明的具体实施只局限于这些说明。对于本发明所属技术领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干简单推演或替换,都应当视为属于本发明的保护范围。

Claims (8)

1.一种基于信息增强调用序列的API推荐方法,其特征在于,方法包括如下步骤:
数据预处理:解析源代码提取得到原始API调用序列,根据所述原始API调用序列获取用户自定义API和非自定义API的对应关系,得到增强API调用序列;
API调用序列表示学习:将所述原始API调用序列和所述增强API调用序列分别放入神经网络嵌入层,得到原始序列表示向量和第一增强序列表示向量,将所述第一增强序列表示向量输入神经网络第一编码器,得到第二增强序列表示向量,将所述第二增强序列表示向量和所述原始序列表示向量进行信息融合得到API新向量表示;
API使用预测:将所述API新向量表示输入神经网络第二编码器中,得到API序列向量,将所述API序列向量输入相似度计算模块,得到每一个候选API的相似性得分,选出相似性得分从高到低序列中的前N个API即为推荐的API。
2.根据权利要求1所述的基于信息增强调用序列的API推荐方法,其特征在于,所述数据预处理中,所述用户自定义API为不在官方库或第三方库的API,根据所述用户自定义API,提取实现所述用户自定义API功能的官方库或第三方库的API序列,并将提取的所述API序列代替所述原始API调用序列中的用户自定义API,得到增强API调用序列。
3.根据权利要求1所述的基于信息增强调用序列的API推荐方法,其特征在于,所述API调用序列表示学习中,所述信息融合包括门控融合,所述门控融合是对所述第二增强序列表示向量中的自定义API表示向量和所述原始序列表示向量中的自定义API表示向量进行融合,通过图注意力机制根据所述用户自定义API和非自定义API的对应关系,得到所述第二增强序列表示向量中的自定义API表示向量,将所述第二增强序列表示向量中的自定义API表示向量与所述原始序列表示向量中的自定义API表示向量通过更新门进行信息融合,得到自定义API表示输出向量。
4.根据权利要求3所述的基于信息增强调用序列的API推荐方法,其特征在于,所述API调用序列表示学习中,所述信息融合还包括线性融合,所述线性融合是将所述第二增强序列表示向量中的非自定义API表示向量和所述原始序列表示向量中的非自定义API表示向量拼接后进行线性变换,得到信息融合后的非自定义API表示输出向量,将所述非自定义API表示输出向量与所述自定义API表示输出向量结合得到所述API新向量表示。
5.一种基于信息增强调用序列的API推荐装置,其特征在于,装置包括:
数据预处理模块,用于解析源代码提取得到原始API调用序列,根据所述原始API调用序列获取用户自定义API和非自定义API的对应关系,得到增强API调用序列;
API调用序列表示学习模块,将所述原始API调用序列和所述增强API调用序列分别放入神经网络嵌入层,得到原始序列表示向量和第一增强序列表示向量,将所述第一增强序列表示向量输入神经网络第一编码器,得到第二增强序列表示向量,将所述第二增强序列表示向量和所述原始序列表示向量进行信息融合得到API新向量表示;
API使用预测模块,用于将所述API新向量表示输入神经网络第二编码器中,得到API序列向量,将所述API序列向量输入相似度计算模块,得到每一个候选API的相似性得分,选出相似性得分从高到低序列中的前N个API即为推荐的API。
6.根据权利要求5所述的基于信息增强调用序列的API推荐装置,其特征在于,所述数据预处理模块中,所述用户自定义API为不在官方库或第三方库的API,根据所述用户自定义API,提取实现所述用户自定义API功能的官方库或第三方库的API序列,并将提取的所述API序列代替所述原始API调用序列中的用户自定义API,得到增强API调用序列。
7.根据权利要求5所述的基于信息增强调用序列的API推荐装置,其特征在于,所述API调用序列表示学习模块中,所述信息融合包括门控融合,所述门控融合是对所述第二增强序列表示向量中的自定义API表示向量和所述原始序列表示向量中的自定义API表示向量进行融合,通过图注意力机制根据所述用户自定义API和非自定义API的对应关系,得到所述第二增强序列表示向量中的自定义API表示向量,将所述第二增强序列表示向量中的自定义API表示向量与所述原始序列表示向量中的自定义API表示向量通过更新门进行信息融合,得到自定义API表示输出向量。
8.根据权利要求7所述的基于信息增强调用序列的API推荐装置,其特征在于,所述API调用序列表示学习模块中,所述信息融合还包括线性融合,所述线性融合是将所述第二增强序列表示向量中的非自定义API表示向量和所述原始序列表示向量中的非自定义API表示向量拼接后进行线性变换,得到信息融合后的非自定义API表示输出向量,将所述非自定义API表示输出向量与所述自定义API表示输出向量结合得到所述API新向量表示。
CN202210335647.4A 2022-04-01 2022-04-01 基于信息增强调用序列的api推荐方法及装置 Active CN114416159B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202210335647.4A CN114416159B (zh) 2022-04-01 2022-04-01 基于信息增强调用序列的api推荐方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202210335647.4A CN114416159B (zh) 2022-04-01 2022-04-01 基于信息增强调用序列的api推荐方法及装置

Publications (2)

Publication Number Publication Date
CN114416159A true CN114416159A (zh) 2022-04-29
CN114416159B CN114416159B (zh) 2022-07-22

Family

ID=81263481

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202210335647.4A Active CN114416159B (zh) 2022-04-01 2022-04-01 基于信息增强调用序列的api推荐方法及装置

Country Status (1)

Country Link
CN (1) CN114416159B (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114896514A (zh) * 2022-07-14 2022-08-12 西安电子科技大学 一种基于图神经网络的Web API标签推荐方法
CN115600012A (zh) * 2022-12-01 2023-01-13 哈尔滨工业大学(深圳)(哈尔滨工业大学深圳科技创新研究院)(Cn) 一种基于知识增强和结构对比的api推荐方法

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107832047A (zh) * 2017-11-27 2018-03-23 北京理工大学 一种基于lstm的非api函数实参推荐方法
CN111966817A (zh) * 2020-07-24 2020-11-20 复旦大学 基于深度学习及代码上下文结构和文本信息的api推荐方法
US20200372088A1 (en) * 2019-05-20 2020-11-26 Fujitsu Limited Recommending web api's and associated endpoints
US20220012118A1 (en) * 2020-07-09 2022-01-13 Dell Products L.P. Recommendation engine for application programming interface (api) in a multi-cloud environment

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107832047A (zh) * 2017-11-27 2018-03-23 北京理工大学 一种基于lstm的非api函数实参推荐方法
US20200372088A1 (en) * 2019-05-20 2020-11-26 Fujitsu Limited Recommending web api's and associated endpoints
US20220012118A1 (en) * 2020-07-09 2022-01-13 Dell Products L.P. Recommendation engine for application programming interface (api) in a multi-cloud environment
CN111966817A (zh) * 2020-07-24 2020-11-20 复旦大学 基于深度学习及代码上下文结构和文本信息的api推荐方法

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
CHENGPENG WANG 等: "Statistical API Completion Based on Code Relevance Mining", 《2019 IEEE WORKSHOP ON MINING AND ANALYZING INTERACTION HISTORIES (MAINT)》, 14 March 2019 (2019-03-14), pages 7 - 13 *
JING KAI SIOW 等: "CORE: Automating Review Recommendation for Code Changes", 《2020 IEEE 27TH INTERNATIONAL CONFERENCE ON SOFTWARE ANALYSIS, EVOLUTION AND REENGINEERING (SANER)》, 2 April 2020 (2020-04-02), pages 284 - 293 *
潘鹤中 等: "深度学习数据窃取攻击在数据沙箱模式下的威胁分析与防御方法研究", 《通信学报》, vol. 42, no. 11, 30 November 2021 (2021-11-30), pages 133 - 144 *

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114896514A (zh) * 2022-07-14 2022-08-12 西安电子科技大学 一种基于图神经网络的Web API标签推荐方法
CN114896514B (zh) * 2022-07-14 2022-09-30 西安电子科技大学 一种基于图神经网络的Web API标签推荐方法
CN115600012A (zh) * 2022-12-01 2023-01-13 哈尔滨工业大学(深圳)(哈尔滨工业大学深圳科技创新研究院)(Cn) 一种基于知识增强和结构对比的api推荐方法

Also Published As

Publication number Publication date
CN114416159B (zh) 2022-07-22

Similar Documents

Publication Publication Date Title
WO2021147726A1 (zh) 信息抽取方法、装置、电子设备及存储介质
CN113312500B (zh) 一种面向大坝安全运行的事件图谱构建方法
CN114416159B (zh) 基于信息增强调用序列的api推荐方法及装置
CN112528034B (zh) 一种基于知识蒸馏的实体关系抽取方法
CN112214995A (zh) 用于同义词预测的分层多任务术语嵌入学习
CN110943981B (zh) 基于层次学习的跨架构漏洞挖掘方法
US11789753B2 (en) Machine-learned models for user interface prediction, generation, and interaction understanding
CN115017294B (zh) 代码搜索方法
CN113010683B (zh) 基于改进图注意力网络的实体关系识别方法及系统
CN115470354B (zh) 基于多标签分类识别嵌套和重叠风险点的方法及系统
Althar et al. [Retracted] Software Systems Security Vulnerabilities Management by Exploring the Capabilities of Language Models Using NLP
Wu et al. Graph capsule aggregation for unaligned multimodal sequences
CN111582506A (zh) 基于全局和局部标记关系的偏多标记学习方法
Cao et al. Research progress of zero-shot learning beyond computer vision
CN113705238A (zh) 基于bert和方面特征定位模型的方面级情感分析方法及模型
Liu et al. Convolutional neural networks-based locating relevant buggy code files for bug reports affected by data imbalance
CN116432611A (zh) 文稿写作辅助方法、系统、终端及存储介质
Yang et al. Learning symbolic rules for reasoning in quasi-natural language
Murali et al. Automated NER, sentiment analysis and toxic comment classification for a goal-oriented chatbot
CN113392929B (zh) 一种基于词嵌入与自编码器融合的生物序列特征提取方法
CN115630223A (zh) 基于多模型融合的服务推荐方法及推荐系统
Sarnot et al. Snapcode-a snapshot based approach to code stylometry
CN117151247B (zh) 机器学习任务建模的方法、装置、计算机设备和存储介质
Tan et al. Information Extraction System for Cargo Invoices
US20240096125A1 (en) Methods, systems, articles of manufacture, and apparatus to tag segments in a document

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant
CB03 Change of inventor or designer information
CB03 Change of inventor or designer information

Inventor after: Gao Cuiyun

Inventor after: Xu Guoai

Inventor after: Chen Yujia

Inventor after: Wang Xuan

Inventor after: Liao Qing

Inventor after: Liu Chuanyi

Inventor after: Han Peiyi

Inventor before: Gao Cuiyun

Inventor before: Chen Yujia

Inventor before: Wang Xuan

Inventor before: Liao Qing

Inventor before: Liu Chuanyi

Inventor before: Han Peiyi