基于LDA模型和PageRank算法建立特征接口有向图的方法

文档序号:6544198阅读:293来源:国知局
基于LDA模型和PageRank算法建立特征接口有向图的方法
【专利摘要】本发明公开了软件工程领域内的基于LDA模型和PageRank算法建立特征接口有向图的方法,包括如下步骤:1)选取适当的开源软件库作为代码支持;2)通过LDA主题模型提取出项目对应的主题作为该项目的特征集合;3)检索各项目中的接口信息,与各项目对应的特征集合建立联系,构成由项目特征集合指向项目接口集合的特征-接口有向图,利用PageRank算法计算接口在项目内部的调用次数作为特征-接口有向图中边的权值;4)在构成特征-接口有向图后,程序开发人员根据待开发项目的特征与所述特征-接口有向图中的特征进行匹配,根据有向图边的指向关系推荐可能的最优接口列表供开发人员选择使用,本发明提高了软件开发的效率,可用于软件开发中。
【专利说明】基于LDA模型和PageRank算法建立特征接口有向图的方法
【技术领域】
[0001]本发明涉及一种项目接口选取方法,特别涉及一种建立特征接口有向图的方法,属于软件工程领域。
【背景技术】
[0002]当开发人员在开发新的程序时,首先会根据需求分析进行功能模块的划分,之后设定数据单元考虑数据库等步骤。程序开发过程中接口的设置往往也会出现在开发人员的考虑范畴中,那么在这样的背景之下,开发人员在进行了功能模块划分之后,根据开发人员对程序的功能描述来为开发人员推荐程序合适的接口,供开发人员选择,提高软件开发效率。目前在软件开发时,通常会由项目负责人根据项目需求文档手动设置接口,在搜索接口时根据关键字查找,该方法存在查找不全面,检索效率不高,对于代码重用的实现不理想。
[0003]本发明的核心技术是生成“特征-接口”有向图,通过生成的有向图可以实现根据需求的开发的项目特征推荐接口的功能。本发明的核心技术需要提取出项目的特征与开源软件库中的项目接口的重要性,所使用的技术包括LDA主题模型和PageRank算法。LDA主题模型是一种概率语言模型,场应用于文本建模,从文本中发现隐藏的主题信息,本发明中使用LDA主题模型对开源软件库中项目的主题特征进行提取。PageRank算法是一种搜索引擎算法,用于衡量特定网页相对于搜索引擎索引中的其他网页的重要程度,PageRank算法实现了链接价值概念作为排名因素,本发明中PageRank算法应用于计算某个项目特征下的不同接口的调用次数,进行排名。
[0004]根据LDA主题的特性,使用该模型提取项目特征。通过主题模型技术能够识别开发人员的需求特征,同时获取开源软件库中开源项目的特征(主题);利用简单的遍历技术查找出开源软件中的接口构成有向图。而类比于网页链接重要性的计算形式,使用PageRank算法来计算项目中接口的重要程度,将项目的主题特征作为主页面,而接口作为由主页面链接的子页面。利用PageRank技术检索出开发人员需要的对应特征的接口,反馈给开发人员,供其选择使用。

【发明内容】

[0005]本发明的目的是提供一种基于LDA模型和PageRank算法建立特征接口有向图的方法,根据开发人员提供的程序特征,自动从软件库中推荐适合该特征的程序接口供开发人员使用,从而提高了软件开发的效率,实现代码的接口重用。
[0006]本发明的目的是这样实现的:一种基于LDA模型和PageRank算法建立特征接口有向图的方法,其特征在于,包括如下步骤:
步骤I)选取适当的开源软件库作为代码支持;
步骤2)对选取的开源软件库中的项目,通过LDA主题模型提取出项目对应的主题作为该项目的特征集合;
步骤3)检索各项目中的接口信息,与各项目对应的特征集合建立联系,构成由项目特征集合指向项目接口集合的特征-接口有向图,利用PageRank算法计算接口在项目内部的调用次数作为特征-接口有向图中边的权值;
步骤4)在构成特征-接口有向图后,程序开发人员根据待开发项目的特征与所述特征-接口有向图中的特征进行匹配,根据有向图边的指向关系推荐可能的最优接口列表供开发人员选择使用。
[0007]作为本发明的进一步限定,简化步骤,提高效率,步骤2)的具体方法如下:LDA模型分别对开源软件库中的项目提取主题时,通过对于LDA参数设置,实现每次只提取一个项目,以该项目为一个文档库,通过LDA模型提取出该项目的主题,然后,依次对开源软件库中的其他开源项目使用同样的方法提取主题;在当前需要提取主题的项目中使用LDA模型主题时,将分布值最高的前两个主题作为最佳特征集合BestFi,最佳特征集合BestFi作为步骤4)中接口的匹配对象。
[0008]作为本发明的进一步限定,简化步骤,提高效率,步骤3)的具体方法如下:遍历当前项目,检索出项目文件中的接口并以“文件名.接口名”的形式定位该接口,建立由最佳特征集合BestFi指向接口集合的特征-接口有向图;特征-接口有向图建立之后,使用PageRank算法统计项目中各接口的调用次数,同时,依据计算值大小对接口进行排序。
[0009]作为本发明的进一步限定,简化步骤,提高效率,步骤4)的具体方法如下:当程序开发人员进行特征匹配时,将开发人员选择的待开发项目的特征集合f与权利要求2中的最佳特征集合BestFi进行匹配,匹配方法为:将特征集合f中的每一个词依次匹配BestFi中对应的词语,当匹配成功词数占特征集合f总词数的百分比大于等于50%时,判定特征集合f与所述最佳特征集合BestFi匹配成功,并根据特征-接口有向图中边的指向为程序开发人员推荐接口列表供程序开发人员自行选择;当程序开发人员选择某个接口之后,根据权利要求3中的定位方式确定具体的接口,并为开发人员推荐该接口。
[0010]与现有技术相比,本发明的有益效果在于,本发明通过LDA主题模型提取主题特征,简化了人工理解代码来提取项目主题的步骤,通过接口关键字搜索接口并将其按照特定格式存储,提取出的主题构成有向图,在需要时通过PageRank算法根据有向图中边的关系排序推荐最优的接口 ;该项技术带来的优点主要有以下几点:
1)为开发人员推荐功能接口,简化了软件开发过程,提高开发效率;
2)根据开发人员的功能描述为开发人员推荐接口时,能够为开发人员进行功能细化,完善软件的功能;
3)接口的推荐使用可以帮助开发人员编写可复用性更好的代码;
4)当项目接口定位好之后,不同模块的开发人员可以先根据接口的定义开发自己的模块,提高开发效率。本发明可用于软件开发中。
【专利附图】

【附图说明】
[0011]图1是本发明使用过程流程图。
[0012]图2是本发明中利用LDA主题模型提取主题过程流程图。
[0013]图3是本发明中建立特征-接口有向图过程的流程图。
[0014]图4是根据待开发项目特征检索特征-接口有向图推荐接口过程示意图。
[0015]其中,ILAD提取主题过程,2LDA计算分布值提取BestFi过程,3建立特征-接口有向图过程,4接口定位过程,5特征匹配过程。
【具体实施方式】
[0016]下面结合附图和具体实施例对本发明的技术方案作出详细说明。
[0017]本发明的方法是通过LDA(Latent Dirichlet Allocation)主题模型提取出开源软件库中的主题,给予项目主题描述,使用LDA模型提取出的主题单词集合作为该项目的特征描述,使用PageRank算法建立提取出的主题特征集合与遍历查找出的接口的有向图并计算出每条边的权值,然后根据权值进行排序,按照开发人员输入的特征关键字检索有向图的顶点,匹配成功则推荐该顶点下的节点(即接口)供开发人员选择,如图1所示。
[0018]一、参数定义
1、开源软件库文件
假设现有开源 软件库(以开源中国中的开源项目的整体作为开源软件库),开源软件库中有η个项目分别为PpPfPn。
[0019]2、LDA(Latent Dirichlet Allocation)模型参数
I)使用LDA模型对开源软件库中的软件提取主题特征集合并按照项目编号对主题特征集合进行编号,如项目I提取的主题特征集合为F1,以此类推。
[0020]2)LDA模型提取的每条主题列的数目为K,设置为30,提取出尽可能多而全面的主题。
[0021]3)提取出每条的主题列中的词数w的值域为W € (10,IOOj,词数过少主题概括不全面,词数过多冗余。
[0022]4)由LDA计算出的主题分布值大小前两位的主题列构成最佳特征集合,表示为BestFi, i的值与项目编号值相同。
[0023]3、开发人员进行项目开发时,对待开发的项目进行功能描述,将开发人员功能描述的词语作为开发项目的特征集合f,特征集合f中特征词数为N,匹配每一个BestFi集合中的特征词汇,将特征集合f中的每个词语分别与BestFi集合中的每个特征词语进行匹



配,匹配相似的匹配值η加I,当匹配值η > +:时,将该BestFi集合定义为最佳匹配集合,
2
查找出最佳匹配集合,检索特征-接口有向图的子节点,根据子节点中接口定位前往对应项目文件中,将接口列表反馈给开发人员,开发人员自行选择合适的接口,根据接口的定位为开发人员推荐被选择的接口。
[0024]二、方法流程
利用LDA模型和PageRank算法建立特征接口有向图,为程序开发人员推荐适当接口的过程主要分为两个步骤:建立特征接口有向图和根据需求推荐接口。
[0025]1、建立特征-接口有向图1)选定开源软件库地址,检索软件库中项目,使用LDA模型依次对项目Pp匕…Pn进行主题提取操作,对于LDA参数设置每次只对一个项目进行操作,以该项目为一个文档库。通过LDA模型提取出一个项目的特征(或者称之为主题)之后,依次对开源库中的开源项目使用同样的方法提取特征并进行编号,分别得出对应项目的全部主题列分别编号为FpF2-Fn ;例如开源软件库中有η个项目,第一个项目是关于音乐播放软件的,通过LDA模型提取出的主题集合为{Fn: {play, next, stop}, F12: {load, download}, F13: {Lyricsdownload,singer},...}我们将这个主题特征集合定义为F1。对于其他开源软件进行相同的操作。主题特征集合的定义下标不同;
2)LDA模型提取主题特征过程中获得每一条主题列的主题分布值,取主题分布值最高的前两个主题列作为最佳特征集合BestFi。如a)举例集合F1中,F11与F12的主题分布值为前两位,实际上由Fl集合可以看出F13实际上对于音乐播放软件而言不是必须的,而是少数几个播放软件的特殊功能;最佳特征集合BestF1=F1 U F2,如图2所示;
3)遍历当前项目,检索出项目文件中的接口并以“文件名.接口名”的形式定位该接口,接口的遍历通过接口关键字Interface或者类实现接口来查找。“文件名.接口名”的形式作为集合形式保存下来,其中文件名内容包含了当前项目名,项目下包名,包中类名每个单项之间以 “.” 隔开;形式如下:ProjectName.PackageName.ClassName.1nterfaceName,例如开源软件库中存在某音乐播放软件名为Music,项目中有包名为Play (放音乐播放类),包下有用于调整时间轴的类名为SetTime,在类文件中设置了接口 setTime。那么对于该接口检索出的“文件名.接口名”为:Music.Play.SetTime.setTime,做有向边从BestF1指向接口,形成BestF1O接口的有向图,如图3所示;
4)有向图建立之后我们使用PageRank算法计算有向图中最佳特征集合BestF1与各个接口的链接次数,即类似于PageRank算法用于网页搜索时计算网页与网页之间的链接次数来确定网页的重要性,同理能够计算出同一特征下接口的重要性,计算值越大说明接口被调用的次数越多也就越重要应当首先被推荐,并依据计算值大小对接口进行排名,例如通过LDA模型提取出最佳特征集合BestF1, BestF1下调用了接口 I的次数为η」,调用接口 2的次数为Iii,且 Iipni,那么当推荐是应当首先推荐接口 1,其调用次数多于接口 2,如图3所示。
[0026]2、根据用户需求推荐接口
在用户端,当程序开发人员进行特征选择时,将开发人员选择的主题特征集合定义为f
与最佳特征集合BestF1进行匹配,按照上述
【权利要求】
1.一种基于LDA模型和PageRank算法建立特征接口有向图的方法,其特征在于,包括如下步骤: 步骤I)选取适当的开源软件库作为代码支持; 步骤2)对选取的开源软件库中的项目,通过LDA主题模型提取出项目对应的主题作为该项目的特征集合; 步骤3)检索各项目中的接口信息,与各项目对应的特征集合建立联系,构成由项目特征集合指向项目接口集合的特征-接口有向图,利用PageRank算法计算接口在项目内部的调用次数作为特征-接口有向图中边的权值; 步骤4)在构成特征-接口有向图后,程序开发人员根据待开发项目的特征与所述特征-接口有向图中的特征进行匹配,根据有向图边的指向关系推荐可能的最优接口列表供开发人员选择使用。
2.根据权利要求1所述的基于LDA模型和PageRank算法建立特征接口有向图的方法,其特征在于,步骤2)的具体方法如下:LDA模型对开源软件库中的项目提取主题时,通过对于LDA参数设置,实现每次只提取一个项目,以该项目为一个文档库,通过LDA模型提取出该项目的主题,然后,依次对开源软件库中的其他开源项目使用同样的方法提取主题;在当前需要提取主题的项目中使用LDA模型提取主题时,将分布值最高的前两个主题作为最佳特征集合BestFi,最佳特征集合BestFi作为步骤4)中接口的匹配对象。
3.根据权利要求2所述的基于LDA模型和PageRank算法建立特征接口有向图的方法,其特征在于,步骤3)的具体方法如下:遍历当前项目,检索出项目文件中的接口并以“文件名.接口名”的形式定位该接口,建立由最佳特征集合BestFi指向接口集合的特征-接口有向图;特征-接口有向图建立之后,使用PageRank算法统计项目中各接口的调用次数,同时,依据计算值大小对接口进行排序。
4.根据权利要求3所述的基于LDA模型和PageRank算法建立特征接口有向图的方法,其特征在于,步骤4)的具体方法如下:当程序开发人员进行特征匹配时,将开发人员选择的待开发项目的特征集合f与权利要求2中的最佳特征集合BestFi进行匹配,匹配方法为:将特征集合f中的每一个词依次匹配BestFi中对应的词语,当匹配成功词数占特征集合f总词数的百分比大于等于50%时,判定特征集合f与所述最佳特征集合BestFi匹配成功,并根据特征-接口有向图中边的指向为程序开发人员推荐接口列表供程序开发人员自行选择;当程序开发人员选择某个接口之后,根据权利要求3中的定位方式确定具体的接口,并为开发人员推荐该接口。
【文档编号】G06F9/44GK103927177SQ201410156746
【公开日】2014年7月16日 申请日期:2014年4月18日 优先权日:2014年4月18日
【发明者】孙小兵, 施伟, 李斌, 李云 申请人:扬州大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1