CN103729473B - 一种基于lda主题模型的相关软件历史数据提取方法 - Google Patents

一种基于lda主题模型的相关软件历史数据提取方法 Download PDF

Info

Publication number
CN103729473B
CN103729473B CN201410029273.9A CN201410029273A CN103729473B CN 103729473 B CN103729473 B CN 103729473B CN 201410029273 A CN201410029273 A CN 201410029273A CN 103729473 B CN103729473 B CN 103729473B
Authority
CN
China
Prior art keywords
software
theme
historical data
topic model
lda
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.)
Active
Application number
CN201410029273.9A
Other languages
English (en)
Other versions
CN103729473A (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 Gezhi Photoelectric Technology Co.,Ltd.
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 CN201410029273.9A priority Critical patent/CN103729473B/zh
Publication of CN103729473A publication Critical patent/CN103729473A/zh
Application granted granted Critical
Publication of CN103729473B publication Critical patent/CN103729473B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/70Software maintenance or management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/30Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
    • G06F16/31Indexing; Data structures therefor; Storage structures
    • G06F16/313Selection or weighting of terms for indexing

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Debugging And Monitoring (AREA)
  • Stored Programmes (AREA)

Abstract

本发明提供了一种基于LDA主题模型的相关软件历史数据提取方法,充分利用LDA技术对软件故障库、软件版本控制库、以及开发人员通信库进行分析,提取这些软件演化历史库中的主题,然后根据这些主题与当前维护请求和当前软件版本进行相似性的比较和分析,把具有较相关的软件历史数据提取出来,基于这些相关数据的分析,可提高软件维护和演化各种分析活动的精确性和有效性,该技术在实际应用中不受程序语言约束,可应用于各种编程语言的软件中,提高了该技术可应用的范围。

Description

一种基于LDA主题模型的相关软件历史数据提取方法
技术领域
本发明涉及一种软件维护方法,特别涉及一种软件历史数据提取方法。
背景技术
当前很少有软件是从零开发,大部分软件都是经过不断的修改和升级而进行演化的,软件演化的本质也即是软件修改,而每一次的软件修改都需要完整准确地记录在软件演化历史库中,这些软件历史库包括软件的源代码、软件的修改记录、维护或开发人员的通信记录等。这些软件开发和维护历史记录往往可以用于评估和实施新的修改请求。具体地,用户提出某个新的维护请求,开发人员在对该请求的评估和实施时往往会参考已有软件历史库中一些数据来指导当前维护请求的评估和实施。而随着软件的演化,软件历史库越来越庞大,哪些信息是有用的,哪些信息是过时的,很难去辨别。而软件演化历史库在软件维护和演化过程中是必不可少的信息分析来源,目前大量的在软件维护和演化方面的研究和应用都是基于软件演化历史数据的挖掘和分析进行的。例如,利用软件演化历史库中的共同修改可以指导开发人员去分析某个修改所需进行的共同修改元素,软件演化历史库中的故障跟踪库可帮助开发人员预测当前软件中包含的可能故障,软件演化历史库可用来帮助分析某个维护请求应由哪个开发人员去实施比较合适,等。所以,参考软件演化历史库中的已有相关历史数据能有效地指导当前维护请求。
但是到目前为止,大部分研究或应用都是关于怎么使用软件演化历史库来指导软件维护和演化活动的,很少有关于如何从软件历史库中选取相关当前维护请求和当前软件的软件历史数据。尽管研究表明使用软件演化历史库可有效改进传统的基于单一的当前软件版本的分析技术,但是,这些软件维护与演化活动如果直接使用软件演化历史数据进行分析,其精度还不是很高,并不能对实际的维护请求给出很有效的指导作用。当前关于这方面的研究主要是选取最近的几个软件版本历史数据来指导当前软件维护请求的评估与实施。但是,当前的维护请求并不一定就与最近的几个软件版本数据相关,它可能与更前面的历史数据相关或者相似,这样,参考更前面的历史数据对当前维护请求更具指导意义,这是软件历史相关数据选取不全面的原因造成的。另外,如果在最近的几个软件历史版本中,有一些与当前软件版本相背或相差甚大的软件修改版本如果也选择作为分析对象进行分析,就会造成当前维护请求的干扰,会造成当前维护请求评估结果的很大偏差,这是不相干的软件历史数据造成评估结果精确性差的原因。因此,我们需要采取有效的方法从软件演化历史库中选择与当前软件版本和当前维护请求相关的历史数据进行分析,这样,可有效地改进软件维护和演化各种活动的精确性和有效性。
现有技术中的软件演化历史库包括故障跟踪库、通信库以及软件版本控制库,故障跟踪库中主要保存的是已有的一些故障的修改和处理;通信库中主要保存开发人员在开发过程中保存的关于软件系统开发的交流信息;软件版本控制库是存储整个软件升级的各个版本的演化情况。
隐含狄利克雷分布(Latent Dirichlet Allocation,简称LDA)是一种分析非结构化文本语料库的概率模型。该模型可以提取概括整个文档的主题。我们利用隐含狄利克雷分布提取不同软件数据的主题,然后通过相似度计算与当前软件版本和维护请求相关的历史数据作为本次维护请求的评估和实施数据来源,这样可有效改进软件维护和演化各种活动的精确性和有效性。
发明内容
本发明的目的是提供一种基于LDA主题模型的相关软件历史数据提取方法,利用主题模型中的隐含狄利克雷分布(LDA)技术有效地进行相关软件历史数据的提取,直接生成一种高质量、高效的相关软件历史数据集,提高软件维护与演化的精度。
本发明的目的是这样实现的:一种基于LDA主题模型的相关软件历史数据提取方法,其特征在于,包括以下步骤:
步骤1:将软件当前所需的维护请求进行预处理,所述预处理过程包括将请求语句进行分解,表示成用于相似度计算的一个由单词组成的向量MR;
步骤2:从软件演化历史库中选取故障跟踪库和通信库进行分析;通过LDA主题模型对故障跟踪库和通信库进行分析,提取潜在主题,故障跟踪库所提取的主题用矩阵B表示,通信库所提取的主题用矩阵C表示,然后,分别计算矩阵B、矩阵C中和向量MR中相似的元素,识别出与向量MR中维护请求元素相对应的故障跟踪库中的故障元素Bug以及通信库中的通信元素Comm;
步骤3:利用LDA主题模型从当前软件版本中提取潜在主题,所提取的主题用向量Cu表示;
步骤4:利用LDA主题模型对软件版本控制库进行分析,提取潜在主题,所提取的主题用矩阵U表示;然后,计算矩阵U中和所述向量Cu相似的软件版本元素V2;
步骤5:找出步骤2中计算得到故障元素Bug和通信元素Comm所对应的软件版本元素V1,另外,找出步骤4中计算得到的软件版本元素V2,最终,计算得出所有与当前维护请求和当前软件版本相关的的软件数据为V=V1∪V2。
作为本发明的限定,向量元素相似性计算采用余弦相似性模型进行计算,即通过测量两个向量内积空间的夹角的余弦值来度量它们之间的相似性。
作为本发明的进一步限定,本发明中程序元素的数据粒度层次均是文件层次。本发明中关于当前的修改请求的各种软件维护和演化活动可基于这些相关文件进行分析和处理。
作为本发明的进一步限定, 在利用LDA模型进行主题提取时,将软件演化历史库中的各种文件作为文本语料库输入,在利用LDA分析这些文件前,首先要对这些文件进行预处理,如提取标识符、注释;将软件中的关键词(int,double,等)和常用词(the,it,等)删除;然后设置需要提取主题的个数,根据隐含狄利克雷分布对这些非结构化文本语料库进行分析,提取不同软件数据库的主题。
与现有技术相比,本发明的有益效果在于:
(1)该发明直接从已有的大量软件历史数据中提取与当前软件版本和维护请求相关的历史数据,它既考虑了当前软件版本的实际情况,也考虑了当前维护请求的类型和内容,基于这些有效数据的分析,可提高软件维护和演化各种分析活动的精确性和有效性;
(2)该发明所提出的软件历史相关数据提取是基于LDA主题模型进行的,目前LDA主题模型已经成熟并有很多现有的成熟工具,因此,该方法实现比较容易;
(3)本发明提供了可选的历史数据分析的粒度层次。本发明中的程序元素粒度可以是文件、类、方法、甚至可以是语句层次,因此,在实际软件历史数据提取和分析时,可根据实际的软件维护和演化活动、成本等现实情况,选择相应的粒度层次进行历史数据的提取,为本发明提供了灵活的选择框架;本发明可以应用于各种编程语言的软件维护中。
附图说明
图1为基于LDA主题模型的相关软件历史数据提取过程示意图。
图2为软件维护与演化活动流程图。
具体实施方式
本发明是一种基于LDA主题模型的相关软件历史数据提取方法,基于所提取的软件历史数据,软件维护和演化各种活动都可以基于这些数据进行分析,图2是软件维护和演化的各种活动,包括对原系统进行软件理解、影响分析、修改实例,最终得到新系统,修改实例过程中还会进行重构以及修改传播分析,影响分析过程若无影响则返回原系统,影响分析过程若有影响,则进行修改实例操作,这些活动都可基于软件演化历史的数据进行分析,因此,软件演化历史数据的精确性和完整性影响着这些软件维护与演化活动的有效性。
本发明在提取相关软件历史数据时使用的是LDA主题模型技术,它可以将文档集中每篇文档的主题按照概率分布的形式给出,同时它是一种无监督学习算法,在训练时不需要手工标注的训练集,需要的仅仅是文档集以及指定主题的数量k即可;此外LDA的另一个优点则是,对于每一个主题均可找出一些词语来描述它;LDA是一种典型的词袋模型,即它认为一篇文档是由一组词构成的一个集合,词与词之间没有顺及先后的关系,一篇文档可以包含多个主题,文档中每一个词都由其中的一序以个主题生成。
如图1所示,利用LDA对软件演化历史库中的信息进行主题提取,并与当前软件维护请求和当前软件版本进行近似度匹配,从而提取出相关的软件历史数据。在利用LDA模型进行主题提取时,将软件演化历史库中的文件作为文本语料库输入,在利用LDA分析这些文件前,首先对所述文件进行过滤预处理,如提取标识符、注释;将软件中的一些关键词和常用词删除;然后设置需要提取主题的个数,根据隐含狄利克雷分布对这些非结构化文本语料库进行分析,提取不同软件数据库的主题。
具体技术方案如下:
步骤1:将软件当前所需的维护请求进行预处理,所述预处理过程包括将请求语句进行分解,表示成用于相似度计算的一个由单词组成的向量MR,假设MR={mr1, mr2, mr3, mr4};
步骤2:从软件演化历史库中选取故障跟踪库和通信库进行分析;通过LDA主题模型对故障跟踪库和通信库进行分析,提取潜在主题,故障跟踪库所提取的主题用矩阵B表示,通信库所提取的主题用矩阵C表示,然后,分别计算矩阵B、矩阵C中和向量MR中相似的元素,元素相似性计算采用余弦相似性模型进行计算,本实施例中所提到的元素的数据粒度层次均是文件层次,识别出与向量MR中元素相对应的故障跟踪库中的故障元素Bug以及通信库中的通信元素Comm,假设Bug={b1, b2, b3, b4},Comm={c1, c2, c3};
步骤3:利用LDA主题模型从当前软件版本中提取潜在主题,所提取的主题用向量Cu表示,假设Cu={cu1, cu2, cu3, cu4, cu5, cu6};
步骤4:利用LDA主题模型对软件版本控制库进行分析,提取潜在主题,所提取的主题用矩阵Uc表示;然后,计算矩阵Uc中和所述向量Cu相似的软件版本元素V2;
步骤5:找出步骤2中计算得到故障元素Bug和通信元素Comm所对应的软件版本元素V1,假设V1={v2,v3,v4,v5},另外,找出步骤4中计算得到的软件版本V2,假设V2={v1,v2,v3},最终,计算得出所有与当前维护请求和当前软件版本相关的的软件数据为V=V1∪V2={v1,v2,v3,v4,v5};
到此,我们直接得到了与当前软件维护请求和当前软件版本相关的软件历史数据。
本发明并不局限于上述实施例,在本发明公开的技术方案的基础上,本领域的技术人员根据所公开的技术内容,不需要创造性的劳动就可以对其中的一些技术特征作出一些替换和变形,这些替换和变形均在本发明的保护范围内。

Claims (4)

1.一种基于LDA主题模型的相关软件历史数据提取方法,其特征在于,包括以下步骤:
步骤1:将软件当前所需的维护请求进行预处理,所述预处理过程包括将请求语句进行分解,表示成用于相似度计算的一个由单词组成的向量MR;
步骤2:从软件演化历史库中选取故障跟踪库和通信库进行分析;通过LDA主题模型对故障跟踪库和通信库进行分析,提取潜在主题,故障跟踪库所提取的主题用矩阵B表示,通信库所提取的主题用矩阵C表示,然后,分别计算矩阵B、矩阵C中和向量MR中相似的元素,识别出与向量MR中维护请求元素相对应的故障跟踪库中的故障元素Bug以及通信库中的通信元素Comm;
步骤3:利用LDA主题模型从当前软件版本中提取潜在主题,所提取的主题用向量Cu表示;
步骤4:利用LDA主题模型对软件版本控制库进行分析,提取潜在主题,所提取的主题用矩阵U表示;然后,计算矩阵U中和所述向量Cu相似的软件版本元素V2;
步骤5:找出步骤2中计算得到故障元素Bug和通信元素Comm所对应的软件版本元素V1,另外,找出步骤4中计算得到的软件版本元素V2,最终,计算得出所有与当前维护请求和当前软件版本相关的的软件数据为V=V1∪V2。
2.根据权利要求1所述的一种基于LDA主题模型的相关软件历史数据提取方法,其特征在于,向量元素相似性计算采用余弦相似性模型进行计算。
3.根据权利要求1所述的一种基于LDA主题模型的相关软件历史数据提取方法,其特征在于,本发明中元素的数据粒度层次均是文件层次。
4.根据权利要求1所述的一种基于LDA主题模型的相关软件历史数据提取方法,在利用LDA模型进行主题提取时,将软件演化历史库中的文件作为文本语料库输入,在利用LDA分析这些文件前,首先对所述文件进行过滤预处理,如提取标识符、注释;将软件中的一些关键词和常用词删除;然后设置需要提取主题的个数,根据隐含狄利克雷分布对这些非结构化文本语料库进行分析,提取不同软件数据库的主题。
CN201410029273.9A 2014-01-22 2014-01-22 一种基于lda主题模型的相关软件历史数据提取方法 Active CN103729473B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201410029273.9A CN103729473B (zh) 2014-01-22 2014-01-22 一种基于lda主题模型的相关软件历史数据提取方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201410029273.9A CN103729473B (zh) 2014-01-22 2014-01-22 一种基于lda主题模型的相关软件历史数据提取方法

Publications (2)

Publication Number Publication Date
CN103729473A CN103729473A (zh) 2014-04-16
CN103729473B true CN103729473B (zh) 2016-11-09

Family

ID=50453547

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201410029273.9A Active CN103729473B (zh) 2014-01-22 2014-01-22 一种基于lda主题模型的相关软件历史数据提取方法

Country Status (1)

Country Link
CN (1) CN103729473B (zh)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105095162A (zh) * 2014-05-19 2015-11-25 腾讯科技(深圳)有限公司 文本相似度确定方法、装置、电子设备及系统
CN104090775B (zh) * 2014-07-24 2017-05-03 扬州大学 一种基于动态主题模型的软件演化建模方法
CN104461558B (zh) * 2014-12-22 2017-06-23 扬州大学 一种基于协相关主题模型的面向软件修改的个性化任务推荐方法
CN104572111B (zh) * 2015-01-20 2017-12-01 扬州大学 一种基于相关主题模型的程序理解和特征定位方法
CN107103363B (zh) * 2017-03-13 2018-06-01 北京航空航天大学 一种基于lda的软件故障专家系统的构建方法
CN107515898B (zh) * 2017-07-22 2021-06-04 复旦大学 基于数据多样性和任务多样性的轮胎企业销售预测方法
CN109144564B (zh) * 2018-09-08 2022-03-25 中山大学 一种基于历史修改模式的修改影响分析推荐方法及其系统

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102436505A (zh) * 2010-12-16 2012-05-02 微软公司 导出文档相似性索引
CN103246603A (zh) * 2013-03-21 2013-08-14 中国科学院软件研究所 一种缺陷跟踪系统的软件缺陷报告自动分发方法

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8209665B2 (en) * 2008-04-08 2012-06-26 Infosys Limited Identification of topics in source code
US20130179223A1 (en) * 2010-09-14 2013-07-11 Telefonaktiebolaget L M Ericsson (Publ) Method and arrangement for segmentation of telecommunication customers

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102436505A (zh) * 2010-12-16 2012-05-02 微软公司 导出文档相似性索引
CN103246603A (zh) * 2013-03-21 2013-08-14 中国科学院软件研究所 一种缺陷跟踪系统的软件缺陷报告自动分发方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
《基于主题的文档与代码间关联关系的提取研究》;许冶冰等;《计算机工程与应用》;20121031;第70-76页 *

Also Published As

Publication number Publication date
CN103729473A (zh) 2014-04-16

Similar Documents

Publication Publication Date Title
CN103729473B (zh) 一种基于lda主题模型的相关软件历史数据提取方法
CN109145294B (zh) 文本实体识别方法及装置、电子设备、存储介质
CN107861939B (zh) 一种融合词向量和主题模型的领域实体消歧方法
CN107808011B (zh) 信息的分类抽取方法、装置、计算机设备和存储介质
CN112528034B (zh) 一种基于知识蒸馏的实体关系抽取方法
Veenstra et al. Fast NP chunking using memory-based learning techniques
CN109670191A (zh) 机器翻译的校准优化方法、装置与电子设备
CN110008474B (zh) 一种关键短语确定方法、装置、设备及存储介质
Wu et al. A hybrid linear text segmentation algorithm using hierarchical agglomerative clustering and discrete particle swarm optimization
CN108875059A (zh) 用于生成文档标签的方法、装置、电子设备和存储介质
CN111984792A (zh) 网站分类方法、装置、计算机设备及存储介质
CN110866107A (zh) 素材语料的生成方法、装置、计算机设备和存储介质
Alrabaee et al. Bineye: Towards efficient binary authorship characterization using deep learning
Taj et al. To apply data mining for classification of crowd sourced software requirements
CN115098556A (zh) 用户需求匹配方法、装置、电子设备及存储介质
US9396177B1 (en) Systems and methods for document tracking using elastic graph-based hierarchical analysis
CN113780471A (zh) 数据分类模型的更新及应用方法、设备、存储介质及产品
CN111930944B (zh) 文件标签分类方法及装置
CN101840402B (zh) 从多语言网站构建多语言的对象层次结构的方法和系统
Wang et al. Sentence-Ranking-Enhanced Keywords Extraction from Chinese Patents.
CN113569578B (zh) 一种用户意图识别方法、装置和计算机设备
CN111198934A (zh) 一种信息处理方法及相关设备
CN114090769A (zh) 实体挖掘方法、装置、计算机设备和存储介质
Choi et al. Does active learning reduce human coding?: A systematic comparison of neural network with nCoder
Andrian et al. Implementation Of Naïve Bayes Algorithm In Sentiment Analysis Of Twitter Social Media Users Regarding Their Interest To Pay The Tax

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
TR01 Transfer of patent right

Effective date of registration: 20210525

Address after: Yangzhou xiaonaxiong robot Co., Ltd., 3 / F, building 9, 20 Hongyang Road, Yangzhou Economic Development Zone, Jiangsu Province, 225000

Patentee after: Yangzhou xiaonaxiong robot Co.,Ltd.

Address before: No.88, South University Road, Yangzhou Development Zone, Jiangsu Province 225009

Patentee before: YANGZHOU University

TR01 Transfer of patent right
TR01 Transfer of patent right

Effective date of registration: 20210707

Address after: Yangzhou Gezhi Optoelectronic Technology Co., Ltd., 2601, 217 Kaifa West Road, high tech Industrial Development Zone, Yangzhou City, Jiangsu Province, 225000

Patentee after: Yangzhou Gezhi Photoelectric Technology Co.,Ltd.

Address before: Yangzhou xiaonaxiong robot Co., Ltd., 3 / F, building 9, 20 Hongyang Road, Yangzhou Economic Development Zone, Jiangsu Province, 225000

Patentee before: Yangzhou xiaonaxiong robot Co.,Ltd.

TR01 Transfer of patent right