CN110516722A - 一种基于主动学习的需求与代码之间可追踪性的自动生成方法 - Google Patents
一种基于主动学习的需求与代码之间可追踪性的自动生成方法 Download PDFInfo
- Publication number
- CN110516722A CN110516722A CN201910752552.0A CN201910752552A CN110516722A CN 110516722 A CN110516722 A CN 110516722A CN 201910752552 A CN201910752552 A CN 201910752552A CN 110516722 A CN110516722 A CN 110516722A
- Authority
- CN
- China
- Prior art keywords
- sample
- training set
- active learning
- classifier
- module
- 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
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F18/00—Pattern recognition
- G06F18/20—Analysing
- G06F18/21—Design or setup of recognition systems or techniques; Extraction of features in feature space; Blind source separation
- G06F18/214—Generating training patterns; Bootstrap methods, e.g. bagging or boosting
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F18/00—Pattern recognition
- G06F18/20—Analysing
- G06F18/24—Classification techniques
- G06F18/241—Classification techniques relating to the classification model, e.g. parametric or non-parametric approaches
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/20—Software design
- G06F8/22—Procedural
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Life Sciences & Earth Sciences (AREA)
- Artificial Intelligence (AREA)
- Bioinformatics & Cheminformatics (AREA)
- Bioinformatics & Computational Biology (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Evolutionary Biology (AREA)
- Evolutionary Computation (AREA)
- Machine Translation (AREA)
Abstract
本发明公开了一种基于主动学习的需求与代码之间可追踪性的自动生成方法,属于软件工程技术领域,包括对要建立可追性的源制品和目标制品进行预处理;通过基于池的主动学习方法生成训练集;建立一组可以体现追踪链特性的特征,特征包括两类:基于IR的特征和查询质量特征;利用再平衡技术平衡训练集中数据;利用随机森林分类算法在训练集上训练出分类器;通过分类器将追踪链自动的分类为有效和无效;实现了在减少追踪链标记数量的同时,可以保持较高的追踪链创建的准确性,本发明给出了文本预处理的过程及训练分类器所需的特征,同时也给出了如何运用主动学习的方法训练分类器。
Description
技术领域
本发明属于软件工程技术领域,尤其涉及一种基于主动学习的需 求与代码之间可追踪性的自动生成方法。
背景技术
软件的可追性生成(Traceability Link Recovery)是指在源制品S (例如,需求)和目标制品T(例如,代码)之间建立关系,软件可追性 支持的活动包括变更影响分析、依赖影响分析、程序分析、测试用例 覆盖、需求覆盖等。软件的可追性生成通常需要人在S×T条可能 的追踪链(Possible traceability links)中识别出有效的(Valid)追踪 链(即,两个制品之间存在关联)。一个大型的项目可能存在成百上 千的可能的追踪链,因此,人工的去识别追踪链的有效性是十分困难 的。为了应对这一挑战,众多的研究团队通过信息检索,即IR技术, 进行可追踪性的自动生成。虽然经过多年的研究,基于IR的方法准 确性依然不是很高。
因此,一些团队开始提出使用机器学习的方法进行可追性的自动 生成。他们利用项目中已经存在追踪链训练分类器。然后,通过分类 器把可能的追踪链分类为有效和无效(Invalid)(即,两个制品之间不 存在关联)。
目前比较成熟的基于机器学习进行可追踪性生成的研究主要有: Cleland-Huang等人提出了一种概率分类器,该分类器针对非功能需 求的一组指示词进行训练,随后用于建立需求和代码之间的关联关系。 Mills等人利用IR相关特征训练出分类器,随后用于识别每条追踪链 的有效性。虽然上述方法明显优于传统的基于IR的方法,但它们都 依赖于项目中已存在的大量追踪链,需要大量的去标记用于训练的追 踪链。
发明内容
本发明的目的是提供一种基于主动学习的需求与代码之间可追 踪性的自动生成方法,解决了在减少追踪链标记数量的同时,可以保 持较高的追踪链创建的准确性的技术问题。
为实现上述目的,本发明采用如下技术方案:
一种基于主动学习的需求与代码之间可追踪性的自动生成方法, 包括如下步骤:
步骤1:建立服务器集群,在服务器集群中建立文本提取模块、文 本预处理模块、训练集生成模块、特征提取模块、数据平衡模块、分 类器模块和标识模块;
步骤2:文本提取模块从需求和代码中提取文本;
步骤3:文本预处理模块采用信息检索中的文本预处理方法对文本 进行预处理;
步骤4:训练集生成模块分析需求和代码间可能存在的追踪链,将 每一条追踪链均视为样本,训练模块标记并选取一部分追踪链作为初 始训练样本,然后,通过主动学习的方法选择新的样本标识后加入初 始的训练集,生成完整的训练集;
步骤5:在特征提取模块中预设一组可以表现追踪链的有效性的特 征,特征包括信息检索特征和查询质量特征;
步骤6:数据平衡模块对完整训练集中的样本进行再平衡,使训练 集中的有效追踪链与无效追踪链之间的数量得到更平衡的表示;
步骤7:分类器模块采用RandomForest算法在完整训练集上训练 出一个可以预测追踪链有效性的分类器;
步骤8:标识模块根据步骤7中得出的分类器对所有追踪链进行分 类,标识出有效追踪链和无效追踪链。
优选的,在执行步骤2时,所述文本预处理方法包括标识符拆分、 特殊字段与停用词消除以及词性还原和词根获取。
优选的,在执行步骤6时,使用少数类过采样技术对所述完整训 练集中的样本进行数据的再平衡。
优选的,在执行步骤4时,采用基于池的主动学习方法,根据已 标记的样本生成分类器,再根据分类器的反馈自动从样本池中选择样 本进行标记,所述样本池为未标记的样本集合。
本发明所述的一种基于主动学习的需求与代码之间可追踪性的自 动生成方法,在减少追踪链标记数量的同时,可以保持较高的追踪链 创建的准确性,本发明给出了文本预处理过程及训练分类器所需的特 征,同时也给出了如何运用主动学习的方法训练分类器,相对于传统 的基于机器学习的方法,本发明的需要更少的人工参与,并且其准确 性要优于基于IR的方法。
附图说明
图1是本发明的数据预处理流程图;
图2是本发明的基于主动学习的方法的流程图;
图3是基于流的主动学习的流程图;
图4是本发明的基于池的主动学习的流程图;
图5是本发明的“插值”示例的示意图。
具体实施方式
如图1-图5所示的一种基于主动学习的需求与代码之间可追踪性 的自动生成方法,包括如下步骤:
步骤1:建立服务器集群,在服务器集群中建立文本提取模块、文 本预处理模块、训练集生成模块、特征提取模块、数据平衡模块、分 类器模块和标识模块;
步骤2:文本提取模块从需求和代码中提取文本;
对于代码中的每个类,文本提取模块抽取一个包含类名、函数名、 注释的文档;
对于每条需求,文本提取模块抽取一个包含题目和内容的文档;对 于有结构的需求抽取其前置条件、主要流程、以及分支流程,对于无 结构的需求直接引入所有文本信息。
步骤3:文本预处理模块采用信息检索中的文本预处理方法对文本 进行预处理;
对所有文本都使用IR技术进行预处理,包括标识符拆分、特殊字 段与停用词消除以及词性还原和词根获取。
步骤4:训练集生成模块分析需求和代码间可能存在的追踪链,将 每一条追踪链均视为样本,训练模块标记并选取一部分追踪链作为初 始训练样本,然后,通过主动学习的方法选择新的样本标识后加入初 始的训练集,生成完整的训练集;
使用scikit-learn提供的算法随机选择样本建立初始训练集;
主动学习的方法需要设置初始的训练集,初始训练集的大小需要人 为的设置,本实施例将初始的训练集大小设置为总的可能的追踪链条 数的6%,然后,使用scikit-learn算法随机选择出6%的样本建立初始 训练集。
主动学习允许专家迭代地标记未标记的样本,并且可以在每次迭代 过程中改进分类器。对于样本集D={x1,x2,…,xn},首先,随机 选择少量样本进行标记以初始化一个标记样本集合。本实施例用Dl表示该标记的样本集合,那么未标记的样本集合Du=D\Dl。主动学习系统通常可以分为两部分:学习引擎和选择引擎。在每次迭代时, 学习引擎在Dl上训练分类器。然后,选择引擎从Du中选择样本 xi,对xi进行标记后提交给学习引擎。学习引擎和选择引擎交替 工作,分类器的准确性逐步提高。当满足终止条件时,迭代将停止。
目前,主动学习大致分为两种类型:基于流和基于池。基于流的 主动学习(如图3所示),未标记的样本按顺序一个接一个地提供给 选择引擎,选择引擎决定是否标记当前提供的样本。基于流的方法 通过设置阈值来选择要标记的样本。不同的任务需要设置不同的阈值, 因此将其用作一般方法是很困难的。
与基于流的方法相比,基于池的方法(如图4所示)不需要设置阈 值,而是根据已标记的样本生成的分类器的反馈自动从样本池(未标 记的样本集)中选择样本交给专家标记。为了提高方法的适用性,本 发明选择不需要设置阈值的基于池的样本选择策略,根据基于池的样 本选择策略又选择6%的新的样本加入初始的训练集中,训练集的样 本的数量变为总的可能的追踪链的数量12%。
步骤5:在特征提取模块中预设一组可以表现追踪链的有效性的特 征,特征包括信息检索特征和查询质量特征;
信息检索特征用于计算两个制品之间的相似度,相似程度部分反映 了可能的追踪链的有效性,例如,给定两个制品集S1和S2,以及 制品d1和d2,其中,d1∈S1和d2∈S2。应用IR引擎两次。首先, 使用d1作为查询,并使用S2中的制品作为语料库。IR结果列表 中的d2排名作为第一个特征。然后使用d2作为查询,S1中的制 品作为语料库,重复上面的过程。IR结果列表中d1的排名为第二 个特征。考虑这两个方向的原因主要是因为之前的工作表明查询方向 的选择会影响查询结果。
由于IR的准确性受到查询质量的影响,本实施例的第二个特征集 是关于查询质量的查询质量特征,虽然两个IR排名特征提供了文本 相似性的信息,但先前的研究表明查询的质量高度影响IR的结果。 例如,如果d1用作查询的质量很差,虽然IR的排名表示d1和d2是关联的,但实际上它们并没有。
为了克服这个潜在问题,本实施例为每个可能的链接生成8个不同 的查询质量特征指标,完整的查询质量特征指标见表1;
8个查询质量特征指标就是本发明训练分类器用的特征。
表1
步骤6:数据平衡模块对完整训练集中的样本进行再平衡,使训练 集中的有效追踪链与无效追踪链之间的数量得到更平衡的表示;
本实施例对来自5个系统的7个项目进行统计(统计结果如图2 所示),发现有效的追踪链的数量远小于无效追踪链的数量(比例大 约为1:11)。这种数据的不平衡可能会使得少数类样本难以识别。为 了解决这个问题,本发明对训练集数据进行再平衡,从而使多数类和 少数类更平衡的表示。本繁忙使用不同的再平衡技术和分类算法结合, 求出最适合的再平衡技术。
本发明选择的再平衡技术是:
SMOTE技术(Synthetic Minority Oversampling Technique)。
SMOTE的执行过程如下:设训练集的一个少数类的样本数为T, 那么SMOTE算法将为这个少数类合成NT个新样本。这里要求N 必须是正整数,如果给定的N<1那么算法将“认为”少数类的样 本数T=NT,并将强制N=1。
考虑该少数类的一个样本i,其特征向量为xi,i∈{1,...,T}:
步骤S1:首先从该少数类的全部T个样本中找到样本xi的k 个近邻(例如用欧氏距离),记为xi(near),near∈{1,...,k};
步骤S2:然后从这k个近邻中随机选择一个样本xi(nn),再生 成一个0到1之间的随机数ζ1,从而合成一个新样本xi1:
xi1=x1+ζ1·(xi(nn)-xi);
步骤S3:将步骤S2重复进行N次,从而可以合成N个新样本: xinew,new∈1,...,N。那么,对全部的T个少数类样本进行上述操 作,便可为该少数类合成NT个新样本。
如果样本的特征维数是2维,那么每个样本都可以用二维平面上 的一个点来表示。SMOTE算法所合成出的一个新样本xi1相当于是 表示样本xi的点和表示样本xi(nn)的点之间所连线段上的一个点。 所以说该算法是基于“插值”来合成新样本(如图5所示)。
步骤7:分类器模块采用RandomForest算法在完整训练集上训练 出一个可以预测追踪链有效性的分类器;
RandomForset的执行过程如下:
步骤A1:从原始训练集中使用Bootstraping方法随机有放回采样 选出m个样本,共进行n_tree次采样,生成n_tree个训练集。
步骤A2:对于n_tree个训练集,我们分别训练n_tree个决策树 模型。
步骤A3:对于单个决策树模型,假设训练样本特征的个数为n, 那么每次分裂时根据信息增益/信息增益比/基尼指数选择最好的特征 进行分裂。
步骤A4:每棵树都一直这样分裂下去,直到该节点的所有训练 样本都属于同一类。在决策树的分裂过程中不需要剪枝。
步骤A5:将生成的多棵决策树组成随机森林。对于分类问题,按 多棵树分类器投票决定最终分类结果;对于回归问题,由多棵树预测 值的均值决定最终预测结果。
步骤8:标识模块根据步骤7中得出的分类器对所有追踪链进行分 类,标识出有效追踪链和无效追踪链。
优选的,在执行步骤2时,所述文本预处理方法包括标识符拆分、 特殊字段与停用词消除以及词性还原和词根获取。
优选的,在执行步骤6时,使用少数类过采样技术对所述完整训 练集中的样本进行数据的再平衡。
优选的,在执行步骤4时,采用基于池的主动学习方法,根据已 标记的样本生成分类器,再根据分类器的反馈自动从样本池中选择样 本进行标记,所述样本池为未标记的样本集合。
本发明所述的一种基于主动学习的需求与代码之间可追踪性的自 动生成方法,在减少追踪链标记数量的同时,可以保持较高的追踪链 创建的准确性,本发明给出了文本预处理过程及训练分类器所需的特 征,同时也给出了如何运用主动学习的方法训练分类器,相对于传统 的基于机器学习的方法,本发明的需要更少的人工参与,并且其准确 性要优于基于IR的方法。
Claims (4)
1.一种基于主动学习的需求与代码之间可追踪性的自动生成方法,其特征在于:包括如下步骤:
步骤1:建立服务器集群,在服务器集群中建立文本提取模块、文本预处理模块、训练集生成模块、特征提取模块、数据平衡模块、分类器模块和标识模块;
步骤2:文本提取模块从需求和代码中提取文本;
步骤3:文本预处理模块采用信息检索中的文本预处理方法对文本进行预处理;
步骤4:训练集生成模块分析预处理后的文本中的需求和代码间存在的追踪链,将每一条追踪链均视为样本,训练集生成模块标记并选取一部分追踪链作为初始训练样本,建立初始的训练集,然后,通过主动学习的方法选择新的样本标识后加入初始的训练集,生成完整的训练集;
步骤5:在特征提取模块中预设一组可以表现追踪链的有效性的特征,特征包括信息检索特征和查询质量特征;
步骤6:数据平衡模块对完整训练集中的样本进行再平衡,使训练集中的有效追踪链与无效追踪链之间的数量得到更平衡的表示;
步骤7:分类器模块采用RandomForest算法在完整训练集上训练出一个可以预测追踪链有效性的分类器;
步骤8:标识模块根据步骤7中得出的分类器对所有追踪链进行分类,标识出有效追踪链和无效追踪链。
2.如权利要求1所述的一种基于主动学习的需求与代码之间可追踪性的自动生成方法,其特征在于:在执行步骤2时,所述文本预处理方法包括标识符拆分、特殊字段与停用词消除以及词性还原和词根获取。
3.如权利要求1所述的一种基于主动学习的需求与代码之间可追踪性的自动生成方法,其特征在于:在执行步骤6时,使用少数类过采样技术对所述完整训练集中的样本进行数据的再平衡。
4.如权利要求1所述的一种基于主动学习的需求与代码之间可追踪性的自动生成方法,其特征在于:在执行步骤4时,采用基于池的主动学习方法,根据已标记的样本生成分类器,再根据分类器的反馈自动从样本池中选择样本进行标记,所述样本池为未标记的样本集合。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910752552.0A CN110516722B (zh) | 2019-08-15 | 2019-08-15 | 一种基于主动学习的需求与代码之间可追踪性的自动生成方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910752552.0A CN110516722B (zh) | 2019-08-15 | 2019-08-15 | 一种基于主动学习的需求与代码之间可追踪性的自动生成方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110516722A true CN110516722A (zh) | 2019-11-29 |
CN110516722B CN110516722B (zh) | 2023-08-22 |
Family
ID=68626024
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910752552.0A Active CN110516722B (zh) | 2019-08-15 | 2019-08-15 | 一种基于主动学习的需求与代码之间可追踪性的自动生成方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110516722B (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113378907A (zh) * | 2021-06-04 | 2021-09-10 | 南京大学 | 增强数据预处理过程的自动化软件可追踪性恢复方法 |
CN113469251A (zh) * | 2021-07-02 | 2021-10-01 | 南京邮电大学 | 不平衡数据的分类方法 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101438238A (zh) * | 2004-10-15 | 2009-05-20 | 伊塔斯公司 | 用于异常检测的方法和系统 |
CN103890722A (zh) * | 2011-11-06 | 2014-06-25 | 国际商业机器公司 | 使用可追溯性链接强度以用于软件开发完整性监视 |
CN105718256A (zh) * | 2014-12-18 | 2016-06-29 | 通用汽车环球科技运作有限责任公司 | 用于通过本体模型的比较进行一致性检查的方法和装置 |
CN108459965A (zh) * | 2018-03-06 | 2018-08-28 | 南京大学 | 一种结合用户反馈和代码依赖的软件可追踪生成方法 |
-
2019
- 2019-08-15 CN CN201910752552.0A patent/CN110516722B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101438238A (zh) * | 2004-10-15 | 2009-05-20 | 伊塔斯公司 | 用于异常检测的方法和系统 |
CN103890722A (zh) * | 2011-11-06 | 2014-06-25 | 国际商业机器公司 | 使用可追溯性链接强度以用于软件开发完整性监视 |
CN105718256A (zh) * | 2014-12-18 | 2016-06-29 | 通用汽车环球科技运作有限责任公司 | 用于通过本体模型的比较进行一致性检查的方法和装置 |
CN108459965A (zh) * | 2018-03-06 | 2018-08-28 | 南京大学 | 一种结合用户反馈和代码依赖的软件可追踪生成方法 |
Non-Patent Citations (1)
Title |
---|
杜天保等: "通过代码模式改进基于IR的需求和代码之间追踪生成方法", 《小型微型计算机系统》 * |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113378907A (zh) * | 2021-06-04 | 2021-09-10 | 南京大学 | 增强数据预处理过程的自动化软件可追踪性恢复方法 |
CN113378907B (zh) * | 2021-06-04 | 2024-01-09 | 南京大学 | 增强数据预处理过程的自动化软件可追踪性恢复方法 |
CN113469251A (zh) * | 2021-07-02 | 2021-10-01 | 南京邮电大学 | 不平衡数据的分类方法 |
Also Published As
Publication number | Publication date |
---|---|
CN110516722B (zh) | 2023-08-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108875816A (zh) | 融合置信度准则和多样性准则的主动学习样本选择策略 | |
CN110298391A (zh) | 一种基于小样本的迭代式增量对话意图类别识别方法 | |
CN108985293A (zh) | 一种基于深度学习的图像自动化标注方法及系统 | |
CN106709754A (zh) | 一种用基于文本挖掘的电力用户分群方法 | |
CN107943865A (zh) | 一种适用于多场景、多类型的音频分类标签方法及系统 | |
CN111967534A (zh) | 基于生成对抗网络知识蒸馏的增量学习方法 | |
CN107066548B (zh) | 一种双维度分类提取网页链接的方法 | |
CN107145573A (zh) | 人工智能客服机器人的问题解答方法及系统 | |
CN110516722A (zh) | 一种基于主动学习的需求与代码之间可追踪性的自动生成方法 | |
CN109726299B (zh) | 一种不完备专利自动标引方法 | |
CN108734159A (zh) | 一种图像中敏感信息的检测方法及系统 | |
JP2024527903A (ja) | 多重人工知能モデルの連続処理構造に基づく画像自動分類及び処理方法、及び、これを実行させるためにコンピュータ読み取り可能な記録媒体に格納されたコンピュータプログラム | |
CN109299464B (zh) | 基于网络链接和文档内容的主题嵌入、文档表示方法 | |
CN113407644A (zh) | 一种基于深度学习算法的企业行业二级行业多标签分类器 | |
Siers et al. | Cost sensitive decision forest and voting for software defect prediction | |
CN106611016B (zh) | 一种基于可分解词包模型的图像检索方法 | |
Shanmugalingam et al. | Corporate it-support help-desk process hybrid-automation solution with machine learning approach | |
CN114416423B (zh) | 一种基于机器学习的根因定位方法和系统 | |
CN102004796A (zh) | 一种网页文本的无阻滞层次分类方法与装置 | |
CN111191033A (zh) | 一种基于分类效用的开集分类方法 | |
Dharwadkar et al. | Floriculture classification using simple neural network and deep learning | |
CN117033464B (zh) | 一种基于聚类的日志并行解析算法及应用 | |
CN109948782A (zh) | 一种基于神经网络的多目标识别优化方法 | |
CN114861629B (zh) | 一种文本风格的自动化评判方法 | |
CN115936389A (zh) | 一种基于大数据技术的评审专家与评审材料的匹配方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |