[发明专利]一种基于对象分类和自适应子图匹配的API推荐方法在审
申请号: | 201711188298.3 | 申请日: | 2017-11-21 |
公开(公告)号: | CN109814855A | 公开(公告)日: | 2019-05-28 |
发明(设计)人: | 周毓明;贾倩倩 | 申请(专利权)人: | 南京大学 |
主分类号: | G06F8/33 | 分类号: | G06F8/33;G06F8/35 |
代理公司: | 暂无信息 | 代理人: | 暂无信息 |
地址: | 210093 江苏省南京市*** | 国省代码: | 江苏;32 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 概率 对象分类 方法使用 模式串 自适应 图库 匹配 集合 方法推荐 使用模式 搜索匹配 语言模型 字母排序 剪枝 调用 排序 抽取 | ||
本发明提出一种基于对象分类和自适应子图匹配的API推荐方法,先将API方法使用模式串根据方法所属类划分,然后对每个类中的API使用模式串建立图库GDB。当需在位置L处推荐时,先从L的上文代码中抽取与待推荐方法属于同类的方法使用模式串,生成图SG,进行剪枝得到集合。对于集合中每个子图,先计算子图概率,继而使用子图在图库中搜索匹配得到候选方法及对应概率,将其与子图概率相结合可得到每个方法最终被调用概率。根据概率由高至低排序得到最终API方法推荐列表。实验证明在推荐准确性方面,显示本发明中提出的API推荐方法优于按字母排序的API推荐方法,也优于基于N‑Gram语言模型的API推荐方法。
技术领域
本发明属于软件工程领域,尤其是软件开发中的代码补全领域,且特别是有关于API(Application Programming Interface,应用程序编程接口)的推荐补全领域。
背景技术
随着计算机技术的不断发展以及人们的应用需求的不断变化,软件更新迭代的生命周期缩短,提高开发人员的开发效率迫在眉睫。现在许多主流集成开发环境(Intergrated Development Environments,简记为IDEs)中均集成了代码补全系统,解决的核心问题是API推荐。API推荐系统是一个可以实时地根据开发人员当前的开发上文环境为其推荐接下来可能会调用的API方法的系统。这种推荐系统可以极大程度地减少开发人员手动筛选以及记忆学习API方法的时间,从而提高开发效率,也可以在一定程度上避免开发人员因单词拼写错误而引入程序Bug。
API方法推荐工具的工作原理是:先对已有的开源代码中的API方法使用模式进行学习,建立模型,在开发人员进行开发时,将开发人员当前的开发上下文与已经建立的模型相结合,智能地生成一组开发人员接下来可能会调用的API序列,并呈现给开发者。在推荐的API序列中,预期调用的API排序越靠前,代表推荐算法效果越好,由此开发人员的工作效率也提高地越多。
在集成开发环境中(如Eclipse),最初的API推荐系统会将开发人员需要调用的API方法所属的类中所有可调用的API方法按照首字母升序排序,呈现给开发人员,在本说明书中将这种API方法推荐模型称之为Eclipse Model。当Eclipse Model在工作时,若开发者欲调用SWT框架中的方法时,Eclipse Model会生成一个按首字母升序排序的、长度为168的API方法列表推荐给开发者,这种推荐方法在实际应用场景中,并不会减少开发人员记忆以及筛选API方法的工作量,也没有实质地提高开发人员的开发效率。随之,大量研究人员尝试对项目源代码进行学习,从中抽取API方法使用模式串,再使用统计学习等模型进行建模学习,用于API方法推荐,如Abram Hindle等人提出代码也像自然语言一样具有规律性,将n-gram语言模型引入API推荐中(Abram Hindle,Earl T.Barr,Zhendong Su,MarkGabel,Premkumar Devanbu.On the naturalness of software.2012 34thInternational Conference on Software Engineering(ICSE),2012:837-847),并提出一种基于语料库的n-gram模型(简记为NGSE),实验结果证明他们所提出的方法,较之已有的API方法推荐模型,在API方法推荐准确率上有了一定程度的提高。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于南京大学,未经南京大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201711188298.3/2.html,转载请声明来源钻瓜专利网。