logo好方法网

知识嵌入的缺陷报告重构方法及装置


技术摘要:
本发明公开了一种知识嵌入的缺陷报告重构方法及装置,属于软件缺陷领域。本发明将信息检索和信息抽取技术相结合,首先将异构的历史缺陷数据转化为统一的知识表示,进行系统化的组织管理便于复用。在此基础上,从原始查询中学习词嵌入,从缺陷知识图谱中获取实体嵌入和  全部
背景技术:
软件缺陷是软件质量维护过程中所要解决的最严重的问题之一。每天有大量的缺 陷被不断提交或重新打开,但是用户提交的缺陷报告往往缺失必要的信息,含有噪声甚至 错误的信息,使得开发人员分析理解缺陷费时费力。目前,许多研究结合信息检索(IR)技术 与各种文本特征提取方法,将新缺陷报告中的文本描述作为初始查询,根据相似度匹配自 动搜索与之相关的历史缺陷文件来辅助理解新缺陷。但囿于新缺陷报告质量差,信息有限, 往往无法获得满意的检索结果。针对这种情况,研究者主要采用两种方法来引入额外信息 丰富查询:查询扩展和特征增强。但这两方法都直接将缺陷报告视作单词序列,额外信息也 只以词或者特征向量的形式返回到原始查询中,忽视了缺陷报告中的语义信息,打断了内 在结构关联,影响了检索的准确率。 在本发明之前,目前已有一些工作用来分析面向信息检索的缺陷重构技术。当无 法返回所需的检索结果时,开发人员倾向于重构查询来重新进行检索,以提高检索效果。目 前的查询重构方法主要分为三类:第一类为查询扩展,增加原始查询的相关信息。查询扩展 是基于源代码检索的缺陷分析任务的最常见策略。研究者采用不同的方式选择可供扩展查 询的额外信息,例如,Shepherd等人选择外部知识库WordNet的本体,Rahman等人筛选代码 或其他软件文档中的共现术语,Panichella等人从相关性或伪相关性反馈结果中筛选共现 或者频繁出现的术语;第二类为查询替换,用一系列新的术语替换部分原始查询。查询替换 主要用于跟踪链接恢复,Gibiec等人从相似Web和领域文档中选择一组候选术语来代替初 始查询。另一个策略例如Guo等人按照需求从常用术语跟踪语料库中抽取高频术语并将其 用作新查询;第三类为查询删减,从原始查询中删除无用部分。Chaparro等人从缺陷报告中 删除噪声数据,只选用标题和描述中的重现语句作为查询。Rahman等人采用了词共现和句 法依存关系技术,以根据变更需求中最重要的词建立查询。Kevic等人发现变更需求中的特 定术语具有检索相关代码文档的最高预测能力。以上的查询重构方法均只从单词级别对原 始查询进行了处理,并不能很好地改善检索效果。
技术实现要素:
本发明的目的在于克服上述现有技术存在的不足,提供一种基于缺陷知识图谱, 采用深度学习融合多级信息嵌入重构缺陷报告的完整方法。 实现本发明目的的技术解决方案为:一种知识嵌入的缺陷报告重构方法,所述方 法包括以下步骤: 步骤1,构建缺陷知识图谱; 步骤2,对新缺陷报告进行多级信息嵌入; 4 CN 111597347 A 说 明 书 2/8 页 步骤3,融合多级信息嵌入结果实现重构所述新缺陷报告。 进一步地,步骤1所述构建缺陷知识图谱,具体过程包括: 步骤1-1,构建历史缺陷数据集Bugset; 步骤1-2,识别集合Bugset中的缺陷实体以及实体间的关系; 步骤1-3,将实体-关系-实体三元组存储至图数据库中,形成缺陷知识图谱; 步骤1-4,对缺陷知识图谱进行实体对齐和知识丰富;所述知识丰富包括增加共现 实体、增加同义实体。 进一步地,步骤1-1所述构建历史缺陷数据集Bugset,具体包括: 采集已修复的历史缺陷报告; 提取所述已修复的历史缺陷报告的标题、描述和分类信息,生成缺陷文档; 利用自然语言处理工具对所述缺陷文档进行数据清洗; 对数据清洗后的缺陷文档进行预处理,形成历史缺陷数据集Bugset;所述预处理 包括去除噪声、分句分词。 进一步地,步骤1-4中所述实体对齐包括: 对实体进行规范化处理,包括提取词干、转换大小写字母; 对实体进行相似度匹配。 进一步地,步骤1-4中所述共现实体通过PMI度量从集合Bugset中筛选获得,所述 同义实体从开放知识库ConceptNet中筛选获得。 进一步地,步骤2所述多级信息嵌入包括:词嵌入、实体嵌入以及上下文嵌入。 进一步地,步骤2所述对新缺陷报告进行多级信息嵌入,包括: 步骤2-1,提取新缺陷报告中的标题和描述,进行合并后作为原始查询; 步骤2-2,利用自然语言处理工具对所述原始查询进行数据清洗,并对数据清洗后 的原始查询进行预处理;所述预处理包括去除噪声、分句分词; 步骤2-3,进行词嵌入,包括:采用word2vec在历史缺陷数据集Bugset上预训练词 嵌入,获得查询的词嵌入矩阵; 步骤2-4,进行实体嵌入,包括: 识别所述原始查询中的缺陷实体; 依据实体链接从所述缺陷知识图谱中学习所述缺陷实体对应的实体嵌入,获得查 询的实体嵌入矩阵;其中,链接失败对应的实体嵌入设为0; 步骤2-5,进行上下文嵌入,包括:根据步骤2-4中所述缺陷实体在缺陷知识图谱中 对应的最近邻实体学习该缺陷实体的上下文嵌入,获得查询的上下文嵌入矩阵; 步骤2-6,利用激活函数将上述三级嵌入转换到相同的向量空间,即将上述三级嵌 入矩阵转换为相同维度。 进一步地,步骤3所述融合多级信息嵌入结果实现重构所述新缺陷报告,具体包 括: 步骤3-1,利用自注意机制模型对所述原始查询中的单词和实体赋予权重,将所述 三级嵌入矩阵转换为三级特征化嵌入矩阵; 步骤3-2,利用CNN模型对所述三级特征化嵌入矩阵进行融合,获得新的查询,即实 现新缺陷报告的重构。 5 CN 111597347 A 说 明 书 3/8 页 一种知识嵌入的缺陷报告重构装置,包括: 存储器,用于存储程序; 处理器,用于运行所述程序; 其中,所述程序在所述处理器中运行时,用于执行以下步骤: 步骤1,构建缺陷知识图谱; 步骤2,对新缺陷报告进行多级信息嵌入; 步骤3,融合多级信息嵌入结果实现重构所述新缺陷报告。 本发明与现有技术相比,其显著优点包括: 1)从实体级别丰富查询信息:实体是知识的最小单元,是比单词更细粒度的信息。 从实体级别重构查询,一方面大量历史缺陷数据被统一表示为实体-关系-实体三元组,便 于组织、复用,引入原始查询;一方面从新缺陷报告描述中抽取实体,充分挖掘自身语义信 息。具体地: (1-1)本发明从开源项目的缺陷跟踪系统中选取已确认修复的历史缺陷报告,采 用信息抽取技术自动识别缺陷知识,即缺陷实体和实体关系,并用图数据库Neo4j进行存储 和管理,构建缺陷知识图谱作为外部数据源。现有研究中,用来丰富新缺陷信息的外部数据 源主要是软件文献、代码文件或者开放知识库,而非直属于软件缺陷领域,引入额外信息的 同时也引入大量噪声。缺陷知识图谱是软件缺陷领域专用知识库,能针对查询提供大规模、 高质量的可扩展缺陷信息。 (1-2)本发明以缺陷知识图谱作为外部数据源,供原始查询扩展的缺陷信息是更 加细粒度的知识(即实体与关系)而非术语(即单词)。现有技术是从单词级别,匹配查询中 的关键词来进行扩展,会引入不相关或者不准确的信息。本发明首先识别查询中的实体,即 查询中最重要的部分,通过实体链接技术,综合匹配实体和属性来确定扩展对象,实现精准 扩展。 (1-3)缺陷报告并非一般的自然语言文本,含有大量的短语、短句、非规范性用词、 专业词汇等等。单词和单词之间存在着非常紧密的语义联系,不单单是句法依存关系。本发 明采用信息抽取技术从新缺陷报告中抽取缺陷实体和实体关系,保留了内部的结构特征和 语义信息。 2)融合多级嵌入表示查询:采用深度学习,融合内外多级信息嵌入,生成独立缺陷 表示,直接作为多种缺陷分析模型输入。具体地: (2-1)本发明采用翻译模型TransE学习知识图谱中的实体嵌入和关系嵌入。在此 基础上,以嵌入形式(embedding)将外部数据源中的历史缺陷信息引入原始查询,无需繁杂 的人工特征工程,提高系统的计算效率。同时不仅从知识图谱中获取实体嵌入(entity  embedding),还从目标实体的关联实体中获取上下文嵌入(context  embedding),为每个实 体提供了更全面、更丰富的信息。 (2-2)本发明采用自注意力机制识别出查询中的更重要的单词和实体,进一步放 大了查询内部的结构特征。采用CNN模型融合多级信息嵌入,保留查询结构,将缺陷表示为 一个独立嵌入向量。在基于信息检索的缺陷分析任务中,该缺陷嵌入可直接作为匹配模型 输入,易于计算缺陷之间的相似度。 下面结合附图对本发明作进一步详细描述。 6 CN 111597347 A 说 明 书 4/8 页 附图说明 图1为一个实施例中知识嵌入的缺陷报告重构方法流程图。 图2为一个实施例中构建的缺陷知识图谱示意图。 图3为一个实施例中定义的实体上下文示意图。
下载此资料需消耗2积分,
分享到:
收藏