基于强化学习的JAVA语言API调用序列检索

来源 :哈尔滨工业大学 | 被引量 : 0次 | 上传用户:ctbt010
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
如何提高软件开发效率一直是软件工程领域的一个核心问题。在软件行业快速发展的今天,为了提高软件开发的效率,开发者往往采用代码复用的方式,如调用现有的应用程序编程接口(API)。现有的检索API知识的方法或工具都只实现了单个API或API子图的搜索。但是,单个API往往难以实现完整的功能,而API子图中包含的信息较为冗余和复杂难以被直接应用于实际的软件开发过程中。实际上,在利用大量使用API的编程语言(例如Java)进行软件开发时,一个功能往往需要多个API的联合调用才能实现,即开发者往往需要通过调用特定的API序列来实现具体功能。因此,本文研究如何针对特定的编程需求为开发者推荐API的使用序列,即对于开发者的功能需求描述,从历史的API使用序列数据库中检索到可以满足该功能的API使用序列,推荐给开发者,以辅助开发者编程。本文从开源软件仓库中挖掘有关Java语言的API知识用于构建Java语言的API知识图谱,并提出基于强化学习技术在API知识图谱上训练API序列的推理模型,以实现面向智能化编程的API序列搜索任务。具体的研究内容包括如下几个部分:(1)研究如何从多源软件仓库中挖掘API知识,并构造API知识图谱。首先,基于爬虫和程序分析技术分别从官方API文档、第三方API文档和开源软件项目中收集API知识。其次,通过知识融合技术将抽取的所有API知识整合为API知识图谱并保存在图数据库中。(2)研究API知识图谱的表示学习方法以及功能注释的文本嵌入方法,将代码的功能注释和知识图谱中的API实体表示为低维稠密向量,以作为深度强化学习模型的状态表示。然后通过实体预测实验验证表示学习方法是否有能力学习API知识图谱的高级结构信息,并分析表示学习模型性能的影响因素。(3)研究并提出基于强化学习的API序列检索方法。具体地,在训练阶段,智能体通过与环境(即API知识图谱)的交互来学习API序列推理策略,即基于给定的功能查询在API知识图谱中搜索与该功能对应的API路径(即API使用序列)。在测试阶段,将智能体的策略作为打分函数,计算数据库中每一条API序列路径与功能查询的匹配分数,从而生成API序列的推荐列表返回给用户。最后,通过实验验证基于强化学习的API调用序列检索方法的有效性,并通过实例分析强化学习在API序列搜索任务上的优势。
其他文献
标题党新闻是人们生活中常见的一种低质资讯,标题党新闻过多地充斥会影响人们阅读新闻的主动性,压缩优质内容生产者的生存空间,也对新闻本身强调的真实性和可靠性有所影响,如果不对标题党新闻加以限制,未来将会成为谣言和虚假新闻的温床。本文针对标题党新闻泛滥的现象,就标题党新闻检测方法进行了探索。意在研究出一种面向真实新闻能够有效识别出新闻是否是标题党新闻的算法。通过比较国内外对于标题党新闻整治所采用的方法,
学位
心血管疾病已成为全球人口死亡主要原因之一,严重影响着人类健康和社会发展。有效的预防、检测及治疗可显著地降低心血管疾病的死亡率。而血管内光学相干断层扫描技术(Intravascular Optical Coherence Tomography,IVOCT)作为现今前沿的血管成像技术之一,由于相比于其他成像技术,对血管组织的成像具有分辨率高等特点,从而在临床中得到广泛应用。然而,在成像过程中牵引探头的
学位
随着深度学习技术的不断发展,并且深度学习也成功应用于单智能体强化学习中,多智能体协同强化学习也在这个浪潮中得到了非常广泛的发展和应用。多智能体协同算法的主要目的是通过智能体群环境的不断交互,寻找到一个获取总体目标最大价值的最佳策略。强化学习在训练过程中通过不断和环境交互的方式进行收集经验,并根据这些经验进行学习。这些经验数据一般需要与环境进行大量的交互,这些对智能体的训练都带来了严峻的挑战。加速这
学位
动态目标追逃问题是一类主要受军事需求牵引而提出的问题,尤其在搜潜反潜、飞机拦截、卫星发射等军事细分领域得到了非常广泛应用。当前针对动态目标进行高效搜索追逃,国内外研究人员提出了微分博弈、经验方法等多种方法加以解决。但是当前研究对信息缺失条件下的动态目标搜索追踪策略研究不够充分,对各种搜索追踪策略缺乏一定的综合分析,尚未整合各类动态目标的搜索追踪策略,没有形成一套行之有效、可在实践中实际使用的操作集
学位
随着服务计算的发展,海量的服务互联互通形成了复杂的服务网络,海量的服务资源在给我们的生产生活带来遍历的同时也变得更加难以管理。知识图谱的结构与复杂网络十分契合,构建服务知识图谱管理海量的服务资源成为一种选择。服务知识图谱在构建过程中需要使用到很多自动化技术,如命名实体识别技术、关系抽取技术、模式匹配,知识图谱自动化构建技术在提高知识图谱构建效率、减小构建知识图谱的代价的同时,也不可避免地引入了很多
学位
理解自然语言是人工智领域面临的一项艰巨挑战,近年来热门的机器阅读理解(Machine Reading Comprehension,MRC)任务以“问-答”的形式检测模型对自然语言的理解能力。尽管各类模型在多个数据集上的性能已经超越人类表现,但是与真实场景的应用还有一定差距。针对中文机器阅读理解任务的数据和模型,本文主要研究内容如下:1)提出一种中文机器阅读理解问答对数据生成方法。机器阅读理解任务的
学位
时序动作提名生成,输入是一段未分割的长视频,根据其内容来定位动作片段,包括其开始时间、结束时间和动作类别,可应用于视频推荐,智能安防,智慧广电等场景。现有的时序动作提名生成算法已取得了瞩目的成绩,但仍难以满足现实场景中的应用,因此是当前计算机视觉领域的热点研究问题之一。具体的说,目前的方法大多致力于生成灵活的动作边界与高质量的置信度,但是仍然受限于匮乏的视频时序依赖和动作边界建模,导致了充满噪声的
学位
随着软件产品在我们的生活中有着越来越广泛的应用,程序的规模也急剧地上升,软件错误的产生可能会导致可怕的后果,而程序修复工作消耗了大量的资源。所以,自动化程序修复不仅可以降低程序开发人员的时间开销,还可以减少浪费在程序调试上面的时间。但是,真实世界的程序规模较大,当前修复方法对其支持效果不是很好,错误的修复率较低。程序补丁中的修复成分常常来源于被修复的程序自身,并且很多人工补丁的大体模式比较类似,存
学位
软件漏洞对于软件来说具有重大危险,影响着软件系统的安全。随着当今开源软件的发展,软件开发中往往进行代码逻辑的共享以及代码库的复用,使得漏洞也在开源软件中广泛传播。在实际应用软件中功能的不断增加以及软件版本的不断迭代,使得软件的复杂度随着软件的规模不断提升,漏洞函数在版本的迭代中已经和原有的漏洞函数具有很大的差别。而对于刚修复完成的漏洞函数,其和补丁函数之间往往只具有微小差别。这种漏洞与漏洞的低相似
学位
微服务设计模式通过业务解耦将复杂业务拆分为多个小粒度的微服务,且各微服务独立进行版本迭代和部署,可有效改善复杂分布式系统的开发与运维。开发人员遵循特定的微服务设计原则进行系统设计,但后续版本迭代升级过程中,可能会向微服务系统内引入架构异味。这些架构异味通常不会对微服务系统造成功能故障,但它们的存在会影响微服务系统的可持续性、可扩展性,同时可能对微服务系统运行态的数据表现产生影响。但现有研究缺少对架
学位