CN111723021B - 一种基于知识库和表示学习的缺陷报告自动分派方法 - Google Patents

一种基于知识库和表示学习的缺陷报告自动分派方法 Download PDF

Info

Publication number
CN111723021B
CN111723021B CN202010728693.1A CN202010728693A CN111723021B CN 111723021 B CN111723021 B CN 111723021B CN 202010728693 A CN202010728693 A CN 202010728693A CN 111723021 B CN111723021 B CN 111723021B
Authority
CN
China
Prior art keywords
defect
entity
knowledge base
entities
defect report
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
CN202010728693.1A
Other languages
English (en)
Other versions
CN111723021A (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.)
Harbin Institute of Technology
Original Assignee
Harbin Institute of Technology
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 Harbin Institute of Technology filed Critical Harbin Institute of Technology
Priority to CN202010728693.1A priority Critical patent/CN111723021B/zh
Publication of CN111723021A publication Critical patent/CN111723021A/zh
Application granted granted Critical
Publication of CN111723021B publication Critical patent/CN111723021B/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/3668Software testing
    • G06F11/3672Test management
    • G06F11/3692Test management for test results analysis
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/28Databases characterised by their database models, e.g. relational or object models
    • G06F16/284Relational databases
    • G06F16/288Entity relationship models
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/20Software design
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/70Software maintenance or management
    • 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
    • G06N3/084Backpropagation, e.g. using gradient descent

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • General Physics & Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • General Health & Medical Sciences (AREA)
  • Mathematical Physics (AREA)
  • Computational Linguistics (AREA)
  • Molecular Biology (AREA)
  • Computing Systems (AREA)
  • Biophysics (AREA)
  • Biomedical Technology (AREA)
  • Evolutionary Computation (AREA)
  • Artificial Intelligence (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Health & Medical Sciences (AREA)
  • Quality & Reliability (AREA)
  • Computer Hardware Design (AREA)
  • Stored Programmes (AREA)

Abstract

本发明公开了一种基于知识库和表示学习的缺陷报告自动分派方法,所述方法利用知识库和表示学习技术,首先从缺陷报告仓库中提取结构化信息和文本信息,从而构建知识库。然后将知识库中的实体和关系以及文本描述初始化为相同维度的低维连续的实值向量。再利用改进的表示学习模型PTITransE学习实体和关系的向量表示。最后,基于实体和关系的向量表示,使用链接预测技术,为新提交的缺陷报告推荐合适的修复者。本发明首次将知识库和表示学习应用到缺陷分派领域,并提出一种新的表示学习模型以充分利用缺陷报告的文本和结构化信息,提高了缺陷分派的准确率。

Description

一种基于知识库和表示学习的缺陷报告自动分派方法
技术领域
本发明涉及一种缺陷报告自动分派方法,具体涉及一种基于知识库和表示学习技术为缺陷报告推荐合适修复者的方法。
背景技术
当前,以互联网和移动通信为纽带,人类群体、大数据、物联网已经实现了广泛和深度的互联,使得人类群体智能日益发挥越来越重要的作用。越来越多的来自世界各地的开发人员都在参与开发同一软件项目,智能系统开发方法从封闭和计划走向开放和竞争。随着这种开放式的开发人员队伍的流行以及软件的复杂程度越来越高,在软件开发和维护过程中,不可避免的会产生各种类型的软件缺陷(bug)。为了及时发现和修复软件缺陷,项目维护人员经常采用软件缺陷追踪系统(例如Bugzilla,JIRA和GNATS)来存储和管理在软件生命周期中产生的各种缺陷。随着软件开发的进展,软件bug数量也在急剧增加,以著名的开源项目Eclipse为例,目前有超过535,675缺陷报告在Eclipse的缺陷报告仓库中(截止2019年5月7日),以及在2018年有超过13,036缺陷报告被提交到缺陷追踪系统中。从示例中可以看出缺陷报告跟踪系统每天会收到大量的缺陷报告,由于手工归档大量的缺陷报告并将其分配给合适的修复人员,会耗费大量的人力和资源。因此,为了降低软件维护和手动缺陷报告分派的成本,自动缺陷报告分派方法应运而生。目前的缺陷报告分派方法大多是基于文本的方法,即将缺陷报告视为文档,通过学习历史数据分析开发人员适合修复的缺陷类型,实现自动地为新的缺陷报告推荐合适的修复者。然而,这些方法在表示缺陷报告时将单词视为独立单元,使其不能捕获具有相同含义但不同表达或者同样表达但不同含义的术语(terms),即同义词和多义词。为了缓解这个问题,文献(Lee,S.-R..,2017.Applyingdeep learning based automatic bug triager to industrial projects.In:Proceedings of the 201711th Joint Meeting on Foundations of SoftwareEngineering.pp.926–931.)等提出基于主题模型或深度学习的方法来确定缺陷报告的语义内容,通过更准确地表示缺陷报告来提高缺陷报告分派的准确率。但这些方法通常侧重于分析缺陷报告的文本内容,忽略了缺陷报告与其他对象(尤其是缺陷报告与开发人员)之间交互的影响。实际上,这些实体之间的交互关系(即结构化知识)为缺陷报告分派提供了更有价值的信息。另外,有一些文献(Zhang W,Wang S,Wang Q.KSAP:An approach to bugreport assignment using KNN search and heterogeneous proximity.Informationand Software Technology.2016Feb 1;70:68-84)借助于网络分析技术对实体之间的交互关系进行了简单的建模,从而寻找合适的开发人员修复新提交的缺陷报告。然而这些方法又只考虑了结构化知识,未能充分利用缺陷报告的文本描述信息。结合并充分利用缺陷报告的文本描述信息以及缺陷实体与其他实体之间的交互关系,将有助于提高缺陷报告分派的性能。
知识库(Knowledge Base)是知识工程中结构化、易操作、易利用、全面有组织的知识集群,是针对某一(或某些)领域问题求解的需要,采用某种(或若干)知识表示方式在计算机存储器中存储、组织、管理和使用的互相联系的知识片集合。常见的开放领域的知识库有Freebase、Dbpedia、YAGO以及WordNet,由于这些知识库能够提供大量的结构化知识而被广泛用于信息检索(IR)和问答系统中。在实际应用中所构建的知识库通常被表示为网络形式,节点代表实体,连接边代表实体之间的关系。对知识库的存储,经常采用以(h,r,t)三元组的形式存储在图数据库中,其中h和t分别代表头实体和尾实体,r代表h和t之间存在的某种关系。
知识库的表示学习(Knowledge Representation Learning)是面向知识库中的实体和关系进行表示学习,通过将知识库中的实体或关系投影到低维向量空间,进而将研究对象的语义信息表示为稠密低维实值向量。目前常见的知识表示学习的代表模型主要包括距离模型、单层神经网络模型、能量模型、双线性模型、张量神经网络模型、矩阵分解模型和翻译模型等。其中以TransE为代表的翻译模型由于其参数较少、计算复杂度低以及性能较以往模型有显著提升而被业界广泛应用。TransE模型将知识库中的关系看做实体间的某种平移向量,对于每个三元组(h,r,t),TransE用关系r的向量r作为头实体向量h和尾实体向量t之间的平移,这种平移关系也可以被称为翻译过程。TransE模型的核心思想是将节点之间的关系看成一种两个实体之间的翻译操作,即如果(head,relation,end)三元组成立,则满足head+relation≈end。通过反向传播不断调整实体和关系的向量表示使知识库中的三元组满足上述关系的过程,即知识库的表示学习过程。通常为了更加高效的训练实体和关系的向量表示,TransE采取的代价函数为:
Figure BDA0002602711750000041
其中,(h,r,t)代表正样本,即三元组关系成立;(h′,r′,t′)代表负样本,即三元组关系不成立;d是计算h+r和t之间距离的函数,通常使用L1或L2范式计算距离。正例三元组的全体集合是T,负例三元组的全体集合是T′;γ>0是一个边界值。
目前,尚未检索到有文献将知识库和表示学习技术应用于缺陷报告自动分派。
发明内容
本发明的目的是提供一种基于知识库和表示学习的缺陷报告自动分派方法,该方法针对不同的软件项目分别建立相应的缺陷报告知识库,然后利用表示学习技术将知识库中的实体和关系转化为低维连续的实值向量,最后借助链接预测技术为待分派的缺陷报告推荐合适的修复者。本发明首次将知识库和表示学习应用到缺陷分派领域,并提出一种新的表示学习模型以充分利用缺陷报告的文本和结构化信息,提高了缺陷分派的准确率。
本发明的目的是通过以下技术方案实现的:
一种基于知识库和表示学习的缺陷报告自动分派方法,包括如下步骤:
步骤1:从缺陷仓库中提取结构化信息和文本信息,构建知识库;
步骤2:将知识库中所有的实体、关系以及文本信息,初始化成具有相同维度的向量;
步骤3:将在步骤2获得的实体、关系以及文本信息的初始向量表示作为表示学习模型PTITransE的输入,利用反向传播算法训练模型,学习得到更为准确的实体和关系的向量表示;
步骤4:基于实体和关系的准确向量表示,使用链接预测技术计算新提交的缺陷报告实体和开发人员实体之间的匹配程度,进而为新缺陷报告生成相应的修复者推荐列表。
相比于现有技术,本发明具有如下优点:
1、本发明提出一种新型的表示学习技术PTITransE,相比经典的基于翻译的表示模型,其好处在于它能够充分利用缺陷报告中的文本描述信息和缺陷报告与其他实体之间交互的结构化信息去训练模型,提高所学习的实体和关系向量表示的准确度。
2、本发明将知识库和表示学习技术应用到缺陷报告分派任务上,能够解决以往缺陷报告分派模型未能同时和充分利用开发人员历史修复活动以及缺陷描述信息的缺点,极大提高了缺陷分派的准确度,另外基于表示学习的缺陷报告分派方法的计算复杂度较低。
3、本发明基于实体和关系的向量表示进行缺陷报告分派,其好处在于它能够缓解缺陷报告分派的冷启动问题,即新加入的开发人员即使在没有任何缺陷修复经验的条件下,也有机会成为合适的修复者被分派去修复新提交的缺陷报告。
附图说明
图1是本发明缺陷报告自动分派方法的总体流程图。
图2是Eclipse缺陷报告#6447。
图3是将Eclipse缺陷报告#6447作为历史缺陷报告构建的知识库所对应的异质网络示意图。
图4是将Eclipse缺陷报告#6447作为新提交的缺陷报告构建的知识库所对应的异质网络示意图。
图5是利用链接预测技术生成修复者推荐序列的具体计算过程。
图6是PTITransE的学习算法。
具体实施方式
下面结合附图对本发明的技术方案作进一步的说明,但并不局限于此,凡是对本发明技术方案进行修改或者等同替换,而不脱离本发明技术方案的精神和范围,均应涵盖在本发明的保护范围中。
本发明提供了一种基于知识库和表示学习的缺陷报告自动分派方法,所述方法利用知识库和表示学习技术,首先从缺陷报告仓库中提取结构化信息和文本信息,从而构建知识库。然后将知识库中的实体和关系以及文本描述初始化为相同维度的低维连续的实值向量。再利用改进的表示学习模型PTITransE学习实体和关系的向量表示。最后,基于实体和关系的向量表示,使用链接预测技术,为新提交的缺陷报告推荐合适的修复者。如图1所示,包括如下步骤:
步骤1:从缺陷报告仓库中提取结构化信息和文本信息,构建知识库,具体步骤如下:
步骤11:对缺陷仓库中的每一个缺陷报告(包括历史和新提交的缺陷报告)进行解析,提取相应的实体和关系,并将这些实体和关系组织成三元组(头实体,关系,尾实体)的表示形式,作为缺陷报告的结构信息;
步骤12:提取缺陷报告中的概要和描述信息,作为缺陷报告实体的文本属性;
步骤13:将缺陷报告的结构信息和文本信息存储到知识库中,采用异质网络的形式对知识库中的结构信息和文本信息进行可视化,以历史缺陷报告Eclipse#6447为例,构造的异质网络如图3所示。
知识库中包含五种实体(“缺陷(Bug)”、“开发者(Developer)”、“评论(Comment)”、“组件(Component)”、“产品(Product)”)、七种关系(“报告(Report)”、“分配(Assign to)”、“再分配(Toss)”、“修复(Fix)”、“写”(Write)、“评论(Comment)”、“属于(Contain)”)以及缺陷报告的文本描述信息。其中,五种实体和文本描述信息可以通过解析缺陷报告获得,而实体之间存在的七种关系则需要从相应的缺陷报告以及开发人员的历史修复活动中挖掘,异质网络中的七种关系明细表如表1所示。将实体和关系以三元组(头实体,关系,尾实体)的形式构成缺陷报告的结构化信息连同缺陷报告的文本描述信息一同存储在知识库中。注意,在具体应用中,缺陷报告的文本描述信息可以视为“缺陷”实体的文本属性。除了针对已修复的历史缺陷报告构建知识库,还应该将新提交的缺陷报告所包含的实体和关系也加入到构建的知识库中,以方便后续步骤学习新提交的缺陷报告实体的向量表示。另外,构建好的缺陷报告知识库可以通过异质网络的形式进行查看。
表1异质网络中的七种关系明细表
Figure BDA0002602711750000081
步骤2:将知识库中所有的实体、关系以及文本信息,表示成相同维度的向量,具体步骤如下:
步骤21:将知识库中的所有实体和关系,随机初始化为均匀分布的向量表示,称为结构化向量;
步骤22:对知识库中的文本信息进行如下预处理:分词、去除停止词、全部转换成小写字母、提取词干;
步骤23:利用提前训练好的词嵌入模型,将预处理后的每个词转换成低维连续的实值向量表示;
步骤24:将每份缺陷报告的所有词向量对应相加,得到每份缺陷报告的文本向量表示。
步骤3:将在步骤2获得的实体、关系以及文本信息的初始向量表示作为表示学习模型PTITransE的输入,PTITransE的学习算法如图6所示,利用反向传播算法训练模型,学习得到更为准确的实体和关系的向量表示,具体步骤如下:
步骤31:将所有实体和关系向量进行规范化处理;
步骤32:从知识库的所有三元组中进行采样,得到一定数量的样本,构成正样本集合;
步骤33:对于正样本集合中的每个样本,将其头实体或尾实体随机替换成其他实体,得到相应的负样本,构成负样本集合;
步骤34:利用所有正样本和负样本的结构化向量,通过优化代价函数(即公式1),计算结构损失;
步骤35:对于每一对正样本和负样本,如果样本对中含有“缺陷”实体,则将该“缺陷”实体的结构化向量替换为相应的文本向量,通过优化相同的代价函数,计算文本损失;
步骤36:将结构损失和文本损失进行相加得到总损失,使用随机梯度下降算法更新实体和关系向量;
步骤37:重复步骤31-36,直到达到规定的迭代次数,得到学习后的实体和关系的向量表示。
传统的基于翻译的表示学习方法(如TransE、TransR、TransH)只利用结构化信息进行模型的训练,本发明在TransE的基础上进行了改进,提出了PTITransE方法,该方法能够充分利用结构化信息与部分实体(即“缺陷”实体)的文本描述信息进行模型的训练,使得学习到的向量表示能够准确的表达实体之间的结构语义和实体自身的文本语义内容。
步骤4:基于实体和关系的准确向量表示,使用链接预测技术计算新提交的缺陷报告实体和开发人员实体之间的匹配程度,进而为新缺陷报告生成相应的修复者推荐列表,具体步骤如下:
步骤41:对于新提交的缺陷报告,从该报告中提取相应的“缺陷”实体;
步骤42:从步骤3中,获得在步骤41中提取的“缺陷”实体的向量表示以及“修复”关系的向量表示;
步骤43:将新缺陷报告对应的“缺陷”实体作为尾实体,在尾实体(表示为t)和“修复”关系(表示为r)已知的条件下,组成头实体未知的不完整三元组(?,r,t),其中需要预测的头实体即为适合修复该缺陷的开发人员;
步骤44:使用链接预测方法,对头实体(表示为h)进行预测,首先将知识库中的每一个“开发者”实体分别当做头实体,根据h,r,t的向量表示计算得到向量s=h+r-t,然后将向量s中的每个元素的绝对值累加,得到头实体和尾实体相匹配的分数,分数越小说明匹配度越高;
步骤45:将所有实体按照对应的分数进行升序排序,取序列中分数最小的前k个“开发者”实体作为待推荐的修复者列表(k根据实际需要进行指定),返回给缺陷报告分派人员,从而实现缺陷报告的自动分派。
实施例1:
以Eclipse缺陷报告#6447为例(如图2)分析知识库的构造过程。
1、如果Eclipse缺陷报告#6447是历史缺陷报告,则从缺陷报告中提取以下5种实体:
(1)“缺陷(Bug)”实体:Bug#6447。
(2)“开发者(Developer)”实体:“DarinWright”,“Darin Swanson”和“JoeSzurszewski”。
(3)“评论(Comment)”实体:Comment1,Comment2,Comment3。
(4)“组件(Component)”实体:“Debug”。
(5)“产品(Product)”实体:“JDT”。
从缺陷报告以及开发人员的历史修复活动中挖掘上述实体之间存在的关系,并组织成如下三元组的形式:
(Darin Swanson,report,Bug#6447):缺陷Bug#6447由开发人员Darin Swanson发现并提交;
(Debug,contain,Bug#6447):Bug#6447发生在Debug组件;
(JDT,contain,Debug):产品JDT包含组件Debug;
(Darin Swanson,write,Comment1,2):开发者Darin Swanson写下评论Comment1,2;
(Comment1,2,comment,Bug#6447):Comment1,2是关于缺陷实体Bug#6447的评论;
(Joe Szurszewski,write,Comment3):开发者Joe Szurszewski写下评论Comment3;
(Comment3,comment,Bug#6447):Comment3是关于缺陷实体Bug#6447的评论;
(Bug#6447,assignto,DarinWright):Bug#6447被分派给Darin Wright去修复;
(DarinWright,toss,Darin Swanson):由于开发者DarinWright未能成功修复Bug#6447,则将此缺陷报告分配给另一个开发者Darin Swanson进行修复;
(Darin Swanson,toss,Joe Szurszewski):同样由于开发者Darin Swanson未能成功修复Bug#6447,则将此缺陷报告分配给另一个开发者Joe Szurszewski进行修复;
(Joe Szurszewski,fix,Bug#6447):开发者Joe Szurszewski最终成功修复了此缺陷Bug#6447。
根据上述的三元组以及缺陷报告的文本描述信息构造的异质网络如图3所示。
2、如果Eclipse缺陷报告#6447是新提交的缺陷报告,则提取的实体只包含“缺陷(Bug)”,“开发者(Developer)”,“组件(Component)”和“产品(Product)”。实体之间的关系包含“report”,“contain”。构造的异质网络如图4所示。
实施例2:
使用链接预测技术进行缺陷报告分派的实例。
假设Eclipse缺陷报告#6447是新提交的缺陷报告,并且通过训练PTITransE模型已经获得缺陷实体Bug#6447以及修复关系和所有开发者实体的向量表示,为了方便计算,设置系统中只包含三个开发人员,并且所有实体和关系的向量表示的维度为3。由于缺陷报告分派是为新提交的缺陷报告寻找合适的修复人员,因此可以把它形式化为链接补全问题,即已知三元组(?,fix,bug)中的关系(fix)和尾实体(bug),使用链接预测技术预测最匹配的头实体(开发者)。通过计算Bug#6447缺陷实体和所有开发者之间的匹配分数,生成最适合修复该缺陷的修复者列表。计算过程如图5所示。

Claims (4)

1.一种基于知识库和表示学习的缺陷报告自动分派方法,其特征在于所述方法包括如下步骤:
步骤1:从缺陷仓库中提取结构化信息和文本信息,构建知识库;
步骤2:将知识库中所有的实体、关系以及文本信息,初始化成具有相同维度的向量;
步骤3:将在步骤2获得的实体、关系以及文本信息的初始向量表示作为表示学习模型PTITransE的输入,利用反向传播算法训练模型,学习得到更为准确的实体和关系的向量表示,具体步骤如下:
步骤31:将所有实体和关系向量进行规范化处理;
步骤32:从知识库的所有三元组中进行采样,得到一定数量的样本,构成正样本集合;
步骤33:对于正样本集合中的每个样本,将其头实体或尾实体随机替换成其他实体,得到相应的负样本,构成负样本集合;
步骤34:利用所有正样本和负样本的结构化向量,通过优化代价函数,计算结构损失;
步骤35:对于每一对正样本和负样本,如果样本对中含有“缺陷”实体,则将该“缺陷”实体的结构化向量替换为相应的文本向量,通过优化相同的代价函数,计算文本损失;
步骤36:将结构损失和文本损失进行相加得到总损失,使用随机梯度下降算法更新实体和关系向量;
步骤37:重复步骤31-36,直到达到规定的迭代次数,得到学习后的实体和关系的向量表示;
步骤4: 基于实体和关系的准确向量表示,使用链接预测技术计算新提交的缺陷报告实体和开发人员实体之间的匹配程度,进而为新缺陷报告生成相应的修复者推荐列表。
2.根据权利要求1所述的基于知识库和表示学习的缺陷报告自动分派方法,其特征在于所述步骤1的具体步骤如下:
步骤11:对缺陷仓库中的每一个缺陷报告进行解析,提取相应的实体和关系,并将这些实体和关系组织成三元组(头实体,关系,尾实体)的表示形式,作为缺陷报告的结构信息;
步骤12:提取缺陷报告中的概要和描述信息,作为缺陷报告实体的文本属性;
步骤13:将缺陷报告的结构信息和文本信息存储到知识库中,采用异质网络的形式对知识库中的结构信息和文本信息进行可视化。
3.根据权利要求1所述的基于知识库和表示学习的缺陷报告自动分派方法,其特征在于所述步骤2的具体步骤如下:
步骤21:将知识库中的所有实体和关系,随机初始化为均匀分布的向量表示,称为结构化向量;
步骤22:对知识库中的文本信息进行如下预处理:分词、去除停止词、全部转换成小写字母、提取词干;
步骤23:利用提前训练好的词嵌入模型,将预处理后的每个词转换成低维连续的实值向量表示;
步骤24:将每份缺陷报告的所有词向量对应相加,得到每份缺陷报告的文本向量表示。
4.根据权利要求1所述的基于知识库和表示学习的缺陷报告自动分派方法,其特征在于所述步骤4的具体步骤如下:
步骤41:对于新提交的缺陷报告,从该报告中提取相应的“缺陷”实体;
步骤42:从步骤3中,获得在步骤41中提取的“缺陷”实体的向量表示以及“修复”关系的向量表示;
步骤43:将新缺陷报告对应的“缺陷”实体作为尾实体,在尾实体t和“修复”关系r已知 的条件下,组成头实体未知的不完整三元组
Figure DEST_PATH_IMAGE001
,其中需要预测的头实体即为适合 修复该缺陷的开发人员;
步骤44:使用链接预测方法,对头实体h进行预测,首先将知识库中的每一个“开发者”实体分别当做头实体,根据h,r,t的向量表示计算得到向量s=h+r-t,然后将向量s中的每个元素的绝对值累加,得到头实体和尾实体相匹配的分数;
步骤45:将所有实体按照对应的分数进行升序排序,取序列中分数最小的前k个“开发者”实体作为待推荐的修复者列表,返回给缺陷报告分派人员,从而实现缺陷报告的自动分派。
CN202010728693.1A 2020-07-23 2020-07-23 一种基于知识库和表示学习的缺陷报告自动分派方法 Active CN111723021B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010728693.1A CN111723021B (zh) 2020-07-23 2020-07-23 一种基于知识库和表示学习的缺陷报告自动分派方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010728693.1A CN111723021B (zh) 2020-07-23 2020-07-23 一种基于知识库和表示学习的缺陷报告自动分派方法

Publications (2)

Publication Number Publication Date
CN111723021A CN111723021A (zh) 2020-09-29
CN111723021B true CN111723021B (zh) 2022-05-03

Family

ID=72573617

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010728693.1A Active CN111723021B (zh) 2020-07-23 2020-07-23 一种基于知识库和表示学习的缺陷报告自动分派方法

Country Status (1)

Country Link
CN (1) CN111723021B (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113312487A (zh) * 2021-01-16 2021-08-27 江苏网进科技股份有限公司 一种基于TransE模型的面向法律文本的知识表示学习方法
CN113138920B (zh) * 2021-04-20 2022-09-06 中国科学院软件研究所 基于知识图谱与语义角色标注的软件缺陷报告分派方法及装置

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110275959A (zh) * 2019-05-22 2019-09-24 广东工业大学 一种面向大规模知识库的快速学习方法
CN111309907A (zh) * 2020-02-10 2020-06-19 大连海事大学 一种基于深度强化学习的实时Bug分派方法

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20200210855A1 (en) * 2018-12-28 2020-07-02 Robert Bosch Gmbh Domain knowledge injection into semi-crowdsourced unstructured data summarization for diagnosis and repair

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110275959A (zh) * 2019-05-22 2019-09-24 广东工业大学 一种面向大规模知识库的快速学习方法
CN111309907A (zh) * 2020-02-10 2020-06-19 大连海事大学 一种基于深度强化学习的实时Bug分派方法

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
"代码知识图谱构建及智能化软件开发方法研究 ";王飞 等;《《软件学报》》;20191106;47-66页 *
Detection of semantically similar code;Tiantian Wang 等;《《Frontiers of Computer Science》》;20141022;996–1011页 *
Ontology-based services for software vulnerability detection: a survey;Bingquan Wang 等;《《Service Oriented Computing and Applications》》;20191121;333–339页 *

Also Published As

Publication number Publication date
CN111723021A (zh) 2020-09-29

Similar Documents

Publication Publication Date Title
CN110597735B (zh) 一种面向开源软件缺陷特征深度学习的软件缺陷预测方法
CN110889556B (zh) 一种企业经营风险特征数据信息提取方法和提取系统
Bilal et al. Guidelines for applied machine learning in construction industry—A case of profit margins estimation
US11790256B2 (en) Analyzing test result failures using artificial intelligence models
CN112528034B (zh) 一种基于知识蒸馏的实体关系抽取方法
US20200167659A1 (en) Device and method for training neural network
CN108459955B (zh) 基于深度自编码网络的软件缺陷预测方法
US20090083200A1 (en) Method and system for active learning screening process with dynamic information modeling
Theeten et al. Import2vec: Learning embeddings for software libraries
US11620453B2 (en) System and method for artificial intelligence driven document analysis, including searching, indexing, comparing or associating datasets based on learned representations
CN111723021B (zh) 一种基于知识库和表示学习的缺陷报告自动分派方法
CN113138920B (zh) 基于知识图谱与语义角色标注的软件缺陷报告分派方法及装置
US11995573B2 (en) Artificial intelligence system providing interactive model interpretation and enhancement tools
Gnanasekaran et al. Using Recurrent Neural Networks for Classification of Natural Language-based Non-functional Requirements.
Nural et al. Using meta-learning for model type selection in predictive big data analytics
CN117215935A (zh) 一种基于多维度代码联合图表示的软件缺陷预测方法
CN110377690B (zh) 一种基于远程关系抽取的信息获取方法和系统
CN116861924A (zh) 基于人工智能的项目风险预警方法及系统
JP2023147236A (ja) 説明により強化された機械学習パイプライン
CN116302953A (zh) 一种基于增强嵌入向量语义表示的软件缺陷定位方法
CN115712576A (zh) 基于开源软件缺陷问题的软件测试类型推荐方法和系统
US20220405623A1 (en) Explainable artificial intelligence in computing environment
CN113835739A (zh) 一种软件缺陷修复时间的智能化预测方法
Iancu et al. Multi-label classification for automatic tag prediction in the context of programming challenges
Choetkiertikul Developing analytics models for software project management

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