全网唯一标准王
(19)中华 人民共和国 国家知识产权局 (12)发明 专利申请 (10)申请公布号 (43)申请公布日 (21)申请 号 202111667464.4 (22)申请日 2021.12.31 (71)申请人 山东浪潮科 学研究院有限公司 地址 250100 山东省济南市高新浪潮路 1036号S02号楼 (72)发明人 王耀龙  (74)专利代理 机构 济南信达专利事务所有限公 司 37100 代理人 阚恭勇 (51)Int.Cl. G06F 8/36(2018.01) G06F 9/448(2018.01) G06F 16/951(2019.01) G06K 9/62(2022.01) (54)发明名称 一种根据自然语言描述推荐API的方法 (57)摘要 本发明提供一种根据自然语言描述推荐API 的方法, 属于软件工程领域, 本发明爬取、 分析 Github上的大量Java开源项目, 通过层次聚类挖 掘API使用模式, 实现基于自然语言查询的API推 荐系统, 根据输入的功能描述的自然语言文本, 推荐实现这 一功能所需的API方法。 权利要求书2页 说明书5页 附图1页 CN 114356319 A 2022.04.15 CN 114356319 A 1.一种根据自然语言描述推荐API的方法, 其特 征在于, 利用Scrapy爬虫框架爬取Github上的Java开源项目, 使用代码分析工具对源代码进行 分析和提取; 把相关的API方法放到排序靠前的位置进 行推荐, 并且 经过层次聚类以得到更 好的推荐效果。 2.根据权利要求1所述的方法, 其特 征在于, 分为四个步骤: 1)爬Java开源项目、 2)提取 元数据、 3)挖掘API使用模式、 4)API推荐; 其中, 步骤1)爬取Java开源项目, 是为了在后续步骤中分析与提取API信息以及API推荐提供 数据材料; 步骤2)提取元数据, 根据第三方API库的使用频率, 选择commons ‑io、 commons ‑codec、 commons‑lang、 commons ‑logging、 easymock、 log4j、 slf4j、 servlet ‑api、 junit这9个API库 作为目标库, 从Java开源项目中提取这些第三方API库的API方法调用; 步骤3)从上述步骤中得到的所有元数据中随机选取元数据作为数据集, 使用层次聚类 算法对数据集进行聚类分析, 从中挖掘API使用模式; 步骤4)根据对元 数据经过层次聚类得到的API使用模式进行API推荐。 3.根据权利要求2所述的方法, 其特 征在于, 1)爬取Java开源项目, 详细步骤如下: 步骤S101、 利用GitHub提供的获取Github上的数据API构造出的查询https:// api.github.com/sear ch/repositories? q= stars:2500..100000+language:Java&sort= stars&order=desc &per_page=100&page=1作为爬虫爬取的初始 链接; 步骤S102、 查询搜索star数在2500到100000之间的Java项目, 按star数降序排序, 每页 100项条目, 返回结果 为Json格式; 步骤S103、 对爬虫 得到的响应解析后得到 搜索结果中每 个存储库的信息 。 4.根据权利要求3所述的方法, 其特 征在于, 元数据的提取基于 Eclipse JDT中的AST模块实现。 5.根据权利要求 4所述的方法, 其特 征在于, 步骤2)提取 元数据, 详细步骤如下: 步骤S201、 对于MethodDeclaration类型节点, 判断是否存在注释信息, 没有则返回 false, 停止遍历其子节点, 否则提取注释信息和方法名, 并返回t rue继续遍历子节点; 步骤S202、 遍历到MethodDeclaration类型的节点下的MethodInvocation子节点时, 获 取API方法调用信息, 忽略项目内的方法调用, 只保留第三方API方法的调用; 步骤S203、 遍历所有开源项 目中的所有文件, 对于后缀名为.java的Java源代码文件, 通过ASTParser解析为抽象语 法树, 然后利用自定义的ASTVisitor遍历访问抽象语 法树, 就 可以得到这个代码文件中的方法名、 API调用、 注释信息数据。 6.根据权利要求5所述的方法, 其特 征在于, 步骤3)挖掘API使用模式, 详细步骤如下: 步骤S301、 首先定义相似度度量法则, 结合方法名和API调用这两方面来定义元数据之 间的相似度; 步骤S302, 编辑距离, 即Levenshtein距离, 是针对两个字符串的差异程度的量化; 类间权 利 要 求 书 1/2 页 2 CN 114356319 A 2相似度最大作为合并规则, 分别属于两个类的两个元数据之间的最小相似度定义为这两个 类之间的类间相似度; 步骤S303, 使用层次聚类算法对元数据进行层次聚类获得一个以上的簇集, 每个簇集 是相似的元 数据的集 合, 这些簇集 就是不同的API使用模式。 7.根据权利要求6所述的方法, 其特 征在于, 步骤S302中, 停止条件设置为所有类两两之间的类间相似度低于一个阈值, 这里将阈 值设置为0.5; 当所有类的类间相 似度低于0.5时, 认为所有相 似的元数据 都已经聚在一类 中, 已经没有符合条件的足够相似的类了, 停止聚类。 8.根据权利要求6所述的方法, 其特 征在于, 步骤4)API推荐的详细步骤如下: 步骤S401, 层次聚类得到的簇集的注释集合作为API使用模式的描述信息, 将这些描述 信息利用TF ‑IDF权重计算方法转换为向量空间模型中的权 重向量; 步骤S402, 将输入的自然语言查询, 进行文本预处理后, 转换为向量空间模型中的权重 向量; 步骤S403, 分别计算自然语言查询与每个API使用模式之间的余弦相似度, 将计算出的 余弦相似度排序, 最后输出相似度最高的API使用模式作为推荐结果。权 利 要 求 书 2/2 页 3 CN 114356319 A 3

.PDF文档 专利 一种根据自然语言描述推荐API的方法

文档预览
中文文档 9 页 50 下载 1000 浏览 0 评论 309 收藏 3.0分
温馨提示:本文档共9页,可预览 3 页,如浏览全部内容或当前文档出现乱码,可开通会员下载原始文档
专利 一种根据自然语言描述推荐API的方法 第 1 页 专利 一种根据自然语言描述推荐API的方法 第 2 页 专利 一种根据自然语言描述推荐API的方法 第 3 页
下载文档到电脑,方便使用
本文档由 人生无常 于 2024-03-18 22:43:42上传分享
友情链接
站内资源均来自网友分享或网络收集整理,若无意中侵犯到您的权利,敬请联系我们微信(点击查看客服),我们将及时删除相关资源。