CN112306731B - 基于Spacy词向量的两阶段判别缺陷报告严重程度预测方法 - Google Patents

基于Spacy词向量的两阶段判别缺陷报告严重程度预测方法 Download PDF

Info

Publication number
CN112306731B
CN112306731B CN202011265113.6A CN202011265113A CN112306731B CN 112306731 B CN112306731 B CN 112306731B CN 202011265113 A CN202011265113 A CN 202011265113A CN 112306731 B CN112306731 B CN 112306731B
Authority
CN
China
Prior art keywords
defect report
severity
data set
training data
prediction model
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
CN202011265113.6A
Other languages
English (en)
Other versions
CN112306731A (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.)
Nantong University
Original Assignee
Nantong 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 Nantong University filed Critical Nantong University
Priority to CN202011265113.6A priority Critical patent/CN112306731B/zh
Publication of CN112306731A publication Critical patent/CN112306731A/zh
Application granted granted Critical
Publication of CN112306731B publication Critical patent/CN112306731B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0766Error or fault reporting or storing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/079Root cause analysis, i.e. error or fault diagnosis
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F18/00Pattern recognition
    • G06F18/20Analysing
    • G06F18/21Design or setup of recognition systems or techniques; Extraction of features in feature space; Blind source separation
    • G06F18/214Generating training patterns; Bootstrap methods, e.g. bagging or boosting
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F18/00Pattern recognition
    • G06F18/20Analysing
    • G06F18/24Classification techniques
    • G06F18/241Classification techniques relating to the classification model, e.g. parametric or non-parametric approaches
    • G06F18/2415Classification techniques relating to the classification model, e.g. parametric or non-parametric approaches based on parametric or probabilistic models, e.g. based on likelihood ratio or false acceptance rate versus a false rejection rate
    • G06F18/24155Bayesian classification
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/20Natural language analysis
    • G06F40/279Recognition of textual entities
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/045Combinations of networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • Artificial Intelligence (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Health & Medical Sciences (AREA)
  • Evolutionary Computation (AREA)
  • General Health & Medical Sciences (AREA)
  • Biomedical Technology (AREA)
  • Computational Linguistics (AREA)
  • Bioinformatics & Computational Biology (AREA)
  • Evolutionary Biology (AREA)
  • Biophysics (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Bioinformatics & Cheminformatics (AREA)
  • Molecular Biology (AREA)
  • Computing Systems (AREA)
  • Mathematical Physics (AREA)
  • Software Systems (AREA)
  • Quality & Reliability (AREA)
  • Probability & Statistics with Applications (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明提供了基于Spacy词向量的两阶段判别缺陷报告严重程度预测方法,首先从项目所在的缺陷跟踪***中搜集历史缺陷报告,并抽取描述信息summary属性和严重程度severity属性对应内容得到缺陷报告训练数据集,然后进行预处理及生成对应向量,最后执行两阶段判别过程构建严重程度预测模型。本发明的有益效果为:本发明在两阶段判别过程采用朴素贝叶斯算法,该算法易实现、效果好,可保证预测模型的准确率;该发明的严重程度预测模型对相同的数据进行两次运用,一方面实现对同一批数据的二次利用,有利于提升模型的表现;另一方面实现两阶段判别可在大类分类正确的情况下减轻多分类朴素贝叶斯预测模型的压力,进一步提高预测模型的准确率。

Description

基于Spacy词向量的两阶段判别缺陷报告严重程度预测方法
技术领域
本发明涉及软件质量保障技术领域,尤其涉及基于Spacy词向量的两阶段判别缺陷报告严重程度预测方法。
背景技术
软件缺陷与软件开发如同双生子一般形影不离,会在或大或小的程度上影响软件质量,需要得到技术人员的及时修复,且软件缺陷执行修复操作贯穿了整个软件开发的生命周期。因此,为了确保开发出来的软件的质量,如何提高软件缺陷修复效率是一个非常关键的问题。
目前,为了解决这个问题,即为了快速定位、修复软件开发过程中出现的缺陷,很多大型项目都使用软件缺陷报告跟踪***来记录缺陷信息。缺陷报告跟踪***中软件缺陷报告的严重程度主要包括Blocker、Critical、Major、Normal、Minor、Trivial和Enhancement 七个级别,其中Normal级别由于是默认归类缺陷标签,在研究过程中往往会被归类为不可信缺陷,Blocker、Critical和Major级别的缺陷归类为严重缺陷,而其他级别的缺陷归类为非严重缺陷。在进一步分类缺陷报告时,以开发人员手动定性分类为代表操作的传统分类方式具有受个人主观因素影响大、耗时长、效率低、时间和精力成本高的缺点,因此寻找自动化的替代方案已成为当务之急。
近年来在软件缺陷报告严重程度预测领域,大多数研究工作者采用分类或回归的方法一次性实现对软件缺陷报告严重程度的预测,该方法只用训练集一次即可构建相应的严重程度预测模型,存在预测模型表现不好的结果。
如何解决上述技术问题为本发明面临的课题。
发明内容
本发明的目的在于提供基于Spacy词向量的两阶段判别缺陷报告严重程度预测方法,本发明采用两阶段判别方法进行严重程度预测模型的构建,首先从项目所在的缺陷跟踪***中搜集历史缺陷报告,并抽取描述信息summary属性和严重程度severity属性对应内容得到缺陷报告训练数据集,然后进行预处理及生成对应向量,最后执行两阶段判别过程构建严重程度预测模型;该发明在两阶段判别过程采用朴素贝叶斯算法,该算法易实现、效果好,可保证预测模型的准确率;该发明的严重程度预测模型对相同的数据进行两次运用,一方面实现对同一批数据的二次利用,有利于提升模型的表现;另一方面实现两阶段判别可在大类分类正确的情况下减轻多分类朴素贝叶斯预测模型的压力,进一步提高预测模型的准确率。
本发明是通过如下措施实现的:基于Spacy词向量的两阶段判别缺陷报告严重程度预测方法,其中,所述预测方法包括以下步骤:
(1)、从项目所在的缺陷跟踪***中,搜集历史缺陷报告,针对每一份缺陷报告,抽取所述缺陷报告描述信息summary和严重程度severity两个属性的信息,构建缺陷报告训练数据集;
(2)、对所述缺陷报告训练数据集进行预处理,得到所述缺陷报告中每个描述信息summary所对应的分词;
(3)、基于在OntoNotes 5和GloVe Common Crawl数据集上使用卷积神经网络训练生成的Spacy词向量,以所述分词为特征将缺陷报告训练数据集中的每个描述信息summary表示为对应向量;
具体为:针对单个分词,使用Spacy词向量对其进行相应分词的词向量表示,然后对每个描述信息summary包含的所有分词的对应词向量进行加权平均,得到相应的描述信息 summary的对应向量;
(4)、基于所述向量,执行两阶段判别过程,构建缺陷报告严重程度预测模型;
(5)、针对输入的新的缺陷报告,执行步骤(2)、(3),得到该缺陷报告所对应的向量,然后输入步骤(4)所构建的缺陷报告严重程度预测模型,得到新缺陷报告所对应的严重程度。
作为本发明提供的基于Spacy词向量的两阶段判别缺陷报告严重程度预测方法进一步优化方案,所述步骤(2)具体包括如下步骤:
2-1)删除所述缺陷报告训练数据集中严重程度severity取值为Normal或者取值为空的缺陷报告。
2-2)根据所述缺陷报告训练数据集中的严重程度severity取值自定义其类别,首先确定其大类类别,其次确定其小类类别;
具体为:缺陷报告严重程度severity取值一般有7类,按照严重程度从高到低分别为: Block、Critical、Major、Normal、Minor、Trivial和Enhancement;由于不考虑Normal严重程度,因此对剩余的6种严重程度进行类别确定,将Blocker、Critical、Major的大类类别设置为1,小类类别依次设置为1、2和3;将Minor、Trivial、Enhancement的大类类别设置为0,小类类别依次设置为1、2和3;
2-3)对所述缺陷报告训练数据集的描述信息summary进行文本预处理,首先将所述描述信息summary进行分词,其次借助停用词表来过滤掉停用词,停用词是指在文本中经常出现,但含有极少文本信息的高频词,最后对单词进行规范化,去除词缀,得到单词对应的分词。
作为本发明提供的基于Spacy词向量的两阶段判别缺陷报告严重程度预测方法进一步优化方案,所述步骤(5)具体包括如下步骤:
5-1)针对新输入的缺陷报告,执行步骤(2)、(3)得到该缺陷报告所对应的向量;
5-2)首先使用基于二分类朴素贝叶斯算法的预测模型M预测出大类类别,如果预测得到的大类类别取值为1,则继续使用多分类预测模型M1预测出其对应的小类类别;如果预测得到的大类类别取值为0,则继续使用多分类预测模型M2预测出其对应的小类类别。
作为本发明提供的基于Spacy词向量的两阶段判别缺陷报告严重程度预测方法进一步优化方案,所述步骤(3)中基于在OntoNotes 5和GloVe Common Crawl数据集上使用卷积神经网络训练生成的Spacy词向量,以所述分词为特征将缺陷报告训练数据集中的每个描述信息summary表示为对应向量,具体包括如下步骤:
3-1)将OntoNotes 5和GloVe Common Crawl数据集分为训练集和测试集,基于训练集,使用Mutil-Task CNN算法训练模型,基于测试集,输出模型的预测偏差;
3-2)若偏差超过了预期设定值,则将得到的偏差作为新的训练参数传回模型,基于训练集重新训练模型;若偏差未超过预期设定值,则模型训练效果符合预期设想,输出模型参数,得到Spacy词向量。
作为本发明提供的基于Spacy词向量的两阶段判别缺陷报告严重程度预测方法进一步优化方案,所述步骤(4)中基于所述向量,执行两阶段判别过程,构建缺陷报告严重程度预测模型,具体包括如下步骤:
4-1)第一阶段根据所述向量和所述缺陷报告训练数据集中缺陷报告对应的大类类别,采用朴素贝叶斯分类算法,构建基于二分类朴素贝叶斯的预测模型M。
4-2)第二阶段根据所述的大类类别将缺陷报告训练数据集进一步细分为两个数据集:仅含有大类类别为1数据的训练数据集D1和仅含有大类类别为0数据的训练数据集D2。首先基于训练数据集D1,使用训练数据集D1中所包含的对应小类类别,采用朴素贝叶斯分类算法,构建基于多分类朴素贝叶斯的预测模型M1。随后基于训练数据集D2,使用训练数据集D2中所包含的对应小类类别,采用朴素贝叶斯算法,构建基于多分类朴素贝叶斯的预测模型M2。
4-3)根据4-1)所述的基于二分类朴素贝叶斯的预测模型M和4-2)所述的两个基于多分类朴素贝叶斯的预测模型M1和M2进行组合,构建缺陷报告严重程度预测模型。
与现有技术相比,本发明的有益效果为:本发明首先进行数据整理与标识,剔除数据集中的噪音数据,可提升缺陷报告严重程度预测模型的表现;其次根据两阶段的思路对数据的严重程度类别进行标注,构建两阶段严重程度预测模型,分类算法选用朴素贝叶斯算法,该算法易实现且效果较好,该模型对相同的数据进行两次运用,一方面实现对同一批数据的二次利用,有利于提升缺陷报告严重程度预测模型的表现;另一方面实现两阶段判别可在大类分类正确的情况下减轻多分类朴素贝叶斯预测模型的压力,进一步提高缺陷报告严重程度预测模型的准确率。
附图说明
附图用来提供对本发明的进一步理解,并且构成说明书的一部分,与本发明的实施例一起用于解释本发明,并不构成对本发明的限制。
图1为本发明基于Spacy词向量的两阶段判别缺陷报告严重程度预测方法的流程图。
图2为本发明基于Spacy词向量的两阶段判别缺陷报告严重程度预测方法中数据预处理阶段的流程图。
图3为本发明基于Spacy词向量的两阶段判别缺陷报告严重程度预测方法中卷积神经网络训练阶段的流程图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。当然,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。
实施例1
参见图1至图3,本发明提供其技术方案为,基于Spacy词向量的两阶段判别缺陷报告严重程度预测方法,其中,所述预测方法包括以下步骤:
(1)、从项目所在的缺陷跟踪***中,搜集历史缺陷报告,针对每一份缺陷报告,抽取所述缺陷报告描述信息summary和严重程度severity两个属性的信息,构建缺陷报告训练数据集;
(2)、对所述缺陷报告训练数据集进行预处理,得到所述缺陷报告中每个描述信息summary所对应的分词;
(3)、基于在OntoNotes 5和GloVe Common Crawl数据集上使用卷积神经网络训练生成的Spacy词向量,以所述分词为特征将缺陷报告训练数据集中的每个描述信息summary表示为对应向量;
具体为:针对单个分词,使用Spacy词向量对其进行相应分词的词向量表示,然后对每个描述信息summary包含的所有分词的对应词向量进行加权平均,得到相应的描述信息 summary的对应向量;
(4)、基于所述向量,执行两阶段判别过程,构建缺陷报告严重程度预测模型;
(5)、针对输入的新的缺陷报告,执行步骤(2)、(3),得到该缺陷报告所对应的向量,然后输入步骤(4)所构建的缺陷报告严重程度预测模型,得到新缺陷报告所对应的严重程度。
具体地,所述步骤(2)具体包括如下步骤:
2-1)删除所述缺陷报告训练数据集中严重程度severity取值为Normal或者取值为空的缺陷报告。
2-2)根据所述缺陷报告训练数据集中的严重程度severity取值自定义其类别,首先确定其大类类别,其次确定其小类类别;
具体为:缺陷报告严重程度severity取值一般有7类,按照严重程度从高到低分别为:Block、Critical、Major、Normal、Minor、Trivial和Enhancement;由于不考虑Normal 严重程度,因此对剩余的6种严重程度进行类别确定,将Blocker、Critical、Major的大类类别设置为1,小类类别依次设置为1、2和3;将Minor、Trivial、Enhancement的大类类别设置为0,小类类别依次设置为1、2和3;
2-3)对所述缺陷报告训练数据集的描述信息summary进行文本预处理,首先将所述描述信息summary进行分词,其次借助停用词表来过滤掉停用词,停用词是指在文本中经常出现,但含有极少文本信息的高频词,最后对单词进行规范化,去除词缀,得到单词对应的分词。
具体地,所述步骤(5)具体包括如下步骤:
5-1)针对新输入的缺陷报告,执行步骤(2)、(3)得到该缺陷报告所对应的向量;
5-2)首先使用基于二分类朴素贝叶斯算法的预测模型M预测出大类类别,如果预测得到的大类类别取值为1,则继续使用多分类预测模型M1预测出其对应的小类类别;如果预测得到的大类类别取值为0,则继续使用多分类预测模型M2预测出其对应的小类类别。
具体地,所述步骤(3)中基于在OntoNotes 5和GloVe Common Crawl数据集上使用卷积神经网络训练生成的Spacy词向量,以所述分词为特征将缺陷报告训练数据集中的每个描述信息summary表示为对应向量,具体包括如下步骤:
3-1)将OntoNotes 5和GloVe Common Crawl数据集分为训练集和测试集,基于训练集,使用Mutil-Task CNN算法训练模型,基于测试集,输出模型的预测偏差;
3-2)若偏差超过了预期设定值,则将得到的偏差作为新的训练参数传回模型,基于训练集重新训练模型;若偏差未超过预期设定值,则模型训练效果符合预期设想,输出模型参数,得到Spacy词向量。
具体地,所述步骤(4)中基于所述向量,执行两阶段判别过程,构建缺陷报告严重程度预测模型,具体包括如下步骤:
4-1)第一阶段根据所述向量和所述缺陷报告训练数据集中缺陷报告对应的大类类别,采用朴素贝叶斯分类算法,构建基于二分类朴素贝叶斯的预测模型M。
4-2)第二阶段根据所述的大类类别将缺陷报告训练数据集进一步细分为两个数据集:仅含有大类类别为1数据的训练数据集D1和仅含有大类类别为0数据的训练数据集D2。首先基于训练数据集D1,使用训练数据集D1中所包含的对应小类类别,采用朴素贝叶斯分类算法,构建基于多分类朴素贝叶斯的预测模型M1。随后基于训练数据集D2,使用训练数据集D2中所包含的对应小类类别,采用朴素贝叶斯算法,构建基于多分类朴素贝叶斯的预测模型M2。
4-3)根据4-1)所述的基于二分类朴素贝叶斯的预测模型M和4-2)所述的两个基于多分类朴素贝叶斯的预测模型M1和M2进行组合,构建缺陷报告严重程度预测模型。
为了更好地实现本发明目的,本发明还提供基于Spacy词向量的两阶段判别缺陷报告严重程度预测方法的具体实例,具体包括以下步骤:
步骤(1)从项目eclipse的产品platform所在缺陷跟踪***Bugzilla中,搜集历史缺陷报告,针对每一份缺陷报告,抽取所述缺陷报告描述信息summary和严重程度severity两个属性的信息,构建缺陷报告训练数据集,因数据较多,选择前5条进行展示说明,如表1所示。
表1缺陷报告训练数据集部分数据
Figure BDA0002775156860000071
Figure BDA0002775156860000081
步骤(2)对所述缺陷报告训练数据集进行预处理,得到所述缺陷报告中每个描述信息 summary所对应的分词,预处理的步骤如下:
2-1.删除所述缺陷报告训练数据集中严重程度severity取值为Normal或者取值为空的缺陷报告。其中,删除严重程度属性为Normal的缺陷报告是因为大多数的研究者认为 Normal是缺陷报告的默认属性标注,大部分提交者会不进行更改,由此,此类数据的质量参差不齐。
2-2.根据所述缺陷报告训练数据集中的严重程度severity取值自定义其类别。首先确定其大类类别,其次确定其小类类别。具体来说,缺陷报告严重程度severity取值一般有7类,按照严重程度从高到低分别为:Block、Critical、Major、Normal、Minor、Trivial 和Enhancement。由于不考虑Normal严重程度,因此对剩余的6种严重程度进行类别确定,将Blocker、Critical、Major的大类类别设置为1,小类类别依次设置为1、2和3。将Minor、Trivial、Enhancement的大类类别设置为0,小类类别依次设置为1、2和3。
2-3.对所述缺陷报告训练数据集的描述信息summary进行文本预处理,首先将所述描述信息summary进行分词,其次借助停用词表来过滤掉停用词。停用词是指在文本中经常出现,但含有极少文本信息的高频词。最后对单词进行规范化,去除词缀,得到单词对应的分词。
最终得到各缺陷报告描述信息summary所各自对应的分词,如表2所示:
表2各缺陷报告描述信息summary所各自对应的分词
Figure BDA0002775156860000082
步骤(3)基于在OntoNotes 5和GloVe Common Crawl数据集上使用卷积神经网络训练生成的Spacy词向量,以所述分词为特征将缺陷报告训练数据集中的每个描述信息summary表示为对应向量。具体的,针对单个分词,使用Spacy词向量对其进行相应分词的词向量表示,然后对每个描述信息summary包含的所有分词的对应词向量进行加权平均,得到相应的描述信息summary的对应向量。生成的向量列表如表3所示,该实施例选择使用300维的向量,表3中向量进行了省略:
表3生成的向量
错误报告编号 300维向量
221989 [1.73303291e-01,…,-1.33421989e-02]
550453 [1.73303291e-01,…,-1.33421989e-02]
3328 [1.73303291e-01,…,-1.33421989e-02]
150675 [1.73303291e-01,…,-1.33421989e-02]
步骤(4)基于所述向量,执行两阶段判别过程,构建缺陷报告严重程度预测模型:
4-1.第一阶段根据所述向量和所述缺陷报告训练数据集中缺陷报告对应的大类类别,采用朴素贝叶斯分类算法,构建基于二分类朴素贝叶斯的预测模型M。
4-2.第二阶段根据所述的大类类别将缺陷报告训练数据集进一步细分为两个数据集:仅含有大类类别为1的训练数据集D1和仅含有大类类别为0的训练数据集D2。首先基于训练数据集D1,使用训练数据集D1中小类类别,采用朴素贝叶斯分类算法,构建基于多分类朴素贝叶斯的预测模型M1。随后基于训练数据集D2,使用训练数据集D2中小类类别,采用朴素贝叶斯算法,构建基于多分类朴素贝叶斯的预测模型M2。
4-3.根据4-1所述的基于二分类朴素贝叶斯的预测模型M和4-2所述的两个基于多分类朴素贝叶斯的预测模型M1和M2进行组合,构建缺陷报告严重程度预测模型。
步骤(5)针对输入的新的缺陷报告,执行步骤(2)、(3),得到该缺陷报告所对应的向量,然后输入步骤(4)所构建的缺陷报告严重程度预测模型,得到新缺陷报告所对应的严重程度。具体步骤如下:
5-1.针对新输入的缺陷报告,执行步骤(2)、(3)得到该缺陷报告所对应的向量。
5-2.首先使用基于二分类朴素贝叶斯算法的预测模型M预测出大类类别,如果预测得到的大类类别取值为1,则继续使用多分类预测模型M1预测出其对应的小类类别。如果预测得到的大类类别取值为0,则继续使用多分类预测模型M2预测出其对应的小类类别。
在本实施样例中,新输入的缺陷报告信息如下表4所示:
表4新输入的缺陷报告信息
Figure BDA0002775156860000101
最终预测结果如表5所示。
表5严重程度severity预测结果与实际预测结果对照表
Figure BDA0002775156860000102
为了评估严重程度预测模型的表现,采用预测准确率作为评估指标。
为说明本发明的实验效果,采用K近邻分类、高斯贝叶斯、线性判别、决策树等常用的分类方法作为基准进行比较。为了使得结果尽可能客观化、标准化,直接采用了目前被广泛使用的sklearn库中封装好的各个分类预测方法的已有函数并使用同样的输入词向量进行训练。在相同的实验框架下,使用一致的随机种子,将缺陷报告训练数据集按照训练集:测试集取7:3的比例,采用留出法划分为训练集、测试集,确保了条件一致。
本发明与所用各种基准对照方法的预测准确率如表6所示。
表6本发明方法与各基准方法预测准确率对照表
方法名称 预测准确率
基于Spacy词向量的两阶段判别缺陷报告严重程度预测方法 72.4%
K近邻分类 71.7%
决策树 68.9%
高斯贝叶斯 59.0%
线性判别 40.7%
以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

Claims (4)

1.基于Spacy词向量的两阶段判别缺陷报告严重程度预测方法,其特征在于,所述预测方法包括以下步骤:
(1)、从项目所在的缺陷跟踪***中,搜集历史缺陷报告,针对每一份缺陷报告,抽取所述缺陷报告的描述信息summary和严重程度severity两个属性的信息,构建缺陷报告训练数据集;
(2)、对所述缺陷报告训练数据集进行预处理,得到所述缺陷报告中每个描述信息summary所对应的分词;
(3)、基于在OntoNotes 5和GloVe Common Crawl数据集上使用卷积神经网络训练生成的Spacy词向量,以所述分词为特征将缺陷报告训练数据集中的每个描述信息summary表示为对应向量;
具体为:针对单个分词,使用Spacy词向量对其进行相应分词的词向量表示,然后对每个描述信息summary包含的所有分词的对应词向量进行加权平均,得到相应的描述信息summary的对应向量;
(4)、基于所述向量,执行两阶段判别过程,构建缺陷报告严重程度预测模型;
(5)、针对输入的新的缺陷报告,执行步骤(2)、(3),得到该缺陷报告所对应的向量,然后输入步骤(4)所构建的缺陷报告严重程度预测模型,得到新缺陷报告所对应的严重程度;
所述步骤(4)中基于所述向量,执行两阶段判别过程,构建缺陷报告严重程度预测模型,具体包括如下步骤:
4-1)第一阶段根据所述向量和所述缺陷报告训练数据集中缺陷报告对应的大类类别,采用朴素贝叶斯分类算法,构建基于二分类朴素贝叶斯的预测模型M;
4-2)第二阶段根据所述的大类类别将缺陷报告训练数据集进一步细分为两个数据集:仅含有大类类别为1数据的训练数据集D1和仅含有大类类别为0数据的训练数据集D2,首先基于训练数据集D1,使用训练数据集D1中所包含的对应小类类别,采用朴素贝叶斯分类算法,构建基于多分类朴素贝叶斯的预测模型M1,随后基于训练数据集D2,使用训练数据集D2中所包含的对应小类类别,采用朴素贝叶斯算法,构建基于多分类朴素贝叶斯的预测模型M2;
4-3)根据4-1)所述的基于二分类朴素贝叶斯的预测模型M和4-2)所述的两个基于多分类朴素贝叶斯的预测模型M1和M2进行组合,构建缺陷报告严重程度预测模型。
2.根据权利要求1所述的基于Spacy词向量的两阶段判别缺陷报告严重程度预测方法,其特征在于,所述步骤(2)具体包括如下步骤:
2-1)删除所述缺陷报告训练数据集中严重程度severity取值为Normal或者取值为空的缺陷报告;
2-2)根据所述缺陷报告训练数据集中的严重程度severity取值自定义其类别,首先确定其大类类别,其次确定其小类类别;
具体为:缺陷报告严重程度severity取值一般有7类,按照严重程度从高到低分别为:Block、Critical、Major、Normal、Minor、Trivial和Enhancement;由于不考虑Normal严重程度,因此对剩余的6种严重程度进行类别确定,将Blocker、Critical、Major的大类类别设置为1,小类类别依次设置为1、2和3;将Minor、Trivial、Enhancement的大类类别设置为0,小类类别依次设置为1、2和3;
2-3)对所述缺陷报告训练数据集的描述信息summary进行文本预处理,首先将所述描述信息summary进行分词,其次借助停用词表来过滤掉停用词,停用词是指在文本中经常出现,但含有极少文本信息的高频词,最后对单词进行规范化,去除词缀,得到单词对应的分词。
3.根据权利要求1所述的基于Spacy词向量的两阶段判别缺陷报告严重程度预测方法,其特征在于,所述步骤(5)具体包括如下步骤:
5-1)针对新输入的缺陷报告,执行步骤(2)、(3)得到该缺陷报告所对应的向量;
5-2)首先使用基于二分类朴素贝叶斯的预测模型M预测出大类类别,如果预测得到的大类类别取值为1,则继续使用基于多分类朴素贝叶斯的预测模型M1预测出其对应的小类类别;如果预测得到的大类类别取值为0,则继续使用基于多分类朴素贝叶斯的预测模型M2预测出其对应的小类类别。
4.根据权利要求1所述的基于Spacy词向量的两阶段判别缺陷报告严重程度预测方法,其特征在于,所述步骤(3)中基于在OntoNotes 5和GloVe Common Crawl数据集上使用卷积神经网络训练生成的Spacy词向量,以所述分词为特征将缺陷报告训练数据集中的每个描述信息summary表示为对应向量,具体包括如下步骤:
3-1) 将OntoNotes 5和GloVe Common Crawl数据集分为训练集和测试集,基于训练集,使用Mutil-Task CNN算法训练模型,基于测试集,输出模型的预测偏差;
3-2)若偏差超过了预期设定值,则将得到的偏差作为新的训练参数传回模型,基于训练集重新训练模型;若偏差未超过预期设定值,则模型训练效果符合预期设想,输出模型参数,得到Spacy词向量。
CN202011265113.6A 2020-11-12 2020-11-12 基于Spacy词向量的两阶段判别缺陷报告严重程度预测方法 Active CN112306731B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202011265113.6A CN112306731B (zh) 2020-11-12 2020-11-12 基于Spacy词向量的两阶段判别缺陷报告严重程度预测方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202011265113.6A CN112306731B (zh) 2020-11-12 2020-11-12 基于Spacy词向量的两阶段判别缺陷报告严重程度预测方法

Publications (2)

Publication Number Publication Date
CN112306731A CN112306731A (zh) 2021-02-02
CN112306731B true CN112306731B (zh) 2021-11-09

Family

ID=74326048

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202011265113.6A Active CN112306731B (zh) 2020-11-12 2020-11-12 基于Spacy词向量的两阶段判别缺陷报告严重程度预测方法

Country Status (1)

Country Link
CN (1) CN112306731B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114021151B (zh) * 2021-11-17 2022-07-01 山东云天安全技术有限公司 基于Summary长度特征预测工控网漏洞的***

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20180173495A1 (en) * 2016-12-19 2018-06-21 Accenture Global Solutions Limited Duplicate and similar bug report detection and retrieval using neural networks
CN110502361A (zh) * 2019-08-29 2019-11-26 扬州大学 面向bug报告的细粒度缺陷定位方法

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20190068205A (ko) * 2017-12-08 2019-06-18 중앙대학교 산학협력단 버그 리포트의 자동 담당자 배정 시스템 및 방법
CN117230210A (zh) * 2023-10-27 2023-12-15 中国农业大学 一种与奶牛乳成分性状相关基因ldha的snp分子标记及其应用

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20180173495A1 (en) * 2016-12-19 2018-06-21 Accenture Global Solutions Limited Duplicate and similar bug report detection and retrieval using neural networks
CN110502361A (zh) * 2019-08-29 2019-11-26 扬州大学 面向bug报告的细粒度缺陷定位方法

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
The Automatic Classification of Fault Trigger Based Bug Report;Xiaoting Du等;《 2017 IEEE International Symposium on Software Reliability Engineering Workshops (ISSREW)》;20171026;第259-265页 *
基于缺陷报告分析的软件缺陷定位方法;高子欣等;《软件》;20190515;第40卷(第5期);第8-15页 *

Also Published As

Publication number Publication date
CN112306731A (zh) 2021-02-02

Similar Documents

Publication Publication Date Title
CN107294993B (zh) 一种基于集成学习的web异常流量监测方法
CN106845717B (zh) 一种基于多模型融合策略的能源效率评价方法
CN111428733A (zh) 基于语义特征空间转换的零样本目标检测方法及***
CN110826618A (zh) 一种基于随机森林的个人信用风险评估方法
CN109492106B (zh) 一种文本代码相结合的缺陷原因自动分类方法
CN112767106B (zh) 自动化审计方法、***、计算机可读存储介质及审计设备
CN111626821A (zh) 基于集成特征选择实现客户分类的产品推荐方法及***
CN112651296A (zh) 一种无先验知识数据质量问题自动探查方法及***
CN111338950A (zh) 一种基于谱聚类的软件缺陷特征选择方法
CN110794360A (zh) 一种基于机器学习预测智能电能表故障的方法及***
CN112682273B (zh) 基于代价敏感轻量级梯度提升机的风电机组故障检测方法
CN117033912B (zh) 一种设备故障预测方法、装置、可读存储介质及电子设备
CN111737477A (zh) 一种基于知识产权大数据的情报调查方法、***和存储介质
CN115358481A (zh) 一种企业外迁预警识别的方法、***及装置
CN112306731B (zh) 基于Spacy词向量的两阶段判别缺陷报告严重程度预测方法
CN115146062A (zh) 融合专家推荐与文本聚类的智能事件分析方法和***
CN116628584A (zh) 电力敏感数据处理方法、装置、电子设备及存储介质
CN110765781A (zh) 一种领域术语语义知识库人机协同构建方法
CN112306730B (zh) 基于历史项目伪标签生成的缺陷报告严重程度预测方法
CN112148605B (zh) 一种基于谱聚类的半监督学习的软件缺陷预测方法
CN114626485A (zh) 一种基于改进knn算法的数据标签分类方法及装置
CN109614489B (zh) 一种基于迁移学习和特征提取的Bug报告严重程度识别方法
CN114186644A (zh) 一种基于优化随机森林的缺陷报告严重程度预测方法
Luo et al. Class-specific attribute reduction based on neighborhood conditional entropy
CN112579667B (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