登录 | 注册 | 忘记密码
首页IT互联网最新科技

最新科技

一种用于软件自承认型技术债务的检测方法与流程

来源: 浏览: 31次  更新时间:2021-11-30 00:55

一种用于软件自承认型本领债务的检测办法与过程

1.本创造属于软件本领范围简直波及一种自承认型本领债务的检测办法。


背景本领:

2.本领债务是一种隐喻它表白的是在软件开拓过程中运用一种不完备、姑且大概者次优的处理筹备。这一致念首次由cunningham于1992年提出网站导航它表白的是在软件开拓过程中运用一种不完备、姑且大概者次优的处理筹备。这一致念首次由cunningham于1992年提出他将“虚假脚精确的代码”视为债务的一种办法。后来potdar和shihab闭于指向债求实例的源代码解释进行了探究他们经过手动处置洪量解释创造闭于于代码中大概存留的问题开拓人员常常倾向于在解释中表明。针闭于这一创造potdar和shihab提出了自承认本领债务(self
‑ꢀ
admitted technical debt)并归纳了62种形式用于辨别它。之后探究者们发端闭心 satd的探究计划和矫正百般办法和本领为了更好地领会和控制自承认本领债务辨别成为姑且探究的重要问题也是姑且的探究热门。
3.现有自承认本领债务辨其他探究重要有四个方面:基于形式的办法、基于天然谈话处置办法、文本掘掘办法及深度神经搜集cnn的办法。个中ren et al.运用卷积神经搜集进行了辨别自承认本领债务的发端试验他们领会了satd文本解释的五个特性这些特性效率着基于形式的satd检测和顽固的基于文本掘掘的办法辨别satd 的本能、可综合性和实用性。为了普及satd辨其他精确性更加是跨名目辨别精确性并普及基于呆板进修的辨别截止的可解释性他们的办法进修从指摘数据中提取 satd辨别责任的信息文本功效。然而运用卷积神经搜集模型进行satd辨别时过于闭心于局部特性丧失结果部全部特性。而且简单模型常常仅运用分类模型闭于已知典型的熟习数据进行进修从而赢得一个简单的分类器闭于未知数据进行分类。比拟于多个模型来说分类精度矮泛化本领弱。


本领实行因素:

4.为了克服现有本领的不及本创造供给了一种用于软件自承认型本领债务的检测办法开始进行数据集的获得和处置;而后建立自承认型本领债务检测模型;包括三个并行的基分类器;分别为cnn、cnn

lstm混共模型和dpcnn;将词汇向量矩阵分别输出三个基分类器每个基分类器输出各自闭于解释数据属于自承认型本领债务的概率;将三个基分类器输出分类截止进行混共赢得最后的解释数据属于自承认型本领债务的概率;结果估计概率和分类阈值的大小闭系输出检测解释数据是否为自承认型本领债务的截止。本创造不妨克服误判率较高的问题相闭于于其他办法不妨辨别出更普遍手段satd共时缩小了简单模型的偏睹性从而处理了在辨别satd时存留的误判精确率矮的问题。
5.本创造处理其本领问题所采用的本领筹备包括如下办法:
6.办法1:数据集的获得和处置;
7.采用果然的源代码解释数据集将源代码解释数据会合的数据区分为多个名目数据集而后分别进行标记化、移除停用词汇然降后行文本展现变化为解释矩阵;
8.将解释矩阵输沉迷经搜集的embedding层闭于embedding层进行熟习输出词汇向量;
再将词汇向量依照解释程序拼接后赢得词汇向量矩阵;
9.办法2:建立自承认型本领债务检测模型;
10.所述自承认型本领债务检测模型包括三个并行的基分类器;
11.第一个基分类器为cnn;
12.第二个基分类器为cnn

lstm混共模型;
13.第三个基分类器为dpcnn;
14.将词汇向量矩阵分别输出三个基分类器闭于每个基分类器径自进行熟习熟习完成后每个基分类器输出各自闭于解释数据属于自承认型本领债务的概率;
15.将三个基分类器输出截止进行混共赢得最后的解释数据属于自承认型本领债务的概率;
16.设定分类阈值若属于自承认型本领债务的概率大于分类阈值则判决该解释数据为自承认型本领债务;若属于自承认型本领债务的概率小于等于分类阈值则判决该解释数据为非自承认型本领债务;
17.办法3:将待检测解释数据输出自承认型本领债务检测模型输出截止为该待检测解释数据是否为自承认型本领债务的截止。
18.优选地所述果然的源代码解释数据集为maldonado和shihab所整治的数据集。
19.优选地所述闭于每个基分类器径自进行熟习时采用adam算法破坏函数采用 focal loss破坏函数。
20.优选地所述分类阈值为0.5。
21.本创造的有益效验如下:
22.1、本创造不妨克服误判率较高的问题相闭于于其他办法不妨辨别出更普遍手段 satd。
23.2、本创造经过集成cnn、lstm、dpcnn深度进修模型不妨使提取的特性更加周到共时缩小了简单模型的偏睹性从而处理了在辨别satd时存留的误判精确率矮的问题。
24.3、本创造运用于十个名目分别进行了名目内和跨名手段试验。截止表明该办法的灵验性更加是名目内猜测该办法不妨明显革新往常探究存留着辨别精确率矮更加闭于于数据抵抗稳前提下辨别难度大的问题辨别效验有明显提高。
25.4、其他在数据抵抗稳明显的数据集上该办法提高效验更加明显而在本质的名目中数据抵抗稳情景比较普遍因此本创造比拟其他办法更符合运用于本质。
附图证明
26.图1为本创造的自承认型本领债务检测模型框架图。
27.图2为本创造数据集的处置过程表示图。
28.图3为本创造办法与其他办法在10个名目上的f

measure截止图示。
29.图4为本创造实行例可视化satd沉要特性表示图。
简直实行办法
30.底下共同附图和实行例闭于本创造进一步证明。
31.顽固的卷积神经搜集模型在进行satd辨别时过于闭心于局部特性丧失结果部
全部特性。而且简单模型常常仅运用分类模型闭于已知典型的熟习数据进行进修从而赢得一个简单的分类器闭于未知数据进行分类。比拟于多个模型来说分类精度矮泛化本领弱。本创造采用集成进修经过将多个进修器进行共同不妨灵验地普及模型的泛化本领集成模型比拟于单个模型不妨灵验普及辨别精确度。集成深度神经搜集的办法不妨将深度进修的高本能和集成进修的泛化本领相共同。
32.本创造的检测模型框架如图1所示。集因素类器相闭于于单个分类器的上风在于它们不妨矫正单个集成成员的缺点以普及完全集成本能的本领。而且依据探究表明与基础分类器比拟集因素类器经过降矮采用缺点进修模型的危害被认为比单个分类器更稳当而且不妨普及猜测精确性。本创造采用了三种本能较好的深度进修模型进行集成包括cnn模型、cnn

lstm模型、dpcnn模型。经过每个模型的熟习并优化模型输出层进行最后混共混共后的截止动作最后的分类截止否为satd。
33.一种用于软件自承认型本领债务的检测办法包括如下办法:
34.办法1:数据集的获得和处置;
35.采用果然的源代码解释数据集如maldonado和shihab数据集将源代码解释数据会合的数据区分为多个名目数据集而后分别进行标记化、移除停用词汇然降后行文本展现变化为解释矩阵;
36.将解释矩阵输沉迷经搜集的embedding层闭于embedding层进行熟习输出词汇向量;再将词汇向量依照解释程序拼接后赢得词汇向量矩阵;
37.办法2:建立自承认型本领债务检测模型;
38.所述自承认型本领债务检测模型包括三个并行的基分类器;
39.第一个基分类器为cnn;
40.第二个基分类器为cnn

lstm混共模型;
41.第三个基分类器为dpcnn;
42.将词汇向量矩阵分别输出三个基分类器闭于每个基分类器采用adam算法径自进行熟习破坏函数采用focal loss破坏函数。熟习完成后每个基分类器输出各自闭于解释数据属于自承认型本领债务的概率;
43.将三个基分类器输出截止进行混共赢得最后的解释数据属于自承认型本领债务的概率;
44.设定分类阈值若属于自承认型本领债务的概率大于0.5则判决该解释数据为自承认型本领债务;若属于自承认型本领债务的概率小于等于0.5则判决该解释数据为非自承认型本领债务;
45.办法3:将待检测解释数据输出自承认型本领债务检测模型输出截止为该待检测解释数据是否为自承认型本领债务的截止。
46.简直实行例:
47.1、数据集的获得和处置
48.本创造的数据集根源于maldonado和shihab已经果然在gethub网站上且被多个探究者们运用。该数据集采用了十个名手段源代码解释共33090条名目称呼是ant、 argouml、columba、emf、hibernate、jedit、jfreechart、jruby及squirrel名目留神信息如表1所示包括名手段版本奉献者数目源代码行数(software lines ofcode)名目所属
范围包括解释条数及自承认本领债务个数和比率如表2所示。maldonado和shihab运用开源插件领会并提取源代码并运用五种过滤开辟式规则闭于其过滤赢得62566条解释指摘将这62566条解释分类成自承认本领债务和非自承认本领债务。将自承认本领债务分为五类包括安排债务缺点债务文档债务需要债务及尝试债务。
49.表1名目相闭信息
50.projectrelease#of contributorsslocant1.7.074115,881argouml0.3487176,839columba1.49100,200emf2.4.130228,191hibernate3.3.2ga226173,467jedit4.25788,583jfreechart1.0.1919132,296jmeter2.103381,307jruby1.4.0328150,060squirrel3.0.346215,234
51.表2名目相闭数据统计
[0052][0053]
如图2所示是数据预备的过程开始将源代码数据区分十个名目数据集而后分别进行标记化、移除停用词汇等然降后行文本展现变化为解释矩阵。简直的为了方便词汇向量展现以便于更好的表征语义移除了源代码解释的停用词汇并截长补短。比方遇到好像于“a”“can”等闭于于文本领会是无帮的进行移除如许不只不妨灵验缩小许据文件的大小而且不妨普及运算效力。
[0054]
为了处理顽固的独热编码高纬度及高荒凉性问题本创造采用词汇向量办法。与图像不共解释文本自己不具备丰厚的高维向量展现不行直接动作神经搜集的输出数据进行特性提取因此自承认本领债务辨其他一局部沉要处事是要熟习词汇向量将解释文本变换为搜集不妨辨其他特性本领够闭于语义信息进行进修。在本创造中运用神经搜集供给的
embedding层实行词汇向量的熟习将天生的词汇向量依照解释程序拼接后赢得的词汇向量矩阵动作动作卷积层的输出以便于更好的提取特性。
[0055]
2、集成模型的采用和熟习
[0056]
卷积神经搜集有富饶的特性提取本领它经过运用卷积神经搜集中多个不共size 的kernal来提取句子中的闭头信息不妨捕获局部相闭性。cnn在文本分类运用效验明显而且将cnn用于satd辨别比拟基于形式的办法和文本掘掘的办法cnn不妨自动的提取特性缩小了人为的介入而且辨其他精确率也有所提高。为此本创造将卷积神经搜集动作集成模型中的一个基分类器。其次cnn进行文本分类时虽然不妨提取文本特性并依据特性闭于文本进行分类然而只能闭心到局部特性而不闭心到全部特性容易形成一条解释分为多个典型的局面这种局面效率了分类截止。
[0057]
lstm是序列化的处置办法能较好的通联左右文闭于辨别自承认本领债务责任中解释的这种短文本分类的精确性好然而因为其构造搀杂跟着输出文本量减少估计量随之增大从而降矮了左右文本的通联使得辨别精确率降矮。因此本创造共同cnn和lstm的各自上风建立cnn

lstm混共模型动作集成模型中的第二个基分类器。
[0058]
结果cnn不行经过卷积赢得文本的长隔绝依附闭系而dpcnn经过连接加深搜集不妨抽取长隔绝的文本依附闭系。在不减少太多估计成本的情景下减少搜集深度便不妨赢得较高的精确率。因此采用了dpcnn动作集成模型中的第三个基分类器。
[0059]
集成模型中的每一个模型都须要进行熟习而且每个模型城市进行屡次迭代优化。在屡屡迭代中模型会依据已知熟习数据标签获得到一个猜测标签依据猜测标签衡量与简直标签的破坏来安排模型的参数试验渐渐降矮破坏共时运用adam算法处理了优化问题。其他针闭于数据的抵抗稳问题受何凯明处理格外 格外检测中的样品抵抗稳问题的开辟运用focal loss破坏函数经过缩小普遍样品的权沉使得模型在熟习时更加博注于少许类样品。
[0060]
3、satd的检测
[0061]
集成模型经过熟习后不妨闭于未分类的样本本辨别解释是否是自承认本领债务。闭于于一条待分类的解释样品每个模型先将树立的字典序列变化为数字序列展现的数字矩阵而后经过embedding层熟习词汇向量再经过各自模型的特性提取及模型熟习最后进行分类。比方闭于于卷积神经搜集会经过卷积层和池化层提取特性并进行模型的熟习而后再由sotfmax分类器进行分类。每个模型的分类器输出层城市给出相应的分类截止将模型的输出截止混共给出待分类解释的satd概率假如概率值大于0.5 认为是satd不然不是satd。
[0062]
依据数据集的分类标签satd和non

satd可知这是一个二元分类问题。针闭于每一条解释文本进行辨别时大概会爆发四种截止如表3所示。当猜测典型和简直典型符合时称其为精确分类截止比方真阳性(tp)和真阴性(tn)。当不符合时称为缺点分类截止比方假阳性(fp)和假阴性(fn)。个中tp代表猜测截止属于 satd简直截止也属于satd;tn代表猜测截止不属于satd最后简直截止也不属于satd;fp代表猜测截止不属于satd然而最后简直截止属于satd;fn代表猜测截止属于satd然而是本质简直截止不属于satd。不共的分类模型有不共的试验截止本实行例经过估计不共分类模型的精确率、查全率、查准率以及f1值来估计分类模型的分类本能。
[0063]
表3分类截止矩阵
[0064][0065]
查准率:展现模型猜测为正类的样品中简直截止也为正类的样品比率。如式(1) 所示:
[0066][0067]
查全率:展现模型猜测为正类的样品与简直猜测为正类的样品比率。如式(2)所示:
[0068][0069]
f1值:查全率和查准率不行周到的评价本能为此补充性地引入f1它是查全率和查准率的调和均值趋势于亲近较小的值因此f1襟怀值高不妨保证查准率和查全率都比较高。f1的公式如(3)所示:
[0070][0071]
本创造所采用办法将cnn、cnn

lstm、dpcnn神经搜集模型集成。为了考订该办法相闭于于现有的satd辨别办法的灵验性进行名目内猜测的闭于比试验。所有进行了五组试验。第一本创造办法;第二cnn办法;第三huang的文本掘掘办法;第四maldonado和shihab的天然谈话处置的办法;第五guo’s形式辨别办法。
[0072]
截止表明本创造办法查准率平稳值达到了0.800。比拟于cnn办法的0.637、 tm办法的0.702及nlp办法的0.537本创造办法普及了25.59%、13.96%及48.97%。五种办法的查全率平稳值分别为0.736、0.705、0.714、0.604及0.612本创造办法分别普及了4.40%、3.08%及21.85%。如图3所示是本创造办法与其他四种办法在10个名目上的f

measure截止。五种办法f

measure得分的平稳值分别为0.763、0.662、 0.697、0.561及0.689本创造办法分别普及了15.26%、9.47%、36.01%及10.74%五种办法在argouml名目上达到了较高的f1得分本创造办法在columba上的f1得分达到最高的0.913。值得注沉的是在jedit名目上本创造办法比拟于其他办法分别普及了23.2%22.71%34.20%及101.97%。其他在emf名目上也有较大普及。由此瞅来在jedit和emf这些satd占比较矮的名目中本创造办法不妨明显优于其他办法。
[0073]
为了普及办法的可解释性本创造提出基于attention机制的可视化satd沉要特性。cnn

lstm模型比拟cnn模型更加闭心句子特性比拟dpcnn模型来说更加大概易于抑制。姑且attention在nlp中已经有款待的运用。attention机制运用每个元素被赋予的沉要性评分来闭于序列数据进行编码经过可视化attention矩阵来估计神经搜集在进行责任时闭心了哪些局部。因其能在一系列责任上闭于模型本能爆创造显的提高从而普及了可解释性更加是基于轮回神经搜集构造。为此在cnn

lstm模型上介入attention来考订可解释性。简直干法是为所有句子建立一个热力求热力求强度与每个单词汇接收到的尺度化注沉
力得分成正比。也即是说词汇的奉献越大脸色越深来证明某些词汇比其他词汇沉要。
[0074]
如图4所示是可视化截止的展示会合闭心了含有satd的解释为此图4展示的10个句子都为satd不妨瞅出经过attention赋予词汇的权沉在模型熟习时不妨相闭于的闭心某些词汇大概模型衡量它们闭于于所有句子分类的沉要程度来达到分类的手段而且运用attention将句子中的某些闭于分类奉献比较大的词汇提取出来以有帮于人类领会的办法展示出来在必定程度上普及可解释性。比方“todo”“workaground”的词汇的涌姑且很大程度上被认为该句为satd在试验中这些词汇也被辨别出而且如“todo”“fixme”等词汇汇在guo的试验中也印证了属于强形式他们仅运用四个形式辨别satd 也博得了不错的效验。其他在表4也例举出了运用这种办法辨别出的每个项姑且20 个特性词汇。
[0075]
表4:基于cnn

lstm注沉力机制提取的10个名手段top 20闭头词汇
[0076]

TAG标签: 模型 办法 本领 解释


文章转载请注明出处:http://www.rcfle.cn/zuixinkeji-184/136750.html


上一篇:
下一篇:

相关资讯