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

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

Info

Publication number
CN103927177A
CN103927177A CN201410156746.1A CN201410156746A CN103927177A CN 103927177 A CN103927177 A CN 103927177A CN 201410156746 A CN201410156746 A CN 201410156746A CN 103927177 A CN103927177 A CN 103927177A
Authority
CN
China
Prior art keywords
interface
digraph
characteristic
feature
project
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
CN201410156746.1A
Other languages
English (en)
Other versions
CN103927177B (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.)
Yangzhou University
Original Assignee
Yangzhou University
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 Yangzhou University filed Critical Yangzhou University
Priority to CN201410156746.1A priority Critical patent/CN103927177B/zh
Publication of CN103927177A publication Critical patent/CN103927177A/zh
Application granted granted Critical
Publication of CN103927177B publication Critical patent/CN103927177B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Stored Programmes (AREA)

Abstract

本发明公开了软件工程领域内的基于LDA模型和PageRank算法建立特征接口有向图的方法,包括如下步骤:1)选取适当的开源软件库作为代码支持;2)通过LDA主题模型提取出项目对应的主题作为该项目的特征集合;3)检索各项目中的接口信息,与各项目对应的特征集合建立联系,构成由项目特征集合指向项目接口集合的特征-接口有向图,利用PageRank算法计算接口在项目内部的调用次数作为特征-接口有向图中边的权值;4)在构成特征-接口有向图后,程序开发人员根据待开发项目的特征与所述特征-接口有向图中的特征进行匹配,根据有向图边的指向关系推荐可能的最优接口列表供开发人员选择使用,本发明提高了软件开发的效率,可用于软件开发中。

Description

基于LDA模型和PageRank算法建立特征接口有向图的方法
技术领域
本发明涉及一种项目接口选取方法,特别涉及一种建立特征接口有向图的方法,属于软件工程领域。 
背景技术
当开发人员在开发新的程序时,首先会根据需求分析进行功能模块的划分,之后设定数据单元考虑数据库等步骤。程序开发过程中接口的设置往往也会出现在开发人员的考虑范畴中,那么在这样的背景之下,开发人员在进行了功能模块划分之后,根据开发人员对程序的功能描述来为开发人员推荐程序合适的接口,供开发人员选择,提高软件开发效率。目前在软件开发时,通常会由项目负责人根据项目需求文档手动设置接口,在搜索接口时根据关键字查找,该方法存在查找不全面,检索效率不高,对于代码重用的实现不理想。 
本发明的核心技术是生成“特征-接口”有向图,通过生成的有向图可以实现根据需求的开发的项目特征推荐接口的功能。本发明的核心技术需要提取出项目的特征与开源软件库中的项目接口的重要性,所使用的技术包括LDA主题模型和PageRank算法。LDA主题模型是一种概率语言模型,场应用于文本建模,从文本中发现隐藏的主题信息,本发明中使用LDA主题模型对开源软件库中项目的主题特征进行提取。PageRank算法是一种搜索引擎算法,用于衡量特定网页相对于搜索引擎索引中的其他网页的重要程度,PageRank算法实现了链接价值概念作为排名因素,本发明中PageRank算法应用于计算某个项目特征下的不同接口的调用次数,进行排名。 
根据LDA主题的特性,使用该模型提取项目特征。通过主题模型技术能够识别开发人员的需求特征,同时获取开源软件库中开源项目的特征(主题);利用简单的遍历技术查找出开源软件中的接口构成有向图。而类比于网页链接重要性的计算形式,使用PageRank算法来计算项目中接口的重要程度,将项目的主题特征作为主页面,而接口作为由主页面链接的子页面。利用PageRank技术检索出开发人员需要的对应特征的接口,反馈给开发人员,供其选择使用。 
发明内容
本发明的目的是提供一种基于LDA模型和PageRank算法建立特征接口有向图的方法,根据开发人员提供的程序特征,自动从软件库中推荐适合该特征的程序接口供开发人员使用,从而提高了软件开发的效率,实现代码的接口重用。 
本发明的目的是这样实现的:一种基于LDA模型和PageRank算法建立特征接口有向图的方法,其特征在于,包括如下步骤: 
步骤1) 选取适当的开源软件库作为代码支持;
步骤2) 对选取的开源软件库中的项目,通过LDA主题模型提取出项目对应的主题作为该项目的特征集合;
步骤3) 检索各项目中的接口信息,与各项目对应的特征集合建立联系,构成由项目特征集合指向项目接口集合的特征-接口有向图,利用PageRank算法计算接口在项目内部的调用次数作为特征-接口有向图中边的权值;
步骤4) 在构成特征-接口有向图后,程序开发人员根据待开发项目的特征与所述特征-接口有向图中的特征进行匹配,根据有向图边的指向关系推荐可能的最优接口列表供开发人员选择使用。
作为本发明的进一步限定,简化步骤,提高效率,步骤2)的具体方法如下:LDA模型分别对开源软件库中的项目提取主题时,通过对于LDA参数设置,实现每次只提取一个项目,以该项目为一个文档库,通过LDA模型提取出该项目的主题,然后,依次对开源软件库中的其他开源项目使用同样的方法提取主题;在当前需要提取主题的项目中使用LDA模型主题时,将分布值最高的前两个主题作为最佳特征集合BestFi,最佳特征集合BestFi作为步骤4)中接口的匹配对象。 
作为本发明的进一步限定,简化步骤,提高效率,步骤3)的具体方法如下:遍历当前项目,检索出项目文件中的接口并以“文件名.接口名”的形式定位该接口,建立由最佳特征集合BestFi指向接口集合的特征-接口有向图;特征-接口有向图建立之后,使用PageRank算法统计项目中各接口的调用次数,同时,依据计算值大小对接口进行排序。 
作为本发明的进一步限定,简化步骤,提高效率,步骤4)的具体方法如下:当程序开发人员进行特征匹配时,将开发人员选择的待开发项目的特征集合f与权利要求2中的最佳特征集合BestFi进行匹配,匹配方法为:将特征集合f中的每一个词依次匹配BestFi中对应的词语,当匹配成功词数占特征集合f总词数的百分比大于等于50%时,判定特征集合f与所述最佳特征集合BestFi匹配成功,并根据特征-接口有向图中边的指向为程序开发人员推荐接口列表供程序开发人员自行选择;当程序开发人员选择某个接口之后,根据权利要求3中的定位方式确定具体的接口,并为开发人员推荐该接口。 
与现有技术相比,本发明的有益效果在于,本发明通过LDA主题模型提取主题特征,简化了人工理解代码来提取项目主题的步骤,通过接口关键字搜索接口并将其按照特定格式存储,提取出的主题构成有向图,在需要时通过PageRank算法根据有向图中边的关系排序推荐最优的接口;该项技术带来的优点主要有以下几点: 
1) 为开发人员推荐功能接口,简化了软件开发过程,提高开发效率;
2) 根据开发人员的功能描述为开发人员推荐接口时,能够为开发人员进行功能细化,完善软件的功能;
3) 接口的推荐使用可以帮助开发人员编写可复用性更好的代码;
4) 当项目接口定位好之后,不同模块的开发人员可以先根据接口的定义开发自己的模块,提高开发效率。本发明可用于软件开发中。
附图说明
图1是本发明使用过程流程图。 
图2是本发明中利用LDA主题模型提取主题过程流程图。 
图3是本发明中建立特征-接口有向图过程的流程图。 
图4是根据待开发项目特征检索特征-接口有向图推荐接口过程示意图。 
其中,1LAD提取主题过程,2LDA计算分布值提取BestFi过程,3建立特征-接口有向图过程,4接口定位过程,5特征匹配过程。 
具体实施方式
下面结合附图和具体实施例对本发明的技术方案作出详细说明。 
本发明的方法是通过LDA(Latent Dirichlet Allocation)主题模型提取出开源软件库中的主题,给予项目主题描述,使用LDA模型提取出的主题单词集合作为该项目的特征描述,使用PageRank算法建立提取出的主题特征集合与遍历查找出的接口的有向图并计算出每条边的权值,然后根据权值进行排序,按照开发人员输入的特征关键字检索有向图的顶点,匹配成功则推荐该顶点下的节点(即接口)供开发人员选择,如图1所示。 
一、参数定义 
1、开源软件库文件
假设现有开源软件库(以开源中国中的开源项目的整体作为开源软件库),开源软件库中有n个项目分别为P1、P2…Pn
2、LDA(Latent Dirichlet Allocation)模型参数 
1)使用LDA模型对开源软件库中的软件提取主题特征集合并按照项目编号对主题特征集合进行编号,如项目1提取的主题特征集合为F1,以此类推。
2)LDA模型提取的每条主题列的数目为K,设置为30,提取出尽可能多而全面的主题。 
3) 提取出每条的主题列中的词数w的值域为   ,词数过少主题概括不全面,词数过多冗余。 
4)由LDA计算出的主题分布值大小前两位的主题列构成最佳特征集合,表示为BestFi,i的值与项目编号值相同。 
3、开发人员进行项目开发时,对待开发的项目进行功能描述,将开发人员功能描述的词语作为开发项目的特征集合f,特征集合f中特征词数为N,匹配每一个BestFi集合中的特征词汇,将特征集合f中的每个词语分别与BestFi集合中的每个特征词语进行匹配,匹配相似的匹配值n加1,当匹配值 时,将该BestFi集合定义为最佳匹配集合,查找出最佳匹配集合,检索特征-接口有向图的子节点,根据子节点中接口定位前往对应项目文件中,将接口列表反馈给开发人员,开发人员自行选择合适的接口,根据接口的定位为开发人员推荐被选择的接口。 
二、方法流程 
利用LDA模型和PageRank算法建立特征接口有向图,为程序开发人员推荐适当接口的过程主要分为两个步骤:建立特征接口有向图和根据需求推荐接口。
1、建立特征-接口有向图 
1) 选定开源软件库地址,检索软件库中项目,使用LDA模型依次对项目P1、P2…Pn进行主题提取操作,对于LDA参数设置每次只对一个项目进行操作,以该项目为一个文档库。通过LDA模型提取出一个项目的特征(或者称之为主题)之后,依次对开源库中的开源项目使用同样的方法提取特征并进行编号,分别得出对应项目的全部主题列分别编号为F1、F2…Fn;例如开源软件库中有n个项目,第一个项目是关于音乐播放软件的,通过LDA模型提取出的主题集合为{F11:{play,next,stop},F12:{load,download},F13:{Lyricsdownload,singer},…}我们将这个主题特征集合定义为F1。对于其他开源软件进行相同的操作。主题特征集合的定义下标不同;
2) LDA模型提取主题特征过程中获得每一条主题列的主题分布值,取主题分布值最高的前两个主题列作为最佳特征集合BestFi。如a)举例集合F1中,F11与F12的主题分布值为前两位,实际上由F1集合可以看出F13实际上对于音乐播放软件而言不是必须的,而是少数几个播放软件的特殊功能;最佳特征集合BestF1=F1∪F2,如图2所示;
3) 遍历当前项目,检索出项目文件中的接口并以“文件名.接口名”的形式定位该接口,接口的遍历通过接口关键字Interface或者类实现接口来查找。“文件名.接口名”的形式作为集合形式保存下来,其中文件名内容包含了当前项目名,项目下包名,包中类名每个单项之间以“.”隔开;形式如下:ProjectName.PackageName.ClassName.InterfaceName,例如开源软件库中存在某音乐播放软件名为Music,项目中有包名为Play(放音乐播放类),包下有用于调整时间轴的类名为SetTime,在类文件中设置了接口setTime。那么对于该接口检索出的“文件名.接口名”为:Music.Play.SetTime.setTime,做有向边从BestF1指向接口,形成BestF1->接口的有向图,如图3所示;
4) 有向图建立之后我们使用PageRank算法计算有向图中最佳特征集合BestF1 与各个接口的链接次数,即类似于PageRank算法用于网页搜索时计算网页与网页之间的链接次数来确定网页的重要性,同理能够计算出同一特征下接口的重要性,计算值越大说明接口被调用的次数越多也就越重要应当首先被推荐,并依据计算值大小对接口进行排名,例如通过LDA模型提取出最佳特征集合BestF1,BestF1下调用了接口1的次数为nj,调用接口2的次数为ni,且nj>ni,那么当推荐是应当首先推荐接口1,其调用次数多于接口2,如图3所示。
2、根据用户需求推荐接口 
在用户端,当程序开发人员进行特征选择时,将开发人员选择的主题特征集合定义为f与最佳特征集合BestF1进行匹配,按照上述  的条件判定匹配成功,并依据有向图边的指向为用户推荐排序后的接口,依据节点中接口的定位内容查找接口推荐给开发者。按照上述例子,BestF1={play,next,stop,load,download},若用户进行特征选择时,开发人员选择的主题特征集合为f={Music,play},用户需要的是播放功能,匹配后发现单词play匹配成功则为用户推荐BestF1下的功能为播放音乐的接口。
本发明并不局限于上述实施例,在本发明公开的技术方案的基础上,本领域的技术人员根据所公开的技术内容,不需要创造性的劳动就可以对其中的一些技术特征作出一些替换和变形,这些替换和变形均在本发明的保护范围内。 

Claims (4)

1.一种基于LDA模型和PageRank算法建立特征接口有向图的方法,其特征在于,包括如下步骤:
步骤1) 选取适当的开源软件库作为代码支持;
步骤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中的定位方式确定具体的接口,并为开发人员推荐该接口。
CN201410156746.1A 2014-04-18 2014-04-18 基于LDA模型和PageRank算法建立特征接口有向图的方法 Active CN103927177B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201410156746.1A CN103927177B (zh) 2014-04-18 2014-04-18 基于LDA模型和PageRank算法建立特征接口有向图的方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201410156746.1A CN103927177B (zh) 2014-04-18 2014-04-18 基于LDA模型和PageRank算法建立特征接口有向图的方法

Publications (2)

Publication Number Publication Date
CN103927177A true CN103927177A (zh) 2014-07-16
CN103927177B CN103927177B (zh) 2017-01-25

Family

ID=51145409

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201410156746.1A Active CN103927177B (zh) 2014-04-18 2014-04-18 基于LDA模型和PageRank算法建立特征接口有向图的方法

Country Status (1)

Country Link
CN (1) CN103927177B (zh)

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104572111A (zh) * 2015-01-20 2015-04-29 扬州大学 一种基于相关主题模型的程序理解和特征定位方法
CN105487913A (zh) * 2015-12-18 2016-04-13 浙江工商大学 一种基于加权a指数的软件包重要性度量方法
CN106294662A (zh) * 2016-08-05 2017-01-04 华东师范大学 基于上下文感知主题的查询表示及混合检索模型建立方法
CN109814855A (zh) * 2017-11-21 2019-05-28 南京大学 一种基于对象分类和自适应子图匹配的api推荐方法
CN110554868A (zh) * 2019-09-11 2019-12-10 北京航空航天大学 一种软件复用代码检测方法及***
CN112051986A (zh) * 2020-08-26 2020-12-08 西安电子科技大学 基于开源知识的代码搜索推荐装置及方法
CN116820555A (zh) * 2023-08-29 2023-09-29 腾讯科技(深圳)有限公司 应用程序的分包方法、装置、电子设备及可读存储介质

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101645037B (zh) * 2009-09-11 2011-06-29 兰雨晴 基础软件平台应用程序接口集成测试覆盖分析方法
CN102629194B (zh) * 2011-12-26 2015-07-01 天津大学 面向移动终端的应用商店转接器

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
ADRIENGUILLE等: "SONDY : An Open Source Platform for Social Dynamics Mining and Analysis", 《SIGMOD’13》 *
尹莉: "一种基于PageRank算法的期刊评价理论模型", 《情报科学》 *

Cited By (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104572111A (zh) * 2015-01-20 2015-04-29 扬州大学 一种基于相关主题模型的程序理解和特征定位方法
CN104572111B (zh) * 2015-01-20 2017-12-01 扬州大学 一种基于相关主题模型的程序理解和特征定位方法
CN105487913A (zh) * 2015-12-18 2016-04-13 浙江工商大学 一种基于加权a指数的软件包重要性度量方法
CN105487913B (zh) * 2015-12-18 2018-07-31 浙江工商大学 一种基于加权a指数的软件包重要性度量方法
CN106294662A (zh) * 2016-08-05 2017-01-04 华东师范大学 基于上下文感知主题的查询表示及混合检索模型建立方法
CN109814855A (zh) * 2017-11-21 2019-05-28 南京大学 一种基于对象分类和自适应子图匹配的api推荐方法
CN110554868A (zh) * 2019-09-11 2019-12-10 北京航空航天大学 一种软件复用代码检测方法及***
CN112051986A (zh) * 2020-08-26 2020-12-08 西安电子科技大学 基于开源知识的代码搜索推荐装置及方法
CN112051986B (zh) * 2020-08-26 2021-07-27 西安电子科技大学 基于开源知识的代码搜索推荐装置及方法
CN116820555A (zh) * 2023-08-29 2023-09-29 腾讯科技(深圳)有限公司 应用程序的分包方法、装置、电子设备及可读存储介质
CN116820555B (zh) * 2023-08-29 2023-11-28 腾讯科技(深圳)有限公司 应用程序的分包方法、装置、电子设备及可读存储介质

Also Published As

Publication number Publication date
CN103927177B (zh) 2017-01-25

Similar Documents

Publication Publication Date Title
Zhang et al. Ad hoc table retrieval using semantic similarity
CN101876981B (zh) 一种构建知识库的方法及装置
CN103927177A (zh) 基于LDA模型和PageRank算法建立特征接口有向图的方法
US9495345B2 (en) Methods and systems for modeling complex taxonomies with natural language understanding
CN102184169B (zh) 用于确定字符串信息间相似度信息的方法、装置和设备
US8918348B2 (en) Web-scale entity relationship extraction
US8775442B2 (en) Semantic search using a single-source semantic model
Deshpande et al. Text summarization using clustering technique
US20130124493A1 (en) Search Method, Search Apparatus and Search Engine System
CN105493075A (zh) 基于所标识的实体的属性值检索
CN105468605A (zh) 一种实体信息图谱生成方法及装置
CN104978332B (zh) 用户生成内容标签数据生成方法、装置及相关方法和装置
CN101727447A (zh) 基于url的正则表达式的生成方法和装置
CN102419778A (zh) 一种挖掘查询语句子话题并聚类的信息搜索方法
CN108509405A (zh) 一种演示文稿的生成方法、装置以及设备
CN104281702A (zh) 基于电力关键词分词的数据检索方法及装置
US11886515B2 (en) Hierarchical clustering on graphs for taxonomy extraction and applications thereof
CN105389328B (zh) 一种大规模开源软件搜索排序优化方法
US20130151519A1 (en) Ranking Programs in a Marketplace System
Zhang et al. An approach of service discovery based on service goal clustering
CN109271624A (zh) 一种目标词确定方法、装置及存储介质
CN103377225A (zh) 知识库***的构建方法和设备
US8875007B2 (en) Creating and modifying an image wiki page
WO2006106740A1 (ja) 情報処理装置および方法、並びにプログラム記録媒体
US20240168999A1 (en) Hierarchical clustering on graphs for taxonomy extraction and applications thereof

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant