当前位置: 首页 > 专利查询>南京大学专利>正文

一种基于自然语言处理的众包测试报告相似度检测的方法技术

技术编号:31157896 阅读:22 留言:0更新日期:2021-12-04 09:56
一种基于自然语言处理的众包测试报告相似度检测的方法,采用自然语言处理技术检测众包工人提交的复杂测试报告的相似度,其中功能是对众测报告进行中文分词、去停用词等预处理,将预处理完之后的词组表示的句子利用Word2Vec技术表示为词向量,选取余弦相似度的度量方式计算词向量之间的距离,采用根据先前大量众测报告数据训练的语义模型进行训练,再将各词向量作为K-Means聚类分析的输入,对各个词向量进行聚类分析,根据设定的相似度阈值将相似的报告归为同一类,可以较为准确的衡量众包测试报告之间的相似度。众包测试报告之间的相似度。众包测试报告之间的相似度。

【技术实现步骤摘要】
一种基于自然语言处理的众包测试报告相似度检测的方法


[0001]本专利技术属于软件工程领域,是自然语言处理在软件工程领域的应用,用于检测代码相似度。

技术介绍

[0002]相似众包测试报告检测是提高众测报告利用率,减少测试人员阅读重复报告的工作量的关键技术。众包测试报告是众包工人完成发起者制定的任务之后反馈给测试人员的结果,测试人员依据众测报告指导Bug的复现和定位。如果众测报告中有大量的重复内容描述的是相同的Bug内容,测试人员在阅读前无法预先得知该份报告描述的Bug是否是之前已提到过的,因此测试人员需要浪费大量的时间在阅读重复报告上,这对于测试人员复现和定位Bug没有任何的帮助。因此研究人员非常关注检测相似众包测试报告的问题,以帮助提高众包测试报告的有效性。
[0003]众包测试报告相似可能会有以下两种原因导致:
[0004]1)原因一:由于每个众包工人都会参与所有的测试任务,因此难免会出现多个众包工人发现相同的Bug,对于同一Bug多个工人会采用类似的词汇和句子去形容,因此这样就导致了多份众测报告中的重复内容。
[0005]2)原因二:由于众包测试提供金钱激励,因此会存在某些恶意工人抄袭他人测试报告骗取奖励的行为。
[0006]对于原因二所导致的众包测试报告通常相似度非常高,大部分的文本内容完全相同,因此传统的文本相似度分析对于相似报告的检测效果比较好。但针对原因一,多份测试报告中只是词语和句子意思相近,并不完全相同。针对这种原因所导致的相似众包测试报告,传统的纯文本相似度分析的检测效果并不理想。
[0007]现如今有许多检测相似Bug报告的方法。P.Runeson等人针对缺陷报告大多是用结构化的自然语言编写的这一特点,分析出很难将两个报告的相似性与正则方法进行比较,于是他们通过纯文本的自然语言处理技术来识别报告中的重复项。C.Sun等人提出了一种测试两个报告之间相似性的检索工具,该工具不仅利用了报告中摘要和描述字段的文本内容的相关性,还报告了产品、组件、版本等非文本字段的相似性。该工具还扩展了BM25F-信息检索社区中一个有效的相似性公式,使用了两轮随机梯队下降方法,以有监督的学习方法针对特定Bug库自动优化检索过程,更加提高了相似报告检测的准确性。方法一对于大部分文本内容完全相同的相似报告检测效果较好但未考虑原因一的情况。方法二考虑了原因一的情况,但由于其中涉及的特定Bug库并不针对众测报告领域,因此在众测报告相似检测上依然不够理想。

技术实现思路

[0008]本专利技术要解决的问题是:当前的众包测试报告相似度检测中,对于含义相同但文本内容并不完全相同的相似报告的检测效果不佳。
[0009]本专利技术的技术方案为:一种基于自然语言处理的众包测试报告相似度检测的方法,包括以下步骤:
[0010]1)首先构建众包测试语料库,在众包测试语料库的基础上训练有监督的语义模型:
[0011]1.1)基于以往的大量众包测试报告数据挑选典型的Bug场景,针对每一特定场景首先由专家团队给出该Bug的典型描述,并且收集针对该场景的两类描述。第一类描述与典型描述内容不完全相同,但通过意思相近的表述都很好的阐明了该场景下的Bug的具体表现。第二类描述与典型描述有大部分的文本内容相同,但通过修改少量的内容(如主语,谓语)描述了完全不同的Bug。
[0012]1.2)针对上述收集的数据,构建众包测试的专有名词语料库,总结众包测试近义词库。
[0013]1.3)针对上述收集的数据,人为标记描述之间相似与否,基于神经网络的计算模型,训练众包测试报告语义模型。通过多次迭代与调整参数,在测试集上达到理想的检测效果,则训练完成语义模型。
[0014]2)其次进行输入处理。将输入的众包测试报告首先进行预处理,通过之前总结好的停用词表,对众包测试报告进行去停用词处理。再利用中文分词工具JieBa进行报告分词,对于分词后的结果只选取收纳在第(1)步总结出的语料库中的词语,再根据近义词库进行近义词的替换工作。完成输入预处理工作,输出报告对应的词语组。
[0015]3)接着将每一份报告对应的词语组列表作为输入,利用Word2Vec技术将分词之后的报告对应的词语组表示成计算机能够计算的类型,计算每个词语组的词嵌入向量。
[0016]4)选取词频,n-gram,词性等特征,将其向量化,(Word2Vec利用了窗口内文本的共现特征),作为之后语义模型的输入进行计算。
[0017]5)将词语组对应的词嵌入向量以及特征向量作为第(1)步训练好的语义模型的输入,进行训练。采用余弦相似度作为向量间距离度量的标准,计算向量之间的距离,即报告之间的相似度。
[0018]6)根据计算的结果利用K-means方法进行聚类分析,将高相似度的报告归为同一类,最后得到聚类结果与相似报告簇。
[0019]本专利技术的特点在于:1、通过收集众包测试报告领域的典型Bug场景和描述,构建众包测试语料库和近义词库。2、训练了基于神经网络的有监督学习的众包测试报告语义模型。3、使用Word2Vec将词组库计算词嵌入向量。4、采用余弦相似度计算报告间的相似度。5、根据K-means方法进行聚类分析,归纳出高相似报告类簇。
[0020]本专利技术的有益效果是:通过总结的众包测试报告领域的典型Bug场景和描述,和基于神经网络的有监督学习的语义模型,可以有效地识别不完全相同内容但描述相同Bug的多份报告之间的相似性。
附图说明
[0021]图1为本专利技术整体流程图。
[0022]图2为本专利技术依据的众测报告数据集的部分数据示例
[0023]图3-6为本专利技术中数据集经聚类分析后的部分相似报告类簇示例。
具体实施方式
[0024]本专利技术中涉及的几项关键技术是jieba分词、Word2Vec模型、K-means聚类和LSTM-DSSM深度学习模型。
[0025]1、jieba分词
[0026]jieba是目前最好的Python中文分词组件,它主要有以下3种特性。1.支持3中分词模
[0027]式:精确模式、全模式、搜索引擎模式。2、支持繁体分词。3、支持自定义字典。
[0028]2、Word2Vec模型
[0029]Word2Vec,是一群用来产生词向量的相关模型。这些模型为浅而双层的神经网络,用来训练以重新构建语言学此文本。网络以词表现,并且需猜测相邻位置的输入词。在Word2Vec中词袋模型的假设下,词的顺序是不重要的。训练完成之后,Word2Vec模型可用来映射每个词到一个向量,可用来表示词与词之间的关系,该向量为神经网络隐藏层。
[0030]3、K-means聚类
[0031]K均值聚类算法是一种迭代求解的聚类分析算法,其步骤是随机随机选取K个对象作为初始的聚类中心,然后计算每个对象与各个种子聚类中心之间的距离,把每个对象分配给距离它最近的聚类中心。聚类中心以及分配给它们的对象就代表一个聚类。每分配一个本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种基于自然语言处理的众包测试报告相似度检测的方法,其特征是构建众包测试语料库,在众包测试语料库的基础上训练有监督的语义模型,利用语料词、停用词和近义词库进行输入预处理,利用Word2Vec技术计算报告对应的词嵌入向量,选取特征向量化,通过余弦相似度作为度量计算报告相似度,采用K-means进行聚类分析,最终得到高相似度的报告类簇。2.根据权利要求1所描述的一种基于自然语言处理的众包测试报告相似度检测的方法,其特征是构建众包测试语料库,在众包测试语料库的基础上训练有监督的语义模型,主要通过以下几个步骤进行划分:1)首先,基于以往的大量众包测试报告数据挑选典型的Bug场景,针对每一特定场景首先由专家团队给出该Bug的典型描述,并且收集针对该场景的两类描述。第一类描述与典型描述内容不完全相同,但通过意思相近的表述都很好的阐明了该场景下的Bug的具体表现;第二类描述与典型描述有大部分的文本内容相同,但通过修改少量的内容(如主语,谓语)描述了完全不同的Bug;2)针对上述收集的数据,构建众包测试的专有名词语料库,总结众包测试近义词库;3)针对上述收集的数据,人为标记描述之间相似与否,基于神经网络的计算模型,训练众包测试报告语义模型;通过多次迭代与调整参数,在测试集上达到理想的检测效果,则训练完成语义模型。3.根据权利要求1所描述的一种基于自然语言处理的众包测试报告相似度检测的方法,其特征是利用语料词、停用词和近义词库进行输入预处理并利用Word2Vec技术计算报告对应的词嵌入向量;将输入的众包测试报告首先进行预处理,通过之前总结好的停用词表,对众包测试...

【专利技术属性】
技术研发人员:房春荣曹振飞王旭虞圣呈恽叶霄李彤宇
申请(专利权)人:南京大学
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1