非原子性缺陷的检测方法、电子设备及存储介质与流程

文档序号:25483111发布日期:2021-06-15 21:43阅读:64来源:国知局
非原子性缺陷的检测方法、电子设备及存储介质与流程

本发明实施方式涉及数据处理领域,特别涉及一种非原子性缺陷的检测方法、电子设备及存储介质。



背景技术:

在需求分析阶段,提高需求质量具有重要意义,包括:减少缺陷、较早地发现错误、减少改动和标准化的相关成本,以及向利益相关方提供或者请求开发过程中将会涉及到的专业技术知识。与指定格式的结构化需求文档相比,自然语言需求往往更易于理解和使用,但也导致对其提高需求质量的工作相对于结构化需求难度更高。已有许多方法来进行需求缺陷检测,协助人工提高需求文档质量。

目前,常见的需求缺陷检测模式主要分为两类,一种是基于给定的需求文档模板或者需求语句规范的;另一种是针对自己定义的需求缺陷类型(或者是特定的某种缺陷),基于预定义的规则进行检测。然而,目前的检测方法的准确性不高。



技术实现要素:

本发明实施方式的目的在于提供一种非原子性缺陷的检测方法、电子设备及存储介质,提高了非原子性缺陷检测的准确性。

为解决上述技术问题,本发明的实施方式提供了一种非原子性缺陷的检测方法,包括以下步骤:将需求语句输入检测模块;其中,检测模块为预先训练至收敛的用于判断需求语句是否存在非原子性缺陷的模型,检测模块包括迁移学习模型和卷积神经网络模型;根据检测模块的输出数据,判断需求语句是否存在非原子性缺陷。

本发明的实施方式还提供了一种电子设备,包括:至少一个处理器;以及,与至少一个处理器通信连接的存储器;其中,存储器存储有可被至少一个处理器执行的指令,指令被至少一个处理器执行,以使至少一个处理器能够执行如上述实施方式提及的非原子性缺陷的检测方法。

本发明的实施方式还提供了一种计算机可读存储介质,存储有计算机程序,计算机程序被处理器执行时实现上述实施方式提及的非原子性缺陷的检测方法。

本发明实施方式提供的非原子性缺陷的检测方法、电子设备及存储介质,由于迁移学习模型是预训练的模型,可用于提取需求语句的特征。基于深度学习的卷积神经网络根据提取的特征判断需求语句是否存在非原子性缺陷,相对于基于规则检测非原子性缺陷检测的方法,检测结果的准确性更高。

另外,在将需求语句输入检测模型之前,非原子性缺陷的检测方法还包括:对初始需求语句进行预处理操作,得到需求语句;预处理操作包括:移除初始需求语句中的数字和/或移除初始需求语句中的标点符号。该例子中,移除需求语句中的数字、标点符号等与非原子性缺陷无关的信息,可以提高了检测模块的检测效果。

另外,预处理操作还包括:移除初始需求语句中的单个字符和/或移除初始需求语句中的连续空格。

另外,检测模块的输出数据指示需求语句的非原子性缺陷的类型,需求语句的非原子性缺陷的类型包括连词导致的非原子性缺陷和从句嵌套导致的非原子性缺陷。该例子中,对需求语句的非原子性缺陷进行分类,有利于后续研究及解决需求语句的非原子性缺陷。

另外,在将需求语句输入检测模块之前,非原子性缺陷的检测方法还包括:获取需求文档;根据预定义的纳入规则,对原始需求文档进行筛选;纳入规则指示保留的需求文档满足预设要求,预设要求包括:需求文档转换为文本格式后需求语句数量大于第一预设值和/或需求文档的拼写错误少于第二预设值;基于筛选后的需求文档,对检测模块进行训练。该例子中,对需求文档进行筛选,使得筛选后的需求文档更贴合训练需求,提高了训练速度。

另外,迁移学习模型为基于变换器的双向编码器表示技术bert模型。该例子中,bert模型是考虑上下文的双向编码,在进行特征抽取时有着更好的效果。

另外,基于筛选后的需求文档,对检测模块进行训练,包括:将筛选后的需求文档输入bert模型;将bert模型的输出反馈至卷积神经网络模型,对卷积神经网络模型进行训练。

另外,卷积神经网络模型的激活函数包括校正线性单元relu函数,卷积神经网络模型的分类层的函数包括sigmoid函数,卷积神经网络模型的训练过程的损失函数为交叉熵损失函数,卷积神经网络模型的优化算法为自适应矩估计adam算法。

附图说明

一个或多个实施方式通过与之对应的附图中的图片进行示例性说明,这些示例性说明并不构成对实施方式的限定,附图中具有相同参考数字标号的元件表示为类似的元件,除非有特别申明,附图中的图不构成比例限制。

图1是根据本申请的第一实施方式提及的非原子性缺陷的检测方法的流程示意图;

图2是根据本申请的第二实施方式提及的非原子性缺陷的检测方法的流程示意图;

图3是根据本申请的第三实施方式提及的电子设备的结构示意图。

具体实施方式

为使本发明实施方式的目的、技术方案和优点更加清楚,下面将结合附图对本发明的各实施方式进行详细的阐述。然而,本领域的普通技术人员可以理解,在本发明各实施方式中,为了使读者更好地理解本申请而提出了许多技术细节。但是,即使没有这些技术细节和基于以下各实施方式的种种变化和修改,也可以实现本申请所要求保护的技术方案。

以下各个实施方式的划分是为了描述方便,不应对本发明的具体实现方式构成任何限定,各个实施方式在不矛盾的前提下可以相互结合相互引用。

本发明的第一实施方式涉及一种非原子性缺陷的检测方法,包括以下步骤:将需求语句输入检测模块;其中,检测模块为预先训练至收敛的用于判断需求语句是否存在非原子性缺陷的模型,检测模块包括迁移学习模型和卷积神经网络模型;根据检测模块的输出数据,判断需求语句是否存在非原子性缺陷。该实施方式中,由于迁移学习模型是预训练的模型,可用于提取需求语句的特征。基于深度学习的卷积神经网络根据提取的特征判断需求语句是否存在非原子性缺陷,相对于基于规则检测非原子性缺陷检测的方法,检测结果的准确性更高。

下面对本实施方式的非原子性缺陷的检测方法的实现细节进行举例说明。以下内容仅为方便理解而提供的实现细节,并非实施本方案的必须。

本实施方式中的非原子性缺陷的检测方法应用于电子设备。其中,电子设备可以是终端、服务器、云端服务器等。如图1所示,非原子性缺陷的检测方法具体包括以下步骤:

步骤101:将需求语句输入检测模块。

具体地,检测模块为预先训练至收敛的用于判断需求语句是否存在非原子性缺陷的模型,检测模块包括迁移学习模型和卷积神经网络模型。其中,需求语句存在非原子性缺陷是指该需求语句表达了多个需求,不符合需求语句的原子性要求。

步骤102:根据检测模块的输出数据,判断需求语句是否存在非原子性缺陷。

具体地,电子设备基于检测模块的输出数据,确定需求语句是否存在非原子性缺陷。

在一个例子中,检测模块的输出数据指示需求语句是否存在非原子性缺陷。例如,若需求语句存在非原子性缺陷,则检测模块的输出数据为指定的第一字符串,若需求语句不存在非原子性缺陷,则检测模块的输出数据为指定的第二字符串。其中,第一字符串可以是“是”、“1”、“存在”等,第二字符串可以是“否”、“0”、“不存在”等。

在另一个例子中,检测模块的输出数据指示需求语句的非原子性缺陷的类型,需求语句的非原子性缺陷的类型包括连词导致的非原子性缺陷和从句嵌套导致的非原子性缺陷。许多需求设计可以从原子性的概念中受益,因为原子性的单一概念有助于分析隐藏在由多个步骤组成的动作或组件中的软件需求。反过来说,当缺陷在系统开发过程中引起了故障时,非原子性会让开发者难以检测到底是需求规范中的哪条语句的缺陷导致了故障。本实施方式中,为后续更好地研究及解决需求语句的非原子性缺陷,将需求语句的非原子性缺陷分为两类:连词导致的非原子性缺陷和从句嵌套导致的非原子性缺陷。当需求语句使用不必要的连词连接两句或更多完整句子时,视为存在连词导致的非原子性(non-atomicityfromconjunction)。当从句的嵌套使用导致非原子性缺陷时,视为存在从句嵌套导致的非原子性缺陷(non-atomicityfromclause)。例如:需求语句“thesystemshallconfirmthetrainwhosaysithassentamessagecontainingacknowledgesigns(该系统将对声称已发送包含确认信号的列车进行确认)”,在此需求语句中,使用嵌套的从句导致需求语句变得冗长而混乱,理解需求变得困难,故认为该需求语句存在从句嵌套导致的非原子性缺陷。若需求语句存在连词导致的非原子性缺陷,则检测模块的输出数据为指定的第三字符串;若需求语句存在从句嵌套导致的非原子性缺陷,则检测模块的输出数据为指定的第四字符串,若需求语句不存在非原子性缺陷,则检测模块的输出数据为指定的第五字符串。其中,第三字符串可以是“存在连词导致的非原子性缺陷”、“第一类缺陷”、“non-atomicityfromconjunction”、“1”等,第四字符串可以是“存在从句嵌套导致的非原子性缺陷”、“第二类缺陷”、“non-atomicityfromclause”、“2”等,第五字符串可以是“不存在非原子性缺陷”、“0”等。

值得一提的是,本实施方式中,从造成需求语句存在非原子性缺陷的原因这一角度出发,对需求语句的非原子性缺陷进行分类,有利于后续研究及解决需求语句的非原子性缺陷。

需要说明的是,本领域技术人员可以理解,实际应用中,还可以从其他角度出发,对非原子性缺陷进行分类,本实施方式不限制非原子性缺陷的分类方式。

需要说明的是,本领域技术人员可以理解,实际应用中,可以根据需要设置检测模块的输出数据的具体字符或字符串,本实施方式仅为举例说明,不限制检测模块的输出数据的具体形式。

在一个例子中,迁移学习模型为基于变换器的双向编码器表示技术(bidirectionalencoderrepresentationsfromtransformers,bert)模型。

需要说明的是,本实施方式中,可以根据bert模型的使用场景,以及项目需求,选择合适的bert模型。例如,bert模型包括区分大小写的bert模型和不区分大小写的bert模型,本实施方式中,在验证两模型各自的效果后,选择使用区分大小写的bert模型。

值得一提的是,由于bert模型是一种预训练语言模型,预训练的目的是提前训练好其下游任务中底层的、共性的部分模型,再用下游任务各自的样本数据来训练各自的模型,极大地加快收敛速度。此外,bert模型是考虑上下文的双向编码,在进行特征抽取时有着更好的效果。

在一个例子中,在将需求语句输入检测模块之前,非原子性缺陷的检测方法还包括:获取需求文档;根据预定义的纳入规则,对原始需求文档进行筛选;纳入规则指示保留的需求文档满足预设要求,预设要求包括:需求文档转换为文本格式后需求语句数量大于第一预设值和/或需求文档的拼写错误少于第二预设值;基于筛选后的需求文档,对检测模块进行训练。其中,第一预设值和第二预设值可以根据需要设置,此处不做限制。

值得一提的是,对需求文档进行筛选,使得筛选后的需求文档更贴合训练需求,提高了训练速度。

在一个例子中,基于筛选后的需求文档,对检测模块进行训练之前,对筛选后的需求文档进行预处理操作,预处理操作包括:移除筛选后的需求文档中的数字、移除筛选后的需求文档中的标点符号、移除筛选后的需求文档中的单个字符和移除筛选后的需求文档中的连续空格中的任意一个或任意组合。其中,单个字符是指语句中的单独出现的单字的冠词(如“a”)等。

值得一提的是,由于造成非原子性缺陷的原因主要在于需求语句的语句结构或语法,在训练过程中,移除数字、标点符号等与非原子性缺陷无关的信息,可以提高了检测模块的检测效果。

在一个例子中,基于筛选后的需求文档,对检测模块进行训练,包括:将筛选后的需求文档输入bert模型;将bert模型的输出反馈至卷积神经网络模型,对卷积神经网络模型进行训练。具体地,将筛选后的需求文档中的基于自然语言的需求语句转换成适应bert模型的格式,使用bert模型提取转化后的需求语句的特征。将bert模型的输出反馈至卷积神经网络模型,对卷积神经网络模型的超参数进行微调。在对超参数,如训练集遍历次数,进行微调时,较多的遍历次数可以使模型在训练集上获得更好的结果,但存在过拟合的风险。因此,本领域技术人员可以根据需要设置遍历次数。

在一个例子中,为使训练后的卷积神经网络模型能够区分需求语句的非原子性缺陷类型,对筛选后的需求文档中的需求语句进行标注。需求语句的标注分为指示需求语句不存在非原子性缺陷的标注、指示需求语句存在连词导致的非原子性缺陷的标注和指示需求语句存在从句嵌套导致的非原子性缺陷的标注。卷积神经网络模型基于筛选后的需求文档及标注,训练卷积神经网络模型的参数,使得训练后的卷积神经网络模型能够区分需求语句是否存在非原子性缺陷,以及需求语句存在非原子性缺陷时,其非原子性缺陷的类型。

需要说明的是,本领域技术人员可以理解,实际应用中,还可以建立其他标注对检测模块进行训练,例如,需求语句的标注分为指示需求语句不存在非原子性缺陷的标注和指示需求语句存在非原子性缺陷的标注,本实施方式仅为举例说明。

在一个例子中,卷积神经网络模型的激活函数包括校正线性单元(rectifiedlinearunit,relu)函数,卷积神经网络模型的分类层的函数包括sigmoid函数。具体地,在预训练模型之上,将bert模型的输出馈送到卷积神经网络的结构中。对于卷积神经网络的隐层神经元输出,使用relu的激活函数。对于判断需求语句是否包含非原子性缺陷,或者,判断需求语句包含哪类非原子性缺陷,采用sigmoid函数来获取概率分布与最终的判断结果。

需要说明的是,本领域技术人员可以理解,实际应用中,还可以使用其他激活函数或分类函数,本实施方式仅为举例说明。

在一个例子中,卷积神经网络模型的训练过程的损失函数为交叉熵损失函数。具体地,在训练过程中使用交叉熵损失函数,以量化预测分布与真实分布的接近程度。交叉熵损失函数可以表征真实样本标签和预测概率之间的差值,从而“惩罚”错误的预测,并“奖励”正确的预测。

在一个例子中,卷积神经网络模型的优化算法为自适应矩估计(adaptivemomentestimation,adam)算法。具体地,对于神经网络中更新各部分权重的优化算法,采用了adam算法。adam算法通过计算梯度的一阶矩估计和二阶矩估计为不同的参数设计独立的自适应性学习率。

需要说明的是,本领域技术人员可以理解,实际应用中,还可以使用其他损失函数或其他优化算法,本实施方式仅为举例说明。

需要说明的是,本领域技术人员可以理解,实际应用中,也可以使用其他迁移学习模型,本实施方式不限制具体使用的模型类型。

在一个例子中,使用自然语言处理框架(gate框架)与计算机编程语言(python)实现本实施方式提及的基于迁移学习模型和卷积神经网络模型的非原子性缺陷的检测方法。

本实施方式中,对检测模块的准确性进行检测的过程中,为了使得实验结果更加真实,使用了现实需求数据进行实验。具体地,从以下三种数据来源收集公开的现实需求文档作为实验数据:其他公开的可用的需求数据集、互联网上的可用的需求文档或规范,以及已有文献与研究论文中提到的需求文档。最终共收集到了160篇公开需求文档,时间范围从1994年到2019年。随后,对这些需求文档建立了纳入/排除标准,为后续的标注工作做筛选。纳入标准包括:在使用自动化工具将需求文档转换成文本格式后没有丢失大量需求语句;文档内格式统一、清晰,没有出现大量拼写错误;描述的系统或系统构件较为完整。排除标准包括:文档篇幅过长的同时,文字内容过于模糊而无法通过自动化工具获得足够准确的结果;使用完全结构化或者形式化的方式书写,不属于自然语言需求范围。在具体按照纳入/排除规则进行需求文档的筛选的过程中,通过是一个python的pdf解析器(pdfminer)和pdf文件转换成文本文件的命令行工具(pdftotext),将非纯文本格式的需求文档批量转化成文本格式。基于预定义的纳入/排除标准,对转换所得的纯文本需求文档进行评价。将满足纳入标准少于半数或者满足排除标注超过半数的需求文档将被划分入“排除”类,反之则划分入“纳入”类。针对“纳入”类需求文档进行试验,最终发现,本实施方式提及非原子性缺陷的检测方法的准确性达到90%,明显高于现有的基于规则的检测方法的70%的准确性。

需要说明的是,以上仅为举例说明,并不对本发明的技术方案构成限定。

与现有技术相比,本实施方式中提供的非原子性缺陷的检测方法,由于迁移学习模型是预训练的模型,可用于提取需求语句的特征。基于深度学习的卷积神经网络根据提取的特征判断需求语句是否存在非原子性缺陷,相对于基于规则检测非原子性缺陷检测的方法,检测结果的准确性更高。

本发明的第二实施方式涉及一种非原子性缺陷的检测方法。本实施方式在第一实施方式的基础上做了进一步改进,具体改进之处为:在将需求语句输入检测模型之前,增加了对需求语句进行预处理操作的步骤。

具体地,如图2所示,在本实施方式中,包含步骤201至步骤203,其中,步骤202和步骤203分别与第一实施方式中的步骤101至步骤102大致相同,此处不再赘述。下面主要介绍不同之处:

步骤201:对初始需求语句进行预处理操作,得到需求语句。

具体地,预处理操作包括:移除初始需求语句中的数字和/或移除初始需求语句中的标点符号。

在一个例子中,预处理操作还包括:移除初始需求语句中的单个字符和/或移除初始需求语句中的连续空格。

值得一提的是,由于造成非原子性缺陷的原因主要在于需求语句的语句结构或语法,在非原子性缺陷的检测过程中,移除初始需求语句中的数字、标点符号等与非原子性缺陷无关的信息,可以提高了检测模块的检测效果。

步骤202:将需求语句输入检测模块。

步骤203:根据检测模块的输出数据,判断需求语句是否存在非原子性缺陷。

需要说明的是,以上仅为举例说明,并不对本发明的技术方案构成限定。

与现有技术相比,本实施方式中提供的非原子性缺陷的检测方法,由于迁移学习模型是预训练的模型,可用于提取需求语句的特征。基于深度学习的卷积神经网络根据提取的特征判断需求语句是否存在非原子性缺陷,相对于基于规则检测非原子性缺陷检测的方法,检测结果的准确性更高。除此之外,由于造成非原子性缺陷的原因主要在于需求语句的语句结构或语法,在非原子性缺陷的检测过程中,移除初始需求语句中的数字、标点符号等与非原子性缺陷无关的信息,可以提高了检测模块的检测效果。

上面各种方法的步骤划分,只是为了描述清楚,实现时可以合并为一个步骤或者对某些步骤进行拆分,分解为多个步骤,只要包括相同的逻辑关系,都在本专利的保护范围内;对算法中或者流程中添加无关紧要的修改或者引入无关紧要的设计,但不改变其算法和流程的核心设计都在该专利的保护范围内。

本发明的第三实施方式涉及一种电子设备,如图3所示,包括:至少一个处理器301;以及,与至少一个处理器301通信连接的存储器302;其中,存储器302存储有可被至少一个处理器301执行的指令,指令被至少一个处理器301执行,以使至少一个处理器301能够执行如上述实施方式提及的非原子性缺陷的检测方法。

该电子设备包括:一个或多个处理器301以及存储器302,图3中以一个处理器301为例。处理器301、存储器302可以通过总线或者其他方式连接,图3中以通过总线连接为例。存储器302作为一种非易失性计算机可读存储介质,可用于存储非易失性软件程序、非易失性计算机可执行程序以及模块。处理器301通过运行存储在存储器302中的非易失性软件程序、指令以及模块,从而执行设备的各种功能应用以及数据处理,即实现上述非原子性缺陷的检测方法。

存储器302可以包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需要的应用程序;存储数据区可存储选项列表等。此外,存储器302可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他非易失性固态存储器件。在一些实施方式中,存储器302可选包括相对于处理器301远程设置的存储器,这些远程存储器可以通过网络连接至外接设备。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。

一个或者多个模块存储在存储器302中,当被一个或者多个处理器301执行时,执行上述任意方法实施方式中的非原子性缺陷的检测方法。

上述产品可执行本申请实施方式所提供的方法,具备执行方法相应的功能模块和有益效果,未在本实施方式中详尽描述的技术细节,可参见本申请实施方式所提供的方法。

本发明的第四实施方式涉及一种计算机可读存储介质,存储有计算机程序。计算机程序被处理器执行时实现上述方法实施方式。

即,本领域技术人员可以理解,实现上述实施方式方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,该程序存储在一个存储介质中,包括若干指令用以使得一个设备(可以是单片机,芯片等)或处理器(processor)执行本申请各个实施方式所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(rom,read-onlymemory)、随机存取存储器(ram,randomaccessmemory)、磁碟或者光盘等各种可以存储程序代码的介质。

本领域的普通技术人员可以理解,上述各实施方式是实现本发明的具体实施方式,而在实际应用中,可以在形式上和细节上对其作各种改变,而不偏离本发明的精神和范围。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1