CN113900924A - 基于tan半朴素贝叶斯网络的软件缺陷预测方法和系统 - Google Patents

基于tan半朴素贝叶斯网络的软件缺陷预测方法和系统 Download PDF

Info

Publication number
CN113900924A
CN113900924A CN202111038761.2A CN202111038761A CN113900924A CN 113900924 A CN113900924 A CN 113900924A CN 202111038761 A CN202111038761 A CN 202111038761A CN 113900924 A CN113900924 A CN 113900924A
Authority
CN
China
Prior art keywords
classification
word
prediction
node
nodes
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
CN202111038761.2A
Other languages
English (en)
Other versions
CN113900924B (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.)
CETC 32 Research Institute
Original Assignee
CETC 32 Research Institute
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 CETC 32 Research Institute filed Critical CETC 32 Research Institute
Priority to CN202111038761.2A priority Critical patent/CN113900924B/zh
Publication of CN113900924A publication Critical patent/CN113900924A/zh
Application granted granted Critical
Publication of CN113900924B publication Critical patent/CN113900924B/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/36Preventing errors by testing or debugging software
    • G06F11/3604Software analysis for verifying properties of programs
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Bioinformatics & Computational Biology (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Evolutionary Biology (AREA)
  • Evolutionary Computation (AREA)
  • Bioinformatics & Cheminformatics (AREA)
  • Artificial Intelligence (AREA)
  • Probability & Statistics with Applications (AREA)
  • Software Systems (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明提供了一种基于TAN半朴素贝叶斯网络的软件缺陷预测方法和系统,包括:收集历史缺陷记录形成训练数据集;将训练数据集中历史项目汇总;对待预测文本进行分词得到分词集合;将分词集合中重复的分词进行归并处理,形成特征词集;计算特征词集中任意两个特征词之间的条件互信息值;以特征词集中每个特征词作为节点,互信息值为边构建无向图;选择任意节点作为根节点,由根节点向外的方向为节点之间的流转方向,依次递归设置无向图中节点间的流转方向,形成有向无环图;构建TAN半朴素贝叶斯网络并基于分词集合,计算并比较预测分类集中每一个分类的后验概率值,将后验概率值最大的分类作为最终的软件缺陷预测结果。

Description

基于TAN半朴素贝叶斯网络的软件缺陷预测方法和系统
技术领域
本发明涉及软件缺陷预测技术领域,具体地,涉及一种基于TAN半朴素贝叶斯网络的软件缺陷预测方法和系统。
背景技术
软件的应用领域十分广泛,在许多现代化大型装备系统中,由软件实现的关键功能越来越多。百万行代码以上规模软件系统中,百分之八十以上的功能都由软件实现。同时,软件占比越高,由于软件的缺陷所导致的问题也越来越严重。为了有效避免由于软件缺陷所导致的问题,需要从历史项目软件缺陷数据中分析并归纳出具有代表性特征的软件缺陷,使用机器学习等智能化方法对整理出的软件缺陷数据进行训练,对新研软件的需求进行软件缺陷预测。
对软件缺陷进行预测的智能化方法有很多,这些方法主要有机器学习、数据挖掘、模式识别。其中在自然语言文本分类方面采用的算法包括信念贝叶斯、全连接贝叶斯网络、朴素贝叶斯算法、支持向量机算法、神经网络等。其中,全连接贝叶斯网络的计算开销大,许多原本无关联的特征因素都被加入到预测结果中,导致预测结果准确性较低。而朴素贝叶斯算法由于其计算量和计算复杂度相对于其他算法而言实现起来较为简单而得到广泛的采纳。但同时,朴素贝叶斯也存在着一个问题,该算法假设各属性之间是相互独立的,这不符合软件缺陷预测问题中,特征值之间也存在关联关系的实际情况。因此,传统的朴素贝叶斯算法无法在软件缺陷预测问题中取得理想的软件缺陷分类效果。为此,许多研究人员尝试对特征条件独立性这一假设进行修改,允许一些特征之间存在关联关系,而不是完全的相互独立。以此来减少对完全联合概率的大量计算,同时也将实际问题中已存在的较强的特征之间的关联关系纳入到算法的概率计算当中。近年来比较常见的半朴素贝叶斯方法有ODE和TAN,其中ODE方法又可以分为SPODE和AODE,而AODE是对SPODE的改进。SPODE模型假设所有特征都依赖于同一个特征,通过交叉验证等方法来确定这个特征。AODE在SPODE的基础上,将那些具有足够训练数据支撑的SPODE集成起来作为最终结果。TAN则通过计算两两特征之间的互信息量,以特征为节点,互信息量为边生成一个图,再从图中找到一个最大带权生成树,将特征词作为输入,通过计算联合概率值而得到分类结果。
专利文献CN107391772A(申请号:CN201710832802.2)本发明公开了一种基于朴素贝叶斯的文本分类方法。然而该专利没有解决全连接贝叶斯网络分类预测模型空间开销大、计算性能差、预测精度低的问题。
专利文献CN106056164A(申请号:CN201610412995.1)公开了一种基于贝叶斯网络的分类预测方法。然而该专利没有解决朴素贝叶斯网络分类预测模型虽计算性能好,但依赖于所有特征间条件独立性假设,而该假设在现实任务中往往很难成立的问题。
专利文献CN108763096A(申请号:CN201810571352.0)公开了一种基于深度信念网络算法支持向量机DBN-SVM的软件缺陷预测方法。然而该专利没有解决计算特征间互信息量CMI时,仅仅考虑了特征词词频的重要性,而忽视了常用词作为特征词时对计算CMI造成影响和干扰的问题。
专利文献CN107133179A(申请号:CN201710417699.5)公开了一种基于贝叶斯网络的网站缺陷预测方法及其实现系统,所述方法建立HTML贝叶斯网络结构以及代码贝叶斯网络结构,并对所述HTML贝叶斯网络结构以及代码贝叶斯网络结构输入历史度量元状态值进行最大似然性估算学习,构成贝叶斯网络模型;将带测网页的度量元状态值带入贝叶斯网络模型,得到预测的缺陷情况;所述实现系统包含度量元采集模块、度量元处理模块、HTML贝叶斯网络模块以及代码贝叶斯网络模块,所述度量元采集模块对HTML及代码的各度量元进行采集,并由度量元处理模块转换成度量元状态值,输入到HTML贝叶斯网络模块以及代码贝叶斯网络模块中进行缺陷预测。然而该专利无法解决全连接贝叶斯网络分类预测模型空间开销大、计算性能差、预测精度低的问题。
发明内容
针对现有技术中的缺陷,本发明的目的是提供一种基于TAN半朴素贝叶斯网络的软件缺陷预测方法和系统。
根据本发明提供的基于TAN半朴素贝叶斯网络的软件缺陷预测方法,包括:
步骤1:收集历史项目中由软件功能描述、缺陷描述和缺陷类型信息构成的软件缺陷记录,通过数据整理、清洗和优化后进行格式化存储,形成用于软件缺陷预测的训练数据集;
步骤2:将训练数据集中历史项目的软件功能描述汇总后作为训练文本集,将训练数据集中所有缺陷类型汇总后作为预测分类集,同时将软件功能描述所关联的缺陷类型作为训练文本集中每个训练文本的分类标签;
步骤3:通过分词工具,对待预测的软件功能描述文本进行分词,将分词与预设停用词集进行比较,去掉待预测文本中无意义的词语,得到去噪的允许分词重复的分词集合;
步骤4:将分词集合中重复的分词进行归并处理,形成不允许分词重复的特征词集;
步骤5:基于训练文本集,计算特征词集中任意两个特征词之间的条件互信息值;
步骤6:以特征词集中每个特征词作为节点,任意两个特征词的互信息值为边构建无向图,通过最大带权生成树算法定义节点间的连接规则;
步骤7:基于无向图,选择任意节点作为根节点,由根节点向外的方向为节点之间的流转方向,依次递归设置无向图中节点间的流转方向,最终形成一个有向无环图;
步骤8:将分类标签作为有向无环图中所有节点的父节点,并设置由父节点向外方向作为节点之间的流转方向,最终构建出TAN半朴素贝叶斯网络;
步骤9:基于TAN半朴素贝叶斯网络和分词集合,计算并比较预测分类集中每一个分类的后验概率值,将后验概率值最大的分类作为最终的软件缺陷预测结果。
优选的,特征词集中任意两个特征词之间的条件互信息值的计算公式为:
Figure BDA0003248267640000031
式中,c表示预测分类集Y中的分类标签,后验概率P(wi,wj|c)、P(wi|c)和P(wj|c)的计算因子在常规的词频算子基础上,借鉴tf-idf关键词提取算法,增加逆分类频率算子,同时为了防止词频算子和拟分类频率算子出现0的情况,对这两个算子都进行拉普拉斯平滑变换处理,计算公式为:
Figure BDA0003248267640000032
Figure BDA0003248267640000033
Figure BDA0003248267640000034
|Dc|指训练文本集D中分类标签c下各文本的分词总数,如果某个分词重复出现则需要进行叠加计算;
Figure BDA0003248267640000041
指训练文本集D在分类标签c下的所有文本中,特征词wi出现的次数累加之和;
Figure BDA0003248267640000042
指训练文本集D在分类标签c下的所有文本中,特征词wj出现的次数累加之和;
Figure BDA0003248267640000043
指训练文本集D在分类标签c下的所有文本中,特征词wi出现的次数和wj出现的次数累加之和;|B|指训练文本集D中所有分词的个数,如果某个分词重复出现则只记录一次;|Y|指预测分类集Y的分类总数;
Figure BDA0003248267640000044
指预测分类集Y中包含特征词wi的分类数;
Figure BDA0003248267640000045
指预测分类集Y中包含特征词wj的分类数;
Figure BDA0003248267640000046
指预测分类集Y中既包含特征词wi又包含特征词wj的分类数。
优选的,预测结果的判断准则为:
Figure BDA0003248267640000047
基于贝叶斯定理和输入的分词集合x1,x2,...,xn,关于预测分类后验概率的计算公式为:
Figure BDA0003248267640000048
式中,由于对所有c∈Y的分类计算其后验概率P(c|x1,x2,...,xn),其分母∑kP(x1,x2,...,xn|Y=Yk)P(Yk)均一致,则推导出P(c|x1,x2,...,xn)仅正相关于分子部分P(c)P(x1,x2,...,xn|c),如下式所示:
P(c|x1,x2,...,xn)∝P(c)P(x1,x2,...,xn|c)…………(7)。
优选的,比较分类c的后验概率值简化为比较P(c)P(x1,x2,...,xn|c)的值,其中P(c)是分类c的先验概率;
基于已训练生成的TAN半朴素贝叶斯网络,依据马尔科夫链假设原理,贝叶斯网络中每一个节点在其父节点的值指定后,这个节点条件独立于其所有非父节点;同时依据head-to-head条件独立定理,节点值在未指定的情况下,其所有的父节点相互独立;
对后验概率P(x1,x2,...,xn|c)的计算方法进行简化,简化后的计算公式如下所示:
Figure BDA0003248267640000051
其中,px1,...,pxm是xi的分词父节点,分类标签c是xi的分类父节点。
优选的,后验概率P(xi|c,px1,...,pxm)的计算因子在常规的词频算子基础上,借鉴tf-idf关键词提取算法,增加逆分类频率算子,同时为了防止词频算子和拟分类频率算子出现0的情况,对这两个算子都进行拉普拉斯平滑变换处理,后验概率P(xi|c,px1,...,pxm)的计算公式如下所示:
Figure BDA0003248267640000052
式中,
Figure BDA0003248267640000053
指挑选出训练文本集D分类标签c下,同时出现分词px1,...,pxm的各个文本,计算这些文本中所有的分词总数,如果某个分词重复出现则需要进行叠加计算;
Figure BDA0003248267640000054
指挑选出训练文本集D分类标签c下,同时出现分词px1,...,pxm的各个文本,计算这些文本中分词xi出现的次数累加之和;|B|指训练文本集D中所有分词的个数,如果某个分词重复出现则只记录一次;|Y|指预测分类集Y的分类总数;
Figure BDA0003248267640000055
指预测分类集Y中包含分词xi的分类数。
根据本发明提供的基于TAN半朴素贝叶斯网络的软件缺陷预测系统,包括:
模块M1:收集历史项目中由软件功能描述、缺陷描述和缺陷类型信息构成的软件缺陷记录,通过数据整理、清洗和优化后进行格式化存储,形成用于软件缺陷预测的训练数据集;
模块M2:将训练数据集中历史项目的软件功能描述汇总后作为训练文本集,将训练数据集中所有缺陷类型汇总后作为预测分类集,同时将软件功能描述所关联的缺陷类型作为训练文本集中每个训练文本的分类标签;
模块M3:通过分词工具,对待预测的软件功能描述文本进行分词,将分词与预设停用词集进行比较,去掉待预测文本中无意义的词语,得到去噪的允许分词重复的分词集合;
模块M4:将分词集合中重复的分词进行归并处理,形成不允许分词重复的特征词集;
模块M5:基于训练文本集,计算特征词集中任意两个特征词之间的条件互信息值;
模块M6:以特征词集中每个特征词作为节点,任意两个特征词的互信息值为边构建无向图,通过最大带权生成树算法定义节点间的连接规则;
模块M7:基于无向图,选择任意节点作为根节点,由根节点向外的方向为节点之间的流转方向,依次递归设置无向图中节点间的流转方向,最终形成一个有向无环图;
模块M8:将分类标签作为有向无环图中所有节点的父节点,并设置由父节点向外方向作为节点之间的流转方向,最终构建出TAN半朴素贝叶斯网络;
模块M9:基于TAN半朴素贝叶斯网络和分词集合,计算并比较预测分类集中每一个分类的后验概率值,将后验概率值最大的分类作为最终的软件缺陷预测结果。
优选的,特征词集中任意两个特征词之间的条件互信息值的计算公式为:
Figure BDA0003248267640000061
式中,c表示预测分类集Y中的分类标签,后验概率P(wi,wj|c)、P(wi|c)和P(wj|c)的计算因子在常规的词频算子基础上,借鉴tf-idf关键词提取算法,增加逆分类频率算子,同时为了防止词频算子和拟分类频率算子出现0的情况,对这两个算子都进行拉普拉斯平滑变换处理,计算公式为:
Figure BDA0003248267640000062
Figure BDA0003248267640000063
Figure BDA0003248267640000064
|Dc|指训练文本集D中分类标签c下各文本的分词总数,如果某个分词重复出现则需要进行叠加计算;
Figure BDA0003248267640000065
指训练文本集D在分类标签c下的所有文本中,特征词wi出现的次数累加之和;
Figure BDA0003248267640000066
指训练文本集D在分类标签c下的所有文本中,特征词wj出现的次数累加之和;
Figure BDA0003248267640000067
指训练文本集D在分类标签c下的所有文本中,特征词wi出现的次数和wj出现的次数累加之和;|B|指训练文本集D中所有分词的个数,如果某个分词重复出现则只记录一次;|Y|指预测分类集Y的分类总数;
Figure BDA0003248267640000071
指预测分类集Y中包含特征词wi的分类数;
Figure BDA0003248267640000072
指预测分类集Y中包含特征词wj的分类数;
Figure BDA0003248267640000073
指预测分类集Y中既包含特征词wi又包含特征词wj的分类数。
优选的,预测结果的判断准则为:
Figure BDA0003248267640000074
基于贝叶斯定理和输入的分词集合x1,x2,...,xn,关于预测分类后验概率的计算公式为:
Figure BDA0003248267640000075
式中,由于对所有c∈Y的分类计算其后验概率P(c|x1,x2,...,xn),其分母∑kP(x1,x2,...,xn|Y=Yk)P(Yk)均一致,则推导出P(c|x1,x2,...,xn)仅正相关于分子部分P(c)P(x1,x2,...,xn|c),如下式所示:
P(c|x1,x2,...,xn)∝P(c)P(x1,x2,...,xn|c)…………(7)。
优选的,比较分类c的后验概率值简化为比较P(c)P(x1,x2,...,xn|c)的值,其中P(c)是分类c的先验概率;
基于已训练生成的TAN半朴素贝叶斯网络,依据马尔科夫链假设原理,贝叶斯网络中每一个节点在其父节点的值指定后,这个节点条件独立于其所有非父节点;同时依据head-to-head条件独立定理,节点值在未指定的情况下,其所有的父节点相互独立;
对后验概率P(x1,x2,...,xn|c)的计算方法进行简化,简化后的计算公式如下所示:
Figure BDA0003248267640000076
其中,px1,...,pxm是xi的分词父节点,分类标签c是xi的分类父节点。
优选的,后验概率P(xi|c,px1,...,pxm)的计算因子在常规的词频算子基础上,借鉴tf-idf关键词提取算法,增加逆分类频率算子,同时为了防止词频算子和拟分类频率算子出现0的情况,对这两个算子都进行拉普拉斯平滑变换处理,后验概率P(xi|c,px1,...,pxm)的计算公式如下所示:
Figure BDA0003248267640000081
式中,
Figure BDA0003248267640000082
指挑选出训练文本集D分类标签c下,同时出现分词px1,...,pxm的各个文本,计算这些文本中所有的分词总数,如果某个分词重复出现则需要进行叠加计算;
Figure BDA0003248267640000083
指挑选出训练文本集D分类标签c下,同时出现分词px1,...,pxm的各个文本,计算这些文本中分词xi出现的次数累加之和;|B|指训练文本集D中所有分词的个数,如果某个分词重复出现则只记录一次;|Y|指预测分类集Y的分类总数;
Figure BDA0003248267640000084
指预测分类集Y中包含分词xi的分类数。
与现有技术相比,本发明具有如下的有益效果:
(1)本发明基于TAN半朴素贝叶斯网络的软件缺陷预测模型,既不需要进行完全联合概率计算,又不至于彻底忽略了比较强的特征依赖关系,降低了预测模型的时空开销,提高了预测模型的预测性能;
(2)本发明通过在软件项目中进行软件缺陷预测技术的应用,可以协助软件开发人员和软件质量人员在软件生命周期模型的早期阶段(例如软件需求分析阶段),基于软件项目的功能描述等需求信息和TAN半朴素贝叶斯网络软件缺陷预测模型预测出软件可能存在的潜在缺陷及其分布情况,可极大的降低软件缺陷造成的危害和影响,以及修复软件缺陷所花费的人力成本;
(3)本发明通过基于TAN半朴素贝叶斯网络的软件缺陷预测这种智能化方法在各类软件项目中推广和应用,随着项目中软件缺陷数据的不断积累,软件缺陷预测模型可以自反馈的迭代补充先验数据,逐步优化TAN半朴素贝叶斯网络结构,从而进一步提高软件缺陷预测模型的预测性能。
附图说明
通过阅读参照以下附图对非限制性实施例所作的详细描述,本发明的其它特征、目的和优点将会变得更明显:
图1为软件缺陷预测方法流程图;
图2为TAN半朴素贝叶斯网络构造过程图。
具体实施方式
下面结合具体实施例对本发明进行详细说明。以下实施例将有助于本领域的技术人员进一步理解本发明,但不以任何形式限制本发明。应当指出的是,对本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变化和改进。这些都属于本发明的保护范围。
实施例:
如图1,根据本发明提供的一种基于TAN半朴素贝叶斯网络的软件缺陷预测方法,具体实现方式包括以下步骤:
步骤S1:收集历史项目中由软件功能描述、缺陷描述、缺陷类型等信息构成的软件缺陷记录,通过数据整理、清洗和优化后进行格式化存储,形成可用于软件缺陷预测的训练数据集。
步骤S2:将训练数据集中历史项目的软件功能描述作为训练文本集D,将训练数据集中所有缺陷类型汇总后作为预测分类集Y,同时将软件功能描述所关联的缺陷类型作为训练文本集D中每个训练文本的分类标签c。
具体包括以下步骤:
步骤S21:将训练数据集进行格式化处理,形成训练文本集D。训练文本集中每条文本包括软件功能描述和分类标签(即缺陷类型)两个属性。
步骤S22:根据软件功能描述和缺陷描述等信息,将缺陷类别归纳为接口数据缺陷、功能逻辑缺陷、功能组合缺陷和状态场景缺陷4大类。
步骤S23:基于已定义的缺陷类别,通过对缺陷发生的内在机理进行分析,定义出缺陷类型并作为预测分类集Y。具体的,缺陷类型如下表所示:
表1缺陷类型表
Figure BDA0003248267640000091
Figure BDA0003248267640000101
步骤S3:将准备进行软件缺陷预测的新研项目软件功能描述文本利用分词工具进行分词,形成一组分词。将这些分词与停用词集进行比较,去掉待预测文本中无意义的词语,得到去噪的允许分词重复的分词集合(x1,x2,x3,...,xn)。
步骤S4:将分词集合(x1,x2,x3,...,xn)中重复的分词进行归并处理,形成不允许分词重复的特征词集(w1,w2,w3,...,wn)。
步骤S5:基于训练文本集D,计算特征词集(w1,w2,w3,...,wn)中任意两个特征词之间的条件互信息值CMI,即相互依赖程度;
计算公式如下所示:
Figure BDA0003248267640000102
上式中,c表示预测分类集Y中的某一个分类标签(即缺陷类型),另外公式1中后验概率P(wi,wj|c)、P(wi|c)和P(wj|c)的计算因子在常规的词频算子基础上,借鉴tf-idf关键词提取算法,创新增加了逆分类频率算子。同时为了防止词频算子和拟分类频率算子出现0的情况,对这两个算子都进行拉普拉斯平滑变换处理,其计算公式分别如下所示:
Figure BDA0003248267640000111
Figure BDA0003248267640000112
Figure BDA0003248267640000113
在公式2、3、4中,|Dc|指训练文本集D中分类标签c下各文本的分词总数,需特别注意的是,如果某个分词重复出现则需要进行叠加计算;
Figure BDA0003248267640000114
指训练文本集D在分类标签c下的所有文本中,特征词wi出现的次数累加之和;
Figure BDA0003248267640000115
指训练文本集D在分类标签c下的所有文本中,特征词wj出现的次数累加之和;
Figure BDA0003248267640000116
指训练文本集D在分类标签c下的所有文本中,特征词wi出现的次数和wj出现的次数累加之和;|B|指训练文本集D中所有分词的个数,需要注意的是,如果某个分词重复出现则只记录一次;|Y|指预测分类集Y的分类总数,即缺陷类型总数;
Figure BDA0003248267640000117
指预测分类集Y中包含特征词wi的分类数;
Figure BDA0003248267640000118
指预测分类集Y中包含特征词wj的分类数;
Figure BDA0003248267640000119
指预测分类集Y中既包含特征词wi又包含特征词wj的分类数。
步骤S6:以特征词集(w1,w2,w3,...,wn)中每个特征词作为节点,任意两个特征词的互信息值CMI为边构建一张无向图,通过最大带权生成树算法定义节点间的连接规则。
这个规则需要满足以下三个条件:
①能够连接所有节点;
②使用最少数目的边;
③边长(即CMI值)总和最大。
因此,其最大带权生成树构造过程包括以下步骤:
步骤S61:定义一个节点对集合S,其初始值为空。
步骤S62:将互信息值CMI最大的两个特征词构成节点对纳入到集合S中。
步骤S63:从高到低依次将CMI值所涉及的两个特征词与集合S中的特征词进行比对,若两个特征词均在集合S中出现,则忽略;否则将两个特征词构成节点对纳入到集合S中,直到集合S中涵盖了所有特征词集(w1,w2,w3,...,wn)中的所有特征词。
步骤S64:将集合S中每个节点对依次建边后,则形成了最大带权生成树。
步骤S7:基于已构建的由特征词集(w1,w2,w3,...,wn)作为节点组成的无向图,选择任意节点作为根节点,由根节点向外的方向为节点之间的流转方向,依次递归设置无向图中节点间的流转方向,最终形成一个有向无环图DAG。
步骤S8:将分类标签c(即缺陷类型)作为有向无环图DAG中所有节点(即特征词)的父节点,并设置由父节点向外方向作为节点之间的流转方向,最终构建出TAN半朴素贝叶斯网络,构建过程如图2a~图2d。
步骤S9:基于已训练生成的TAN半朴素贝叶斯网络和由新研项目软件需求描述文本分词后构造的分词集合(x1,x2,x3,...,xn),计算并比较分类集Y中每一个分类c的后验概率值,后验概率值最大的分类(即缺陷类型)则为最终的软件缺陷预测结果。其预测结果的判断准则如下所示:
Figure BDA0003248267640000121
基于贝叶斯定理和输入的分词集合(x1,x2,x3,...,xn),关于预测分类c后验概率的计算公式如下所示:
Figure BDA0003248267640000122
在上式中,由于对所有c∈Y的分类计算其后验概率P(c|x1,x2,...,xn),其分母∑kP(x1,x2,...,xn|Y=Yk)P(Yk)均一致,则可推导出P(c|x1,x2,...,xn)仅正相关于分子部分P(c)P(x1,x2,...,xn|c),如下式所示:
P(c|x1,x2,...,xn)∝P(c)P(x1,x2,...,xn|c)…………(公式7)
因此,比较分类c的后验概率值可以简化为比较P(c)P(x1,x2,...,xn|c)的值,其中P(c)是分类c的先验概率,即训练文本集D中分类标签为c的文本数与训练文本集D中所有文本数的比值;基于已训练生成的TAN半朴素贝叶斯网络,依据马尔科夫链假设原理,贝叶斯网络中每一个节点在其父节点的值指定后,这个节点条件独立于其所有非父节点;同时依据head-to-head条件独立定理,节点值在未指定的情况下,其所有的父节点相互独立。可对后验概率P(x1,x2,...,xn|c)的计算方法进行简化,简化后的计算公式如下所示:
Figure BDA0003248267640000131
其中,px1,...,pxm是xi的分词父节点,分类标签c是xi的分类父节点,它们共同构成了xi的父节点。
另外,公式8中后验概率P(xi|c,px1,...,pxm)的计算因子在常规的词频算子基础上,借鉴tf-idf关键词提取算法,创新增加了逆分类频率算子。同时为了防止词频算子和拟分类频率算子出现0的情况,对这两个算子都进行拉普拉斯平滑变换处理,后验概率P(xi|c,px1,...,pxm)的计算公式如下所示:
Figure BDA0003248267640000132
在公式9中,
Figure BDA0003248267640000133
指挑选出训练文本集D分类标签c下,同时出现分词px1,...,pxm的各个文本,计算这些文本中所有的分词总数,需特别注意的是,如果某个分词重复出现则需要进行叠加计算;
Figure BDA0003248267640000134
指挑选出训练文本集D分类标签c下,同时出现分词px1,...,pxm的各个文本,计算这些文本中分词xi出现的次数累加之和;|B|指训练文本集D中所有分词的个数,需要注意的是,如果某个分词重复出现则只记录一次;|Y|指预测分类集Y的分类总数,即缺陷类型总数;
Figure BDA0003248267640000135
指预测分类集Y中包含分词xi的分类数。
本领域技术人员知道,除了以纯计算机可读程序代码方式实现本发明提供的系统、装置及其各个模块以外,完全可以通过将方法步骤进行逻辑编程来使得本发明提供的系统、装置及其各个模块以逻辑门、开关、专用集成电路、可编程逻辑控制器以及嵌入式微控制器等的形式来实现相同程序。所以,本发明提供的系统、装置及其各个模块可以被认为是一种硬件部件,而对其内包括的用于实现各种程序的模块也可以视为硬件部件内的结构;也可以将用于实现各种功能的模块视为既可以是实现方法的软件程序又可以是硬件部件内的结构。
以上对本发明的具体实施例进行了描述。需要理解的是,本发明并不局限于上述特定实施方式,本领域技术人员可以在权利要求的范围内做出各种变化或修改,这并不影响本发明的实质内容。在不冲突的情况下,本申请的实施例和实施例中的特征可以任意相互组合。

Claims (10)

1.一种基于TAN半朴素贝叶斯网络的软件缺陷预测方法,其特征在于,包括:
步骤1:收集历史项目中由软件功能描述、缺陷描述和缺陷类型信息构成的软件缺陷记录,通过数据整理、清洗和优化后进行格式化存储,形成用于软件缺陷预测的训练数据集;
步骤2:将训练数据集中历史项目的软件功能描述汇总后作为训练文本集,将训练数据集中所有缺陷类型汇总后作为预测分类集,同时将软件功能描述所关联的缺陷类型作为训练文本集中每个训练文本的分类标签;
步骤3:通过分词工具,对待预测的软件功能描述文本进行分词,将分词与预设停用词集进行比较,去掉待预测文本中无意义的词语,得到去噪的允许分词重复的分词集合;
步骤4:将分词集合中重复的分词进行归并处理,形成不允许分词重复的特征词集;
步骤5:基于训练文本集,计算特征词集中任意两个特征词之间的条件互信息值;
步骤6:以特征词集中每个特征词作为节点,任意两个特征词的互信息值为边构建无向图,通过最大带权生成树算法定义节点间的连接规则;
步骤7:基于无向图,选择任意节点作为根节点,由根节点向外的方向为节点之间的流转方向,依次递归设置无向图中节点间的流转方向,最终形成一个有向无环图;
步骤8:将分类标签作为有向无环图中所有节点的父节点,并设置由父节点向外方向作为节点之间的流转方向,最终构建出TAN半朴素贝叶斯网络;
步骤9:基于TAN半朴素贝叶斯网络和分词集合,计算并比较预测分类集中每一个分类的后验概率值,将后验概率值最大的分类作为最终的软件缺陷预测结果。
2.根据权利要求1所述的基于TAN半朴素贝叶斯网络的软件缺陷预测方法,其特征在于,特征词集中任意两个特征词之间的条件互信息值的计算公式为:
Figure FDA0003248267630000011
式中,c表示预测分类集Y中的分类标签,后验概率P(wi,wj|c)、P(wi|c)和P(wj|c)的计算因子在常规的词频算子基础上,借鉴tf-idf关键词提取算法,增加逆分类频率算子,同时为了防止词频算子和拟分类频率算子出现0的情况,对这两个算子都进行拉普拉斯平滑变换处理,计算公式为:
Figure FDA0003248267630000021
Figure FDA0003248267630000022
Figure FDA0003248267630000023
|Dc|指训练文本集D中分类标签c下各文本的分词总数,如果某个分词重复出现则需要进行叠加计算;
Figure FDA0003248267630000024
指训练文本集D在分类标签c下的所有文本中,特征词wi出现的次数累加之和;
Figure FDA0003248267630000025
指训练文本集D在分类标签c下的所有文本中,特征词wj出现的次数累加之和;
Figure FDA0003248267630000026
指训练文本集D在分类标签c下的所有文本中,特征词wi出现的次数和wj出现的次数累加之和;|B|指训练文本集D中所有分词的个数,如果某个分词重复出现则只记录一次;|Y|指预测分类集Y的分类总数;
Figure FDA0003248267630000027
指预测分类集Y中包含特征词wi的分类数;
Figure FDA0003248267630000028
指预测分类集Y中包含特征词wj的分类数;
Figure FDA0003248267630000029
指预测分类集Y中既包含特征词wi又包含特征词wj的分类数。
3.根据权利要求2所述的基于TAN半朴素贝叶斯网络的软件缺陷预测方法,其特征在于,预测结果的判断准则为:
Figure FDA00032482676300000210
基于贝叶斯定理和输入的分词集合x1,x2,...,xn,关于预测分类后验概率的计算公式为:
Figure FDA00032482676300000211
式中,由于对所有c∈Y的分类计算其后验概率P(c|x1,x2,...,xn),其分母∑kP(x1,x2,...,xn|Y=Yk)P(Yk)均一致,则推导出P(c|x1,x2,...,xn)仅正相关于分子部分P(c)P(x1,x2,...,xn|c),如下式所示:
P(c|x1,x2,...,xn)∝P(c)P(x1,x2,...,xn|c)…………(7)。
4.根据权利要求3所述的基于TAN半朴素贝叶斯网络的软件缺陷预测方法,其特征在于,比较分类c的后验概率值简化为比较P(c)P(x1,x2,...,xn|c)的值,其中P(c)是分类c的先验概率;
基于已训练生成的TAN半朴素贝叶斯网络,依据马尔科夫链假设原理,贝叶斯网络中每一个节点在其父节点的值指定后,这个节点条件独立于其所有非父节点;同时依据head-to-head条件独立定理,节点值在未指定的情况下,其所有的父节点相互独立;
对后验概率P(x1,x2,...,xn|c)的计算方法进行简化,简化后的计算公式如下所示:
Figure FDA0003248267630000031
其中,px1,...,pxm是xi的分词父节点,分类标签c是xi的分类父节点。
5.根据权利要求4所述的基于TAN半朴素贝叶斯网络的软件缺陷预测方法,其特征在于,后验概率P(xi|c,px1,...,pxm)的计算因子在常规的词频算子基础上,借鉴tf-idf关键词提取算法,增加逆分类频率算子,同时为了防止词频算子和拟分类频率算子出现0的情况,对这两个算子都进行拉普拉斯平滑变换处理,后验概率P(xi|c,px1,...,pxm)的计算公式如下所示:
Figure FDA0003248267630000032
式中,
Figure FDA0003248267630000033
指挑选出训练文本集D分类标签c下,同时出现分词px1,...,pxm的各个文本,计算这些文本中所有的分词总数,如果某个分词重复出现则需要进行叠加计算;
Figure FDA0003248267630000034
指挑选出训练文本集D分类标签c下,同时出现分词px1,...,pxm的各个文本,计算这些文本中分词xi出现的次数累加之和;|B|指训练文本集D中所有分词的个数,如果某个分词重复出现则只记录一次;|Y|指预测分类集Y的分类总数;
Figure FDA0003248267630000035
指预测分类集Y中包含分词xi的分类数。
6.一种基于TAN半朴素贝叶斯网络的软件缺陷预测系统,其特征在于,包括:
模块M1:收集历史项目中由软件功能描述、缺陷描述和缺陷类型信息构成的软件缺陷记录,通过数据整理、清洗和优化后进行格式化存储,形成用于软件缺陷预测的训练数据集;
模块M2:将训练数据集中历史项目的软件功能描述汇总后作为训练文本集,将训练数据集中所有缺陷类型汇总后作为预测分类集,同时将软件功能描述所关联的缺陷类型作为训练文本集中每个训练文本的分类标签;
模块M3:通过分词工具,对待预测的软件功能描述文本进行分词,将分词与预设停用词集进行比较,去掉待预测文本中无意义的词语,得到去噪的允许分词重复的分词集合;
模块M4:将分词集合中重复的分词进行归并处理,形成不允许分词重复的特征词集;
模块M5:基于训练文本集,计算特征词集中任意两个特征词之间的条件互信息值;
模块M6:以特征词集中每个特征词作为节点,任意两个特征词的互信息值为边构建无向图,通过最大带权生成树算法定义节点间的连接规则;
模块M7:基于无向图,选择任意节点作为根节点,由根节点向外的方向为节点之间的流转方向,依次递归设置无向图中节点间的流转方向,最终形成一个有向无环图;
模块M8:将分类标签作为有向无环图中所有节点的父节点,并设置由父节点向外方向作为节点之间的流转方向,最终构建出TAN半朴素贝叶斯网络;
模块M9:基于TAN半朴素贝叶斯网络和分词集合,计算并比较预测分类集中每一个分类的后验概率值,将后验概率值最大的分类作为最终的软件缺陷预测结果。
7.根据权利要求6所述的基于TAN半朴素贝叶斯网络的软件缺陷预测系统,其特征在于,特征词集中任意两个特征词之间的条件互信息值的计算公式为:
Figure FDA0003248267630000041
式中,c表示预测分类集Y中的分类标签,后验概率P(wi,wj|c)、P(wi|c)和P(wj|c)的计算因子在常规的词频算子基础上,借鉴tf-idf关键词提取算法,增加逆分类频率算子,同时为了防止词频算子和拟分类频率算子出现0的情况,对这两个算子都进行拉普拉斯平滑变换处理,计算公式为:
Figure FDA0003248267630000042
Figure FDA0003248267630000051
Figure FDA0003248267630000052
|Dc|指训练文本集D中分类标签c下各文本的分词总数,如果某个分词重复出现则需要进行叠加计算;
Figure FDA0003248267630000053
指训练文本集D在分类标签c下的所有文本中,特征词wi出现的次数累加之和;
Figure FDA0003248267630000054
指训练文本集D在分类标签c下的所有文本中,特征词wj出现的次数累加之和;
Figure FDA0003248267630000055
指训练文本集D在分类标签c下的所有文本中,特征词wi出现的次数和wj出现的次数累加之和;|B|指训练文本集D中所有分词的个数,如果某个分词重复出现则只记录一次;|Y|指预测分类集Y的分类总数;
Figure FDA0003248267630000056
指预测分类集Y中包含特征词wi的分类数;
Figure FDA0003248267630000057
指预测分类集Y中包含特征词wj的分类数;
Figure FDA0003248267630000058
指预测分类集Y中既包含特征词wi又包含特征词wj的分类数。
8.根据权利要求7所述的基于TAN半朴素贝叶斯网络的软件缺陷预测系统,其特征在于,预测结果的判断准则为:
Figure FDA0003248267630000059
基于贝叶斯定理和输入的分词集合x1,x2,...,xn,关于预测分类后验概率的计算公式为:
Figure FDA00032482676300000510
式中,由于对所有c∈Y的分类计算其后验概率P(c|x1,x2,...,xn),其分母∑kP(x1,x2,...,xn|Y=Yk)P(Yk)均一致,则推导出P(c|x1,x2,...,xn)仅正相关于分子部分P(c)P(x1,x2,...,xn|c),如下式所示:
P(c|x1,x2,...,xn)∝P(c)P(x1,x2,...,xn|c)…………(7)。
9.根据权利要求8所述的基于TAN半朴素贝叶斯网络的软件缺陷预测系统,其特征在于,比较分类c的后验概率值简化为比较P(c)P(x1,x2,...,xn|c)的值,其中P(c)是分类c的先验概率;
基于已训练生成的TAN半朴素贝叶斯网络,依据马尔科夫链假设原理,贝叶斯网络中每一个节点在其父节点的值指定后,这个节点条件独立于其所有非父节点;同时依据head-to-head条件独立定理,节点值在未指定的情况下,其所有的父节点相互独立;
对后验概率P(x1,x2,...,xn|c)的计算方法进行简化,简化后的计算公式如下所示:
Figure FDA0003248267630000061
其中,px1,...,pxm是xi的分词父节点,分类标签c是xi的分类父节点。
10.根据权利要求9所述的基于TAN半朴素贝叶斯网络的软件缺陷预测系统,其特征在于,后验概率P(xi|c,px1,...,pxm)的计算因子在常规的词频算子基础上,借鉴tf-idf关键词提取算法,增加逆分类频率算子,同时为了防止词频算子和拟分类频率算子出现0的情况,对这两个算子都进行拉普拉斯平滑变换处理,后验概率P(xi|c,px1,...,pxm)的计算公式如下所示:
Figure FDA0003248267630000062
式中,
Figure FDA0003248267630000063
指挑选出训练文本集D分类标签c下,同时出现分词px1,...,pxm的各个文本,计算这些文本中所有的分词总数,如果某个分词重复出现则需要进行叠加计算;
Figure FDA0003248267630000064
指挑选出训练文本集D分类标签c下,同时出现分词px1,...,pxm的各个文本,计算这些文本中分词xi出现的次数累加之和;|B|指训练文本集D中所有分词的个数,如果某个分词重复出现则只记录一次;|Y|指预测分类集Y的分类总数;
Figure FDA0003248267630000065
指预测分类集Y中包含分词xi的分类数。
CN202111038761.2A 2021-09-06 2021-09-06 基于tan半朴素贝叶斯网络的软件缺陷预测方法和系统 Active CN113900924B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202111038761.2A CN113900924B (zh) 2021-09-06 2021-09-06 基于tan半朴素贝叶斯网络的软件缺陷预测方法和系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202111038761.2A CN113900924B (zh) 2021-09-06 2021-09-06 基于tan半朴素贝叶斯网络的软件缺陷预测方法和系统

Publications (2)

Publication Number Publication Date
CN113900924A true CN113900924A (zh) 2022-01-07
CN113900924B CN113900924B (zh) 2023-04-07

Family

ID=79188739

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202111038761.2A Active CN113900924B (zh) 2021-09-06 2021-09-06 基于tan半朴素贝叶斯网络的软件缺陷预测方法和系统

Country Status (1)

Country Link
CN (1) CN113900924B (zh)

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107391772A (zh) * 2017-09-15 2017-11-24 国网四川省电力公司眉山供电公司 一种基于朴素贝叶斯的文本分类方法
CN109299255A (zh) * 2018-09-12 2019-02-01 东莞数汇大数据有限公司 基于朴素贝叶斯的案件文本分类方法、系统和存储介质

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107391772A (zh) * 2017-09-15 2017-11-24 国网四川省电力公司眉山供电公司 一种基于朴素贝叶斯的文本分类方法
CN109299255A (zh) * 2018-09-12 2019-02-01 东莞数汇大数据有限公司 基于朴素贝叶斯的案件文本分类方法、系统和存储介质

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
王延飞: "APP缺陷问题评论分类方法研究", 《软件导刊》 *

Also Published As

Publication number Publication date
CN113900924B (zh) 2023-04-07

Similar Documents

Publication Publication Date Title
KR102173555B1 (ko) 머신 러닝 기반 네트워크 모델 구축 방법 및 장치
JP6743934B2 (ja) 観測変数間の因果関係を推定するための方法、装置、およびシステム
CN108388651B (zh) 一种基于图核和卷积神经网络的文本分类方法
CN109933656B (zh) 舆情极性预测方法、装置、计算机设备及存储介质
CN112231477B (zh) 一种基于改进胶囊网络的文本分类方法
Halim et al. On the efficient representation of datasets as graphs to mine maximal frequent itemsets
CN111125358A (zh) 一种基于超图的文本分类方法
CN110390017A (zh) 基于注意力门控卷积网络的目标情感分析方法及系统
CN104239553A (zh) 一种基于Map-Reduce框架的实体识别方法
CN114218389A (zh) 一种基于图神经网络的化工制备领域长文本分类方法
CN115577678B (zh) 文档级事件因果关系识别方法、系统、介质、设备及终端
CN111539444A (zh) 一种修正式模式识别及统计建模的高斯混合模型方法
JP2019086979A (ja) 情報処理装置、情報処理方法及びプログラム
CN113742396A (zh) 一种对象学习行为模式的挖掘方法及装置
CN113900924B (zh) 基于tan半朴素贝叶斯网络的软件缺陷预测方法和系统
CN110502669B (zh) 基于n边dfs子图轻量级无监督图表示学习的社交媒体数据分类方法及装置
CN115268994B (zh) 一种基于tbcnn和多头自注意力机制的代码特征提取方法
Lin et al. Efficient updating of sequential patterns with transaction insertion
CN113111136B (zh) 一种基于ucl知识空间的实体消歧方法及装置
CN111459927B (zh) Cnn-lstm开发者项目推荐方法
Yu et al. Probabilistic joint models incorporating logic and learning via structured variational approximation for information extraction
Li The Combination of CNN, RNN, and DNN for Relation Extraction
CN109447131B (zh) 相似高维目标信息识别方法及系统
CN117435246B (zh) 一种基于马尔可夫链模型的代码克隆检测方法
CN113011163B (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