CN112181814B - 一种针对于缺陷报告的多标签标记方法 - Google Patents
一种针对于缺陷报告的多标签标记方法 Download PDFInfo
- Publication number
- CN112181814B CN112181814B CN202010984558.3A CN202010984558A CN112181814B CN 112181814 B CN112181814 B CN 112181814B CN 202010984558 A CN202010984558 A CN 202010984558A CN 112181814 B CN112181814 B CN 112181814B
- Authority
- CN
- China
- Prior art keywords
- label
- defect report
- data set
- completion
- dataset
- 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
Links
- 230000007547 defect Effects 0.000 title claims abstract description 212
- 238000000034 method Methods 0.000 title claims abstract description 65
- 238000012549 training Methods 0.000 claims abstract description 88
- 238000004422 calculation algorithm Methods 0.000 claims abstract description 19
- 238000013145 classification model Methods 0.000 claims abstract description 12
- 238000010276 construction Methods 0.000 claims description 12
- 238000007781 pre-processing Methods 0.000 claims description 6
- 150000003839 salts Chemical class 0.000 claims description 3
- 238000002372 labelling Methods 0.000 abstract description 5
- 238000012545 processing Methods 0.000 description 6
- 238000012986 modification Methods 0.000 description 5
- 230000004048 modification Effects 0.000 description 5
- 238000007635 classification algorithm Methods 0.000 description 4
- 230000008569 process Effects 0.000 description 4
- 239000013598 vector Substances 0.000 description 3
- 238000013461 design Methods 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 230000035945 sensitivity Effects 0.000 description 2
- 230000006978 adaptation Effects 0.000 description 1
- 230000004075 alteration Effects 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000000605 extraction Methods 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 238000011160 research Methods 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/3668—Software testing
- G06F11/3672—Test management
- G06F11/3692—Test management for test results analysis
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Bioinformatics & Cheminformatics (AREA)
- Evolutionary Biology (AREA)
- Evolutionary Computation (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Bioinformatics & Computational Biology (AREA)
- Artificial Intelligence (AREA)
- Life Sciences & Earth Sciences (AREA)
- Computer Hardware Design (AREA)
- Quality & Reliability (AREA)
- Machine Translation (AREA)
Abstract
本发明提供了一种针对于缺陷报告的多标签标记方法。本发明由用户指定待选标签集合,根据该集合构建初始多标签训练数据集,通过人工补全方法进行第一轮标签补全得到第一轮补全后的多标签训练数据集,使用二分类预测方法自动第二轮标签补全得到第二轮补全后的多标签训练数据集,再通过人工补全方法进行第三轮标签补全得到最终多标签训练数据集;构建基于快速文本分类器算法的文本多类分类模型,基于最终多标签训练数据集进行训练,得到训练后的文本多分类模型作为训练后缺陷报告标签预测器;使用训练后缺陷报告标签预测器为缺陷报告进行多标签标记,并收集用户反馈以即时更新预测性能。本发明提供了一种高效地为缺陷报告预测并标记多个标签的方法。
Description
技术领域
本发明涉及计算机技术领域,具体涉及一种针对于缺陷报告的多标签标记方法。
背景技术
缺陷报告在软件开发中起着重要作用,日益成熟的缺陷跟踪***随着对缺陷报告管理能力的不断提升,也为现代软件开发提供了更加便捷的缺陷报告整理服务。例如,多合一编码社区GitHub,已将基于Git版本控制***与一个轻量级的缺陷跟踪***集成在一起,提供便捷的编码服务。这个缺陷报告跟踪***有助于为许多开源项目记录数以千计的缺陷报告。
缺陷报告跟踪***的一项非常重要的功能是为缺陷报告分配标签。缺陷报告的标签有助于帮助开发者对缺陷报告进行快速地分类或标识。
在实际的项目中,缺陷报告常常包含多个标签。例如,报告记录了一个后端相关的错误,因此它应该同时具有“bug”和“backend”标签。
人工为缺陷报告标记标签常常耗费人力,且容易造成漏标、误标。自动化的标记方法将能够有效地提供更可靠的标记能力。
然而,现有自动化标记技术中,对缺陷报告添加多标签的方法主要是使用多个单标签进行多次二分类预测,以达到预测多标签的效果。这种添加多标签的方法有局限性。其最大的弊端在于利用多个单标签分类器的组合形式完成多标签的分类任务是低效的,因为这种方法不能够快速地、一次性地给出全部标签。
对含有多个方面问题的缺陷报告进行标签分类,仅依次使用单标签分类方法甚至可能无法正常工作。例如,若使用将缺陷报告分入“错误(bug)”和“非错误(non-bug)”之一的分类器,对同时含有同时包含“错误(bug)”和“增强(enhancement)”两个标签的缺陷报告进行标签分类,由于这类报告既属于错误也属于非错误(增强),单标签二分类的标签预测方式只能给出“bug”和“non-bug”之一的标签,不能同时给出这两个标签。这将会使得分类器无法给出正确的多标签预测结果。
相反,一个更快的多标签分类模型来对问题报告进行多标签预测则能够一次性预测出所有标签,并能够同时评估预测是否应当为待标记标签的缺陷报告标记多个标签。多标签预测器将带来高效、有效的缺陷报告标记服务。
然而,构建缺陷报告多标签预测器并不容易,其中最大的不足即缺乏合适的缺陷报告多标签标记训练数据集。目前缺陷报告的分类研究中涉及到的数据集大多都是针对于单标签分类的数据集,尚不存在一个针对于多标签分类的缺陷报告数据集或对应数据集的构建方法。此外,现有标签预测分类器数据集构建方法对于不同GitHub仓库所采用的标签方案的多样性适配较差。例如在vscode仓库中,有一些与编辑器相关的标签,类似于“editor-clipboard”,“editor-wrapping”等。但是,若要对来自于跨仓库的缺陷报告添加标签,如何筛选并统一标签,是标签分类将遇到的问题。现存的单标签方法在标签的统一化上有一定的工作,但是统一的标签种类不够多,不能够达到多标签的数据要求。如何有效地构建缺陷报告多标签标记训练数据集是一个重要问题。
发明内容
有鉴于此,本发明提供了一种针对于缺陷报告的多标签标记方法,用以解决现有技术中的方法存在的问题。
本发明提供了一种针对于缺陷报告的多标签标记方法。本方法包括:
步骤1:构建缺陷报告数据集,根据缺陷报告数据集构建用户指定待选标签集合,根据用户指定待选标签集合构建初始多标签训练数据集,根据缺陷报告已有标签情况通过人工补全方法进行第一轮标签补全得到第一轮补全后的多标签训练数据集,使用二分类预测方法自动第二轮标签补全得到第二轮补全后的多标签训练数据集,根据缺陷报告标题与内容单词情况通过人工补全方法进行第三轮标签补全得到最终多标签训练数据集;
步骤2:构建基于快速文本分类器算法的文本多类别分类器模型,结合最终多标签训练数据集进行多轮批次的训练,得到训练后的文本多分类模型作为训练后缺陷报告标签预测器;
步骤3:使用训练后缺陷报告标签预测器为缺陷报告进行多标签标记,收集缺陷报告中的用户反馈以及时更新预测模型。
作为优选,步骤1所述构建缺陷报告数据集为:
所述缺陷报告数据集为:
S={s1,s2,...,sN}
其中,N为收集到的缺陷报告样本的数量。
缺陷报告数据集中第i个缺陷报告样本为:
si=(titlei,bodyi,labelseti),i∈[1,N]
其中,titlei为缺陷报告数据集中第i个缺陷报告的标题,bodyi为缺陷报告数据集中第i个缺陷报告的报告主体,labelseti为缺陷报告数据集中第i个缺陷报告的标签集合。
缺陷报告数据集中第i个缺陷报告样本的标签集合为:
步骤1所述根据缺陷报告数据集构建用户指定待选标签集合为:
遍历缺陷报告数据集内所有缺陷报告样本,取所有缺陷报告样本的标签集合的并集,得到缺陷报告数据集上的所有标签集合为:
其中,Q为缺陷报告数据集上的所有标签集合中互不相同的样本标签的个数,L0内的任意标签对满足labelp≠labelq,p≠q。
用户从L0中指定R个互不相同的标签作为用户指定待选标签集合,具体定义为:
上述用户指定的待选标签集合将被作为多标签预测方法的预测目标。
步骤1所述根据用户指定待选标签集合构建初始多标签训练数据集为:
其中,Dataset0表示初始多标签训练数据集;
步骤1所述根据缺陷报告已有标签情况通过人工补全方法进行第一轮标签补全得到第一轮补全后的多标签训练数据集为:
首先,对于缺陷报告数据集上的所有标签集合中的每个标签即labelk,k∈[1,Q],统计数据集中包含该标签的样本的个数labelcntk;
对于缺陷报告数据集上的所有标签集合L0中的每个标签labelk∈{label1,label2,...,labelQ},取按数据集中包含每个标签的样本个数递减排名前P位的标签构成高频标签集合Ltop:
将高频标签集合即Ltop标签交付给Θ名研究者开展人工补全,其中要求研究者人数满足Θ≥10;
将所有研究者为相同待选标签标注的关联标签集合求并集,得到每个待选标签关联的附属标签集;
其中,Dataset1为第一轮补全后的多标签训练数据集;
步骤1所述使用二分类预测方法自动第二轮标签补全得到第二轮补全后的多标签训练数据集为:
步骤1所述根据缺陷报告标题与内容单词情况通过人工补全方法进行第三轮标签补全得到最终多标签训练数据集为:
统计所有缺陷报告样本标题与内容中出现的词汇的词频,取词频递减排名前H位的单词构成高频词汇集合即Wtop:
其次,将高频词汇集合即Wtop标签交付给Θ名研究者,其中要求研究者人数满足Θ≥10。要求研究者彼此独立地从高频词汇集合Wtop中选取与待选标签集合Ltgt中每个待选标签在单词语义上近似或在软件工程中属于该待选标签概念的所有高频词汇
将所有研究者认为相同待选标签标注的关联词汇集合求并集,得到每个待选标签关联的附属词汇集;
其中,Datasetok为最终多标签训练数据集;
作为优选,步骤2所述构建基于快速文本分类器算法的文本多类别分类器模型为:
该快速文本分类器的参数设置为:词典长度参数为Nbucket,连续词长度设置为NwordNgrams,连续词内字母长度设置为NcharNgrams;
步骤2所述结合最终多标签训练数据集进行多轮批次的训练为:
将基于快速文本分类器算法的文本多类别分类器模型在步骤1所述最终多标签训练数据集即Datasetok上进行Nepoch轮批次大小为Nbatchsize训练;
训练时,对于Datasetok中的每个数据样本 对titlei、bodyi进行去处链接、数字、拆分驼峰命名词、单词小写化、还原词干、保留停词的预处理操作,并将预处理后的titlei和bodyi连接,构建为输入数据,即inputi。将inputi输入f,并以为标准输出,对模型进行训练;
步骤2所述得到训练后的文本多分类模型为:
将在Datasetok上完成Nepoch轮批次大小为Nbatchsize的训练后的文本多分类模型,定义为f′;
作为优选,步骤3使用训练后缺陷报告标签预测器为缺陷报告进行多标签标记为:
对于一条待进行多标签标记的缺陷报告即snew=(titlenew,bodynew),将标题文本即titlenew与内容文本即bodynew进行去处链接、数字、拆分驼峰命名词、单词小写化、还原词干、保留停词的预处理操作,并将预处理后的titlenew和bodynew连接,构建为输入数据,即inputnew;
将inputnew输入模型f′;
记f′的输出为:y′pred=(l′pred,1,l′pred,2,...,l′pred,R);
对于步骤1中所述的第k个待选标签即若l′pred,k>θthreshold,θthreshold为预测概率阈值,则此时模型预测输入的待进行多标签标记的缺陷报告snew被认定为应当被标记上第k个待选标签的概率超过预测概率阈值θthreshold;
步骤3所述收集缺陷报告中的用户反馈以更新标签的预测状态为:
为每一条模型提供的预测结果y′pred记录由用户反馈的该条预测是否正确,并记录预测正确的次数;
本发明以提供一种具备非常高效地为缺陷报告标记多个标签能力的方法为目的,首先结合人工补全方法和基于二分类的自动补全方法,对获取自开源渠道的缺陷报告数据进行整合和标签补全,以构建出一套使文本多类别分类模型能够基于其进行有效训练的训练数据集;其次构建计算高效的基于FastText快速文本算法的文本多分类模型,并基于构建的训练数据集进行训练,得到训练好的具备缺陷报告多标签标记能力的文本多分类模型;最后使用训练好的模型对于待进行多标签标记的缺陷报告样本根据预处理好的标题与内容进行缺陷报告多标签标记预测,并实时收集用户反馈,在预测能力随着时间下降后及时重新训练形成模型,提升模型性能。本发明最终形成了一套完整的针对于缺陷报告的高效多标签标记方法。
本发明提供的针对于缺陷报告的多标签标记方法提供了一种结合了人工补全和自动化补全的高效、有效的缺陷报告多标签标记的文本分类模型训练集构建方法,这解决了目前缺少多标签缺陷报告数据集因而无法使用相比于普通二分类算法更为高效的多分类算法解决缺陷报告多标签标记任务的问题。基于上述数据集构建方法,本发明使用文本多分类算法构建缺陷报告多标签预测模型,用于一次性对缺陷报告添加多个标签,提升了标记多标签的工作速度。最后,本发明还设计了收集用户对于标签预测结果的反馈环节,以及时修正标签预测。本发明最终形成了一套完整的针对于缺陷报告的多标签标记方法,用户可以利用这套方法实现高效的多标签预测,并用于实际生产中的缺陷报告多标签标记工作。
附图说明
图1:为本发明方法流程图;
图2:为本发明一种实施例中由人工补全后的待选标签及对应附属标签清单;
图3:为本发明一种实施例提供的基于FastText快速文本分类算法的缺陷报告多标签预测模型对输入的缺陷报告文本的处理方式说明;
图4:为本发明一种在GitHub开发社区中以GitHub App形式提供服务的实施例对新发布的缺陷报告进行标签进行预测的效果。
具体实施方式
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明的方法流程图。下面结合图1至图4介绍本发明的具体实施方式为一种针对于缺陷报告的多标签标记方法,包括以下步骤:
步骤1:构建缺陷报告数据集,根据缺陷报告数据集构建用户指定待选标签集合,根据用户指定待选标签集合构建初始多标签训练数据集,根据缺陷报告已有标签情况通过人工补全方法进行第一轮标签补全得到第一轮补全后的多标签训练数据集,使用二分类预测方法自动第二轮标签补全得到第二轮补全后的多标签训练数据集,根据缺陷报告标题与内容单词情况通过人工补全方法进行第三轮标签补全得到最终多标签训练数据集;
步骤1所述构建缺陷报告数据集为:
所述缺陷报告数据集为:
S={s1,s2,...,sN}
其中,N为收集到的缺陷报告样本的数量。
在一种实施例中,由于50000份样本可提供相对充分的数据用于模型训练,因此可指定收集50000份缺陷报告样本,即设置N=50000。
缺陷报告数据集中第i个缺陷报告样本为:
si=(titlei,bodyi,labelseti),i∈[1,N]
其中,titlei为缺陷报告数据集中第i个缺陷报告的标题,bodyi为缺陷报告数据集中第i个缺陷报告的报告主体,labelseti为缺陷报告数据集中第i个缺陷报告的标签集合。
缺陷报告数据集中第i个缺陷报告样本的标签集合为:
步骤1所述根据缺陷报告数据集构建用户指定待选标签集合为:
遍历缺陷报告数据集内所有缺陷报告样本,取所有缺陷报告样本的标签集合的并集,得到缺陷报告数据集上的所有标签集合为:
其中,Q为缺陷报告数据集上的所有标签集合中互不相同的样本标签的个数,L0内的任意标签对满足labelp≠labelq,p≠q。
在一种实施例中,假设收集到的50000份缺陷报告样本中,共有200个互不相同的标签,则Q=200。
用户从L0中指定R个互不相同的标签作为用户指定待选标签集合,具体定义为:
在一种实施例中,由于有11种常见标签,因此可设置R=11,Ltgt={″bug″,″enhancement″,″question″,″ui″,″design″,″database″,″client″,″server″,″document″,″security″,″performance″}。
上述用户指定的待选标签集合将被作为多标签预测方法的预测目标。
步骤1所述根据用户指定待选标签集合构建初始多标签训练数据集为:
其中,Dataset0表示初始多标签训练数据集;
步骤1所述根据缺陷报告已有标签情况通过人工补全方法进行第一轮标签补全得到第一轮补全后的多标签训练数据集为:
首先,对于缺陷报告数据集上的所有标签集合中的每个标签即labelk,k∈[1,Q],统计数据集中包含该标签的样本的个数labelcntk;
对于缺陷报告数据集上的所有标签集合L0中的每个标签labelk∈{label1,label2,...,labelQ},取按数据集中包含每个标签的样本个数递减排名前P位的标签构成高频标签集合Ltop:
在一种实施例中,可设置P=20。
将高频标签集合即Ltop标签交付给Θ名研究者开展人工补全,其中要求研究者人数满足Θ≥10;
在一种实施例中,根据数据量,可安排50名研究者参与人工补全。因此可设置Θ=50。
将所有研究者为相同待选标签标注的关联标签集合求并集,得到每个待选标签关联的附属标签集;
在一种实施例中,一种由人工补全后的待选标签及对应附属标签清单如附图2所示。
其中,Dataset1为第一轮补全后的多标签训练数据集;
步骤1所述使用二分类预测方法自动第二轮标签补全得到第二轮补全后的多标签训练数据集为:
在一种实施例中,所选二分类预测方法可以使用基于长短记忆单元(LSTM)的二分类器。此步骤并非旨在对问题进行精确分类,它的目标在于自动化地快速提供候选标签,从而加快数据集补充过程。
步骤1所述根据缺陷报告标题与内容单词情况通过人工补全方法进行第三轮标签补全得到最终多标签训练数据集为:
统计所有缺陷报告样本标题与内容中出现的词汇的词频,取词频递减排名前H位的单词构成高频词汇集合即Wtop:
在一种实施例中,根据N=50000的数据量和Θ=50的人工量,可以设置H=500。
其次,将高频词汇集合即Wtop标签交付给Θ名研究者,其中要求研究者人数满足Θ≥10。要求研究者彼此独立地从高频词汇集合Wtop中选取与待选标签集合Ltgt中每个待选标签在单词语义上近似或在软件工程中属于该待选标签概念的所有高频词汇
将所有研究者认为相同待选标签标注的关联词汇集合求并集,得到每个待选标签关联的附属词汇集;
其中,Datasetok为最终多标签训练数据集;
步骤2:构建基于快速文本分类器算法的文本多类别分类器模型,结合最终多标签训练数据集进行多轮批次的训练,得到训练后的文本多分类模型作为训练后缺陷报告标签预测器;
所述基于快速文本分类器(FastText)算法的分类器模型,根据快速文本分类器算法,引入了子词N子词组(n subword gram)的概念,将英文单词拆开,用英文单词内的字符的信息去揭示一些英文单词的内涵。对于缺陷报告多标签标记任务,这有助于挖掘某些字符组合形式的意义,从而能更加充分地表示具有这些字符组合的单词的语义。例如,在缺陷报告中,许多包含标签“database”的缺陷报告的标题或主体中会包含类似于“sqlserver2016”、“sqlalchemy”的单词,可以看到这些单词都包含“sql”的字符组合,而“sql”就指示了这条缺陷报告可能与数据库相关。
所述基于快速文本分类器(FastText)算法的分类器模型,根据快速文本分类器算法还引入了词汇N词组(word n-gram)的概念,同时考虑词汇的上下文,对某些关键词组合进行表征,从而更好地表示一些词汇的含义。例如,在标有“ui”标签的缺陷报告中会存在一些包含“click on”等与用户交互有关的词组。如此考虑词与词之间的特征可以提升对应标签的预测输出值,从而提高这类缺陷报告的分类准确度,使得结果可信。
附图3展示了上述基于快速文本分类器(FastText)算法的分类器模型进行分类的过程。如某测试报告包含这样的一句话“can not click on menubutton”,如上所述,这些分词的数据一共有三种的处理方式。第一种是单个词汇的处理,也就是图中显示的空心双箭头处理流程。例如“can”、“not”等单词会被添加到模型中的字典里,并且同时创建对应的词向量。第二种是多个连续词汇的处理,对应于图中显示的单箭头,这种处理方式将连续的词汇看作一个整体,并在训练时添加到模型字典中,例如连续的词汇“click”和“on”会被整合成“click on”一词进行产后护理。第三种是词汇内连续字符的处理,对应于途中的实心双箭头。例如“menubutton”可以根据连续字符长度的选取被分成“men”、“but”、“ton”等字符组合,这些字符组合将被添加到模型字典中,并创建对应词向量。每一篇缺陷报告文本经由这三部分进行词向量特征提取,之后由隐藏层进行加权计算得到中间结果,并由输出层根据中间结果为输入的待标记标签的缺陷报告预测出其应当被标记上每个标签的概率值。
步骤2所述构建基于快速文本分类器算法的文本多类别分类器模型为:
该快速文本分类器的参数设置为:词典长度参数为Nbucket,连续词长度设置为NwordNgrams,连续词内字母长度设置为NcharNgrams;
在一种实施例中,可将Nbucket设置为400000,、NwordNgrams设置为5、NcharNgrams设置为3。
步骤2所述结合最终多标签训练数据集进行多轮批次的训练为:
将基于快速文本分类器算法的文本多类别分类器模型在步骤1所述最终多标签训练数据集即Datasetok上进行Nepoch轮批次大小为Nbatchsize训练;
在一种实施例中,可将Nepoch设置为100、Nbatchsize设置为128。二者可根据模型在实施过程中你所构建数据集上的实际收敛情况进行调整。
训练时,对于Datasetok中的每个数据样本 对titlei、bodyi进行去处链接、数字、拆分驼峰命名词、单词小写化、还原词干、保留停词的预处理操作,并将预处理后的titlei和bodyi连接,构建为输入数据,即inputi。将inputi输入f,并以为标准输出,对模型进行训练;
步骤2所述得到训练后的文本多分类模型为:
将在Datasetok上完成Nepoch轮批次大小为Nbatchsize的训练后的文本多分类模型,定义为f′;
步骤3:使用训练后缺陷报告标签预测器为缺陷报告进行多标签标记,收集缺陷报告中的用户反馈以及时更新预测模型。
步骤3使用训练后缺陷报告标签预测器为缺陷报告进行多标签标记为:
对于一条待进行多标签标记的缺陷报告即snew=(titlenew,bodynew),将标题文本即titlenew与内容文本即bodynew进行去处链接、数字、拆分驼峰命名词、单词小写化、还原词干、保留停词的预处理操作,并将预处理后的titlenew和bodynew连接,构建为输入数据,即inputnew;
将inputnew输入模型f′;
记f′的输出为:y′pred=(l′pred,1,l′pred,2,...,l′pred,R);
对于步骤1中所述的第k个待选标签即若l′pred,k>θthreshold,θthreshold为预测概率阈值,则此时模型预测输入的待进行多标签标记的缺陷报告snew被认定为应当被标记上第k个待选标签的概率超过预测概率阈值θthreshold;
在一种实施例中,θthreshold可按照常见分类器阈值设置方式将值设定为0.5。若希望提高灵敏度(尽可能地多汇报标记),可适当降低该值;若希望降低灵敏度(尽可能准确地标记),可适当增高该值。
在一种实施例中,本缺陷报告多标签标记方法可用于GitHub平台的缺陷报告上。如附图4所示,用户可以基于本方法作为标签预测方法,形成一个GitHub App(如图中所示issue-mula-labeler),在GitHub App中通过监听GitHub IssueEvent事件获取新发布的缺陷报告,即时进行预测,并通过GitHub API为该新发布的缺陷报告预测多标签标记。
步骤3所述收集缺陷报告中的用户反馈以更新标签的预测状态为:
为每一条模型提供的预测结果y′pred记录由用户反馈的该条预测是否正确,并记录预测正确的次数;
在一种实施例中,θwarning可设置为0.7。若希望提高更新频率(尽可能地及时跟上数据变化),可适当增高该值。若希望降低更新频率(提供更稳定的服务、避免临时性变动带来的影响),可适当降低该值。
本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例做出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明范围的所有变更和修改。
显然,本领域的技术人员可以对本发明实施例进行各种改动和变型而不脱离本发明实施例的精神和范围。这样,倘若本发明实施例的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。
Claims (3)
1.一种针对于缺陷报告的多标签标记方法,其特征在于,包括以下步骤:
步骤1:构建缺陷报告数据集,根据缺陷报告数据集构建用户指定待选标签集合,根据用户指定待选标签集合构建初始多标签训练数据集,根据缺陷报告已有标签情况通过人工补全方法进行第一轮标签补全得到第一轮补全后的多标签训练数据集,使用二分类预测方法自动第二轮标签补全得到第二轮补全后的多标签训练数据集,根据缺陷报告标题与内容单词情况通过人工补全方法进行第三轮标签补全得到最终多标签训练数据集;
步骤2:构建基于快速文本分类器算法的文本多类别分类器模型,结合最终多标签训练数据集进行多轮批次的训练,得到训练后的文本多分类模型作为训练后缺陷报告标签预测器;
步骤3:使用训练后缺陷报告标签预测器为缺陷报告进行多标签标记,收集缺陷报告中的用户反馈以及时更新预测模型;
步骤1所述构建缺陷报告数据集为:
所述缺陷报告数据集为:
S={s1,s2,...,sN}
其中,N为收集到的缺陷报告样本的数量;
缺陷报告数据集中第i个缺陷报告样本为:
si=(titlei,bodyi,labelseti),i∈[1,N]
其中,titlei为缺陷报告数据集中第i个缺陷报告的标题,bodyi为缺陷报告数据集中第i个缺陷报告的报告主体,labelseti为缺陷报告数据集中第i个缺陷报告的标签集合;
缺陷报告数据集中第i个缺陷报告样本的标签集合为:
步骤1所述根据缺陷报告数据集构建用户指定待选标签集合为:
遍历缺陷报告数据集内所有缺陷报告样本,取所有缺陷报告样本的标签集合的并集,得到缺陷报告数据集上的所有标签集合为:
其中,Q为缺陷报告数据集上的所有标签集合中互不相同的样本标签的个数,L0内的任意标签对满足labelp≠labelq,p≠q;
用户从L0中指定R个互不相同的标签作为用户指定待选标签集合,具体定义为:
上述用户指定的待选标签集合将被作为多标签预测方法的预测目标;
步骤1所述根据用户指定待选标签集合构建初始多标签训练数据集为:
其中,Dataset0表示初始多标签训练数据集;
步骤1所述根据缺陷报告已有标签情况通过人工补全方法进行第一轮标签补全得到第一轮补全后的多标签训练数据集为:
首先,对于缺陷报告数据集上的所有标签集合中的每个标签即labelk,k∈[1,Q],统计数据集中包含该标签的样本的个数labelcntk;
对于缺陷报告数据集上的所有标签集合L0中的每个标签labelk∈{label1,label2,...,labelQ},取按数据集中包含每个标签的样本个数递减排名前P位的标签构成高频标签集合Ltop:
将高频标签集合即Ltop标签交付给Θ名研究者开展人工补全,其中要求研究者人数满足Θ≥10;
将所有研究者为相同待选标签标注的关联标签集合求并集,得到每个待选标签关联的附属标签集;
其中,Dataset1为第一轮补全后的多标签训练数据集;
步骤1所述使用二分类预测方法自动第二轮标签补全得到第二轮补全后的多标签训练数据集为:
步骤1所述根据缺陷报告标题与内容单词情况通过人工补全方法进行第三轮标签补全得到最终多标签训练数据集为:
统计所有缺陷报告样本标题与内容中出现的词汇的词频,取词频递减排名前H位的单词构成高频词汇集合即Wtop:
其次,将高频词汇集合即Wtop标签交付给Θ名研究者,其中要求研究者人数满足Θ≥10;要求研究者彼此独立地从高频词汇集合Wtop中选取与待选标签集合Ltgt中每个待选标签在单词语义上近似或在软件工程中属于该待选标签概念的所有高频词汇
将所有研究者认为相同待选标签标注的关联词汇集合求并集,得到每个待选标签关联的附属词汇集;
其中,Datasetok为最终多标签训练数据集。
2.根据权利要求1所述的针对于缺陷报告的多标签标记方法,其特征在于:
步骤2所述构建基于快速文本分类器算法的文本多类别分类器模型为:
该快速文本分类器的参数设置为:词典长度参数为Nbucket,连续词长度设置为NwordNgrams,连续词内字母长度设置为NcharNgrams;
步骤2所述结合最终多标签训练数据集进行多轮批次的训练为:
将基于快速文本分类器算法的文本多类别分类器模型在步骤1所述最终多标签训练数据集即Datasetok上进行Nepoch轮批次大小为Nbatchsize训练;
训练时,对于Datasetok中的每个数据样本 对titlei、bodyi进行去处链接、数字、拆分驼峰命名词、单词小写化、还原词干、保留停词的预处理操作,并将预处理后的titlei和bodyi连接,构建为输入数据,即inputi;将inputi输入f,并以为标准输出,对模型进行训练;
步骤2所述得到训练后的文本多分类模型为:
将在Datasetok上完成Nepoch轮批次大小为Nbatchsize的训练后所得到的文本多分类模型,定义为f′。
3.根据权利要求1所述的针对于缺陷报告的多标签标记方法,其特征在于:
步骤3使用训练后缺陷报告标签预测器为缺陷报告进行多标签标记为:
对于一条待进行多标签标记的缺陷报告即snew=(titlenew,bodynew),将标题文本即titlenew与内容文本即bodynew进行去处链接、数字、拆分驼峰命名词、单词小写化、还原词干、保留停词的预处理操作,并将预处理后的titlenew和bodynew连接,构建为输入数据,即inputnew;
将inputnew输入模型f′;
记f′的输出为:y′pred=(l′pred,1,l′pred,2,...,l′pred,R);
对于步骤1中所述的第k个待选标签即若l′pred,k>θthreshold,θthreshold为预测概率阈值,则此时模型预测输入的待进行多标签标记的缺陷报告snew被认定为应当被标记上第k个待选标签的概率超过预测概率阈值θthreshold;
步骤3所述收集缺陷报告中的用户反馈以更新标签的预测状态为:
为每一条模型提供的预测结果y′pred记录由用户反馈的该条预测是否正确,并记录预测正确的次数;
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010984558.3A CN112181814B (zh) | 2020-09-18 | 2020-09-18 | 一种针对于缺陷报告的多标签标记方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010984558.3A CN112181814B (zh) | 2020-09-18 | 2020-09-18 | 一种针对于缺陷报告的多标签标记方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112181814A CN112181814A (zh) | 2021-01-05 |
CN112181814B true CN112181814B (zh) | 2021-11-16 |
Family
ID=73920223
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010984558.3A Active CN112181814B (zh) | 2020-09-18 | 2020-09-18 | 一种针对于缺陷报告的多标签标记方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112181814B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113254329A (zh) * | 2021-04-30 | 2021-08-13 | 展讯通信(天津)有限公司 | 基于机器学习的Bug处理方法、***、设备及存储介质 |
CN113378907B (zh) * | 2021-06-04 | 2024-01-09 | 南京大学 | 增强数据预处理过程的自动化软件可追踪性恢复方法 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107273295A (zh) * | 2017-06-23 | 2017-10-20 | 中国人民解放军国防科学技术大学 | 一种基于文本混乱度的软件问题报告分类方法 |
CN108804558A (zh) * | 2018-05-22 | 2018-11-13 | 北京航空航天大学 | 一种基于语义模型的缺陷报告自动分类方法 |
CN108897815A (zh) * | 2018-06-20 | 2018-11-27 | 淮阴工学院 | 一种基于相似度模型和FastText的多标签文本分类方法 |
CN109376247A (zh) * | 2018-11-13 | 2019-02-22 | 扬州大学 | 一种基于关联规则的软件缺陷自动分类方法 |
CN110580290A (zh) * | 2019-09-12 | 2019-12-17 | 北京小米智能科技有限公司 | 用于文本分类的训练集的优化方法及装置 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP3392780A3 (en) * | 2017-04-19 | 2018-11-07 | Tata Consultancy Services Limited | Systems and methods for classification of software defect reports |
CN108959431B (zh) * | 2018-06-11 | 2022-07-05 | 中国科学院上海高等研究院 | 标签自动生成方法、***、计算机可读存储介质及设备 |
US11087179B2 (en) * | 2018-12-19 | 2021-08-10 | Netskope, Inc. | Multi-label classification of text documents |
CN110598787B (zh) * | 2019-09-12 | 2021-06-08 | 北京理工大学 | 一种基于自定步长学习的软件bug分类方法 |
CN111552807B (zh) * | 2020-04-17 | 2023-05-30 | 银江技术股份有限公司 | 一种短文本多标签分类方法 |
-
2020
- 2020-09-18 CN CN202010984558.3A patent/CN112181814B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107273295A (zh) * | 2017-06-23 | 2017-10-20 | 中国人民解放军国防科学技术大学 | 一种基于文本混乱度的软件问题报告分类方法 |
CN108804558A (zh) * | 2018-05-22 | 2018-11-13 | 北京航空航天大学 | 一种基于语义模型的缺陷报告自动分类方法 |
CN108897815A (zh) * | 2018-06-20 | 2018-11-27 | 淮阴工学院 | 一种基于相似度模型和FastText的多标签文本分类方法 |
CN109376247A (zh) * | 2018-11-13 | 2019-02-22 | 扬州大学 | 一种基于关联规则的软件缺陷自动分类方法 |
CN110580290A (zh) * | 2019-09-12 | 2019-12-17 | 北京小米智能科技有限公司 | 用于文本分类的训练集的优化方法及装置 |
Non-Patent Citations (4)
Title |
---|
Automated Bug Report Field Reassignment and Refinement Prediction;Xin Xia等;《IEEE TRANSACTIONS ON RELIABILITY》;20151026;第65卷(第3期);第1094-1113页 * |
ML-CLUBAS: A Multi Label Bug Classification Algorithm;Naresh Kumar Nagwani等;《Journal of Software Engineering and Applications》;20121231;第5卷(第12期);第983-990页 * |
一种基于文本分类和评分机制的软件缺陷分派方法研究;史小婉;《中国优秀博硕士学位论文全文数据库(硕士)信息科技辑》;20190115(第12期);I138-1742 * |
基于代价极速学习机的软件缺陷报告分类方法;张天伦等;《软件学报》;20190515;第30卷(第5期);第1386-1406页 * |
Also Published As
Publication number | Publication date |
---|---|
CN112181814A (zh) | 2021-01-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10089581B2 (en) | Data driven classification and data quality checking system | |
CN112632980B (zh) | 一种基于大数据深度学习的企业分类方法、***及电子设备 | |
CN110134757A (zh) | 一种基于多头注意力机制的事件论元角色抽取方法 | |
CN112069310A (zh) | 基于主动学习策略的文本分类方法及*** | |
CN110413780A (zh) | 文本情感分析方法、装置、存储介质及电子设备 | |
CN112052356B (zh) | 多媒体分类方法、装置和计算机可读存储介质 | |
CN108845988B (zh) | 一种实体识别方法、装置、设备及计算机可读存储介质 | |
US11429810B2 (en) | Question answering method, terminal, and non-transitory computer readable storage medium | |
US10083403B2 (en) | Data driven classification and data quality checking method | |
US11886820B2 (en) | System and method for machine-learning based extraction of information from documents | |
CN104834940A (zh) | 一种基于支持向量机的医疗影像检查疾病分类方法 | |
CN112016633A (zh) | 一种模型训练方法、装置、电子设备及存储介质 | |
CN112181814B (zh) | 一种针对于缺陷报告的多标签标记方法 | |
CN110532563A (zh) | 文本中关键段落的检测方法及装置 | |
CN114579739B (zh) | 文本数据流的话题检测与追踪方法 | |
CN110929119A (zh) | 数据标注方法、装置、设备及计算机存储介质 | |
CN112417862A (zh) | 知识点预测方法、***和可读存储介质 | |
CN112685374B (zh) | 日志分类方法、装置及电子设备 | |
Ababneh | Investigating the relevance of Arabic text classification datasets based on supervised learning | |
CN115146062A (zh) | 融合专家推荐与文本聚类的智能事件分析方法和*** | |
CN112579730A (zh) | 高扩展性、多标签的文本分类方法和装置 | |
CN114239576A (zh) | 基于主题模型和卷积神经网络的issue标签分类方法 | |
US20210398025A1 (en) | Content Classification Method | |
CN116795980A (zh) | 一种融合细粒度要素知识的短文本分类方法 | |
d'Andecy et al. | Indus: Incremental document understanding system focus on document classification |
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 |