掌桥专利:专业的专利平台
掌桥专利
首页

聚类学习方法、测试步骤聚类方法及相关装置

文献发布时间:2023-06-19 11:05:16


聚类学习方法、测试步骤聚类方法及相关装置

技术领域

本申请实施例涉及软件测试技术领域,具体而言,涉及一种聚类学习方法、测试步骤聚类方法及相关装置。

背景技术

自动化测试脚本由操作行为、测试数据和预期断言三部分组成,测试步骤即为自动化测试脚本中的操作行为,每个测试步骤需与一组操作序列对应。测试步骤的文本短语描述的格式形如:主语(用户)行为谓语(点击)宾语(确认),由于不同人表达相同含义时所使用的中文描述方式可能不同,所以可能会出现多个描述不同但对应的操作序列完全相同的情形,从而导致操作序列冗余,增加编码工作量。

发明内容

本申请实施例的目的在于提供一种聚类学习方法、测试步骤聚类方法及相关装置,用以减少冗余操作序列,降低编码工作量。

为了实现上述目的,本申请实施例采用的技术方案如下:

第一方面,本申请实施例提供了一种聚类学习方法,所述方法包括:

获取训练文本,所述训练文本包括多个测试用例,所述测试用例包括多个测试步骤;

将所述训练文本输入预先构建的处理模型,获得每两个所述测试步骤之间的第一相似性度量值;

根据每个所述第一相似性度量值对所述训练文本进行聚类,生成聚类树,其中,所述聚类树包括多个聚类簇,一个所述聚类簇包括多个所述测试步骤;

根据所述聚类树对所述处理模型进行参数更新,直至所述聚类树达到设定条件,得到训练后的处理模型和最终聚类树,其中,所述最终聚类树的一个聚类簇对应一组预设的操作序列。

第二方面,本申请实施例还提供了一种测试步骤聚类方法,所述方法包括:

获取待处理文本,所述待处理文本包括多个待处理测试步骤;

将所述待处理文本输入利用上述的聚类学习方法训练后的处理模型,得到每两个所述待处理测试步骤之间的第二相似性度量值;

根据每个所述第二相似性度量值对所述待处理文本进行聚类,生成待处理聚类树,其中,所述待处理聚类树包括多个待处理聚类簇,一个所述待处理聚类簇包括多个所述待处理测试步骤;

将所述待处理聚类树与最终聚类树进行比对,得到每个所述待处理聚类簇对应的操作序列,其中,所述最终聚类树是利用上述的聚类学习方法生成的。

第三方面,本申请实施例还提供了一种聚类学习装置,所述装置包括:

第一获取模块,用于获取训练文本,所述训练文本包括多个测试用例,所述测试用例包括多个测试步骤;

第一处理模块,用于将所述训练文本输入预先构建的处理模型,获得每两个所述测试步骤之间的第一相似性度量值;

第一聚类模块,用于根据每个所述第一相似性度量值对所述训练文本进行聚类,生成聚类树,其中,所述聚类树包括多个聚类簇,一个所述聚类簇包括多个所述测试步骤;

执行模块,用于根据所述聚类树对所述处理模型进行参数更新,直至所述聚类树达到设定条件,得到训练后的处理模型和最终聚类树,其中,所述最终聚类树的一个聚类簇对应一组预设的操作序列。

第四方面,本申请实施例还提供了一种测试步骤聚类装置,所述装置包括:

第二获取模块,用于获取待处理文本,所述待处理文本包括多个待处理测试步骤;

第二处理模块,用于将所述待处理文本输入利用上述的聚类学习方法训练后的处理模型,得到每两个所述待处理测试步骤之间的第二相似性度量值;

第二聚类模块,用于根据每个所述第二相似性度量值对所述待处理文本进行聚类,生成待处理聚类树,其中,所述待处理聚类树包括多个待处理聚类簇,一个所述待处理聚类簇包括多个所述待处理测试步骤;

比对模块,用于将所述待处理聚类树与最终聚类树进行比对,得到每个所述待处理聚类簇对应的操作序列,其中,所述最终聚类树是利用上述的聚类学习方法生成的。

第五方面,本申请实施例还提供了一种电子设备,所述电子设备包括:一个或多个处理器;存储器,用于存储一个或多个程序,当所述一个或多个程序被所述一个或多个处理器执行时,使得所述一个或多个处理器实现上述的聚类学习方法或者测试步骤聚类方法。

第六方面,本申请实施例还提供了一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现上述的聚类学习方法或者测试步骤聚类方法。

相对现有技术,本申请实施例提供的一种聚类学习方法、测试步骤聚类方法及相关装置,在进行聚类学习时,先将训练文本输入预先构建的处理模型,获得训练文本中每两个测试步骤之间的第一相似性度量值,再根据每个第一相似性度量值对训练文本进行聚类生成聚类树,之后根据聚类树对处理模型进行参数更新,直至聚类树达到设定条件,得到训练后的处理模型和最终聚类树,最终聚类树的一个聚类簇对应一组预设的操作序列,即同一聚类簇内的所有测试步骤均对应一组预设的操作序列,从而可以减少冗余操作序列,降低了编码工作量。

附图说明

图1示出了本申请实施例提供的聚类学习方法的流程示意图。

图2为图1所示的聚类学习方法中步骤S102的流程示意图。

图3为图2所示的步骤S102中子步骤S1023的一种流程示意图。

图4为图2所示的步骤S102中子步骤S1023的另一种流程示意图。

图5为图2所示的步骤S102中子步骤S1024的流程示意图。

图6为图1所示的聚类学习方法中步骤S103的流程示意图。

图7示出了本申请实施例提供的测试步骤聚类方法的流程示意图。

图8示出了本申请实施例提供的聚类学习装置的方框示意图。

图9示出了本申请实施例提供的测试步骤聚类装置的方框示意图。

图10示出了本申请实施例提供的电子设备的方框示意图。

图标:10-电子设备;11-处理器;12-存储器;13-总线;100-聚类学习装置;110-第一获取模块;120-第一处理模块;130-第一聚类模块;140-执行模块;200-测试步骤聚类装置;210-第二获取模块;220-第二处理模块;230-第二聚类模块;240-比对模块。

具体实施方式

下面将结合本申请实施例中附图,对本申请实施例中的技术方案进行清楚、完整地描述。

自动化测试脚本包括操作行为、测试数据和预期断言,测试步骤即为自动化测试脚本中的操作行为,每个测试步骤需与一组操作序列对应,由于不同人表达相同含义时所使用的中文描述方式可能不同,所以可能会出现多个描述不同但对应的操作序列完全相同的情形,导致操作序列冗余,增加了编码工作量。因此,需要对测试步骤进行处理以减少冗余操作序列的产生,从而减少不必要的编码工作,提升整体自动化建设效率。

基于此,现有技术中通常采用以下两种方式对测试步骤进行处理:一是,使用文本的机械相似性进行聚类处理,即,采用局部敏感哈希算法进行两两短句的对比,以字符为单位计算相似性,若相似性达到设定阈值,则将这两个短句聚为一个测试步骤;二是,对测试步骤进行分词、数据清洗后进行去重处理,得到处理后的测试步骤列表。但是,这两种方式都只能处理少量的测试步骤,无法用于大量测试步骤的处理。

基于此,本申请实施例提出一种聚类学习方法、测试步骤聚类方法及相关装置,通过聚类学习得到训练后的处理模型和最终聚类树,最终聚类树的一个聚类簇对应一组预设的操作序列,这样在应用中就能利用训练后的处理模型和最终聚类树对原本的测试步骤实现聚类,从而可以减少冗余操作序列,降低了编码工作量。下面进行详细介绍。

请参照图1,图1示出了本申请实施例提供的聚类学习方法的流程示意图,该聚类学习方法可以包括以下步骤:

S101,获取训练文本,训练文本包括多个测试用例,测试用例包括多个测试步骤。

训练文本可以是根据测试人员收集到的所有系统用例生成的。系统用例是一个项目下某个功能(例如,下单)的需求文档,系统用例可以包括目标系统、主执行者、辅助执行者、路径步骤等内容。其中,目标系统是指实现这个功能的一项具体业务系统,例如,直播系统等。主执行者是指主要执行这个功能的对象,例如,用户、定时器等。

获得系统用例后,可以将系统用例解析为测试用例。通常,一个系统用例可以解析为多个测试用例,一个测试用例可以有多个测试步骤。由于一个系统用例与一个主执行者和一个目标系统关联,因此,该系统用例下的所有测试用例均与对应的主执行者和目标系统关联,各个测试用例中的测试步骤也均与对应的主执行者和目标系统关联。

S102,将训练文本输入预先构建的处理模型,获得每两个测试步骤之间的第一相似性度量值。

获得训练文本后,将训练文本输入预先构建的处理模型,处理模型对训练样本进行处理后,可以输出训练样本中测试步骤两两之间的第一相似性度量值。第一相似性度量值用于表征两两测试步骤之间相似性,相似性度量指标可以是欧拉距离、余弦相似度、RWMD(relaxed word mover’s distance,宽松词移距离)、WCD(word centroid distance,词心距离)等。

S103,根据每个第一相似性度量值对训练文本进行聚类,生成聚类树,其中,聚类树包括多个聚类簇,一个聚类簇包括多个测试步骤。

获得训练样本中每两个测试步骤之间的第一相似性度量值之后,可以根据得到的第一相似性度量值对训练文本中的各个测试步骤进行聚类,从而生成聚类树。聚类所采用的算法可以是自下而上的层次聚类算法、k均值聚类算法(k-means clusteringalgorithm)等。聚类树可以包括多个聚类簇,一个聚类簇可以包括多个测试步骤,同一聚类簇内的各个测试步骤的表达的含义相同。

S104,根据聚类树对处理模型进行参数更新,直至聚类树达到设定条件,得到训练后的处理模型和最终聚类树,其中,最终聚类树的一个聚类簇对应一组预设的操作序列。

生成聚类树之后,可以对聚类树进行测试核对,得到该聚类树的聚类正确率。如果聚类正确率未达到预期值,则对处理模型进行参数更新,以此迭代,直至得到的聚类正确率达到预期值,停止参数更新,得到训练后的处理模型和最终聚类树。最终聚类树即为最后一次迭代生成的聚类树,最终聚类树的聚类正确率达到预期值。由于每个第一相似性度量值均与主执行者、目标系统和测试步骤有关,因此,更新的参数可以包括主执行者的权重、目标系统的权重和测试步骤的权重。

同时,对于最终聚类树,可以设置最终聚类树的一个聚类簇对应一组预设的操作序列,即,同一聚类簇内的所有测试步骤均对应一组预设的操作序列,从而减少了冗余操作序列,降低了编码工作量。

下面对步骤S102进行详细介绍。

处理模型包括预处理模块、词嵌入模块、矢量化模块和相似性度量模块,请参照图2,步骤S102可以包括以下子步骤:

S1021,利用预处理模块对训练文本进行分词及过滤处理得到分词结果,分词结果包括训练文本中的每个词。

由于训练样本包括多个测试用例,测试用例包括多个测试步骤,测试步骤是一个一个的句子,而在中文里,句子是由一个个字串在一起形成的,字与字之间没有空格,因此,首先需要对训练样本进行分词处理,可以采用Jieba(结巴)库对训练样本进行分词处理,Jieba是一种分词算法,Jieba库是一个包含了通用测试用例单个词的小型词库,在处理完成后,每一个测试用例就变成了一组词的有序列表。对训练文本进行分词处理后,可以得到包括训练文本中所有词的通用语料库,用m表示通用语料库中所有词的数量,则通用语料库中的所有词就是{w

同时,为了避免小频词和不规则的表述引起的偏差,可以在分词处理后进行过滤处理,例如,将在通用语料库中只出现了一次的所有单词过滤掉、将一般的停止词即频繁出现但没有任何意义的词过滤掉等,最终得到分词结果。

S1022,将分词结果输入词嵌入模块得到词嵌入结果,词嵌入结果包括训练文本中每个词的词嵌入。

词嵌入是指高维实数向量,可以通过词嵌入来表示词,训练得好的词嵌入能够在向量空间中保留词的语义和语法含义。因此,在得到分词结果后,可以根据分词结果对词嵌入模块进行训练,并基于训练后的词嵌入模块得到词嵌入结果,词嵌入结果包括训练文本中每个词的词嵌入。

词嵌入模块可以是神经网络语言模型,例如,skip-gram神经网络模型。同时,将分词结果中的相邻词组对都用作词嵌入模块的输入,相邻词组对是指在句子或者短语中的位置处于设定窗口内的词组。例如,w=w

由于词嵌入模块的输入是分词结果中的相邻词组对,而测试步骤相对都比较短,并且每个测试用例中的测试步骤都是有序排列的,因此,为了获得分词结果中的相邻词组对,可以将训练文本中的每个测试步骤按照顺序串连起来以形成一个长句子,之后再根据该长句子得到相邻词组对。

同时,对词嵌入模块进行训练时,可以采用预训练的Word2vec模型的权重对词嵌入模块进行参数初始化,例如,将预训练的Word2vec模型的权重值作为skip-gram神经网络模型的权重初始值,这样可以提高训练效率。

为了进一步提高训练效率,可以设置词嵌入模块的训练截止条件为:词对似然值likelihood(i,j)=sigmoid(v

S1023,将词嵌入结果输入矢量化模块,得到每个测试步骤的空间矢量化表示。

得到词嵌入结果后,可以将词嵌入结果输入矢量化模块,矢量化模块基于词嵌入结果得到每个测试步骤的空间矢量化表示。具体内容请参照后文对子步骤S1023的详细介绍。

S1024,将每个测试步骤的空间矢量化表示输入相似性度量模块,得到每两个测试步骤之间的第一相似性度量值。

将每个测试步骤矢量化之后,就可以对测试步骤进行正常的相似性度量了,即,计算测试步骤两两之间的第一相似性度量值。相似性度量指标可以选择欧拉距离(Euc)或者余弦相似度(cos),欧拉距离和余弦相似度都是常见的计算方式,在此不再赘述。

由于计算得到的第一相似性度量值后续要用于测试步骤的聚类,因此,就聚类的精度来说,选择欧拉距离进行相似性度量会优于余弦相似度,通常是5到10倍。主要原因在于:余弦相似度度量的是两个向量的角度差异,这可能只反映了非常小的一部分向量信息,同时,余弦相似度的取值范围非常小,为[-1,1];相反,欧拉距离能够综合度量两个向量在各个维度的所有差异。

另外,相似性度量指标还可以选择RWMD和WCD,RWMD的主要理念是衡量将一个句子转换成另一个句子所需的最小努力。转换句子是通过策划字词级别的转换来完成的,而将一个字词转换成另外一个字词所需的努力可以用两个字词的词嵌入的欧拉距离来衡量,称之为词移距离。这种词移距离的直接计算是非常耗费硬件和时间成本的,但是,只计算词移距离的严谨下限则是快速且高效的,因此,相似性度量指标可以选择词移距离的宽松下限,即,RWMD和WCD。具体内容请参照后文对子步骤S1024的详细介绍。

下面对子步骤S1023进行详细介绍。

作为一种实施方式,矢量化模块得到的每个测试步骤的空间矢量化表示,可以是基于TF-IDF(term frequency–inverse document frequency,词频-逆文本频率)的矢量化。TF-IDF是一种统计方法,用于评估一个字词对于一个文件集或者一个语料库中的其中一份文件的重要程度。

基于TF-IDF的矢量化主要考虑两个领域:主执行者和目标系统。由于训练文本中的一个测试用例对应一个主执行者和一个目标系统,因此,主执行者领域表示主执行者不同且目标系统相同的所有测试用例,目标系统领域表示目标系统不同且主执行者相同的所有测试用例。

请参照图3,子步骤S1023可以包括以下子步骤:

S10231,计算训练文本的第一领域向量,其中,第一领域向量包括训练文本中的每个词在主执行者领域的向量,主执行者领域表示主执行者不同且目标系统相同。

主执行者领域是测试用例级别的领域,故基于训练文本中的测试用例计算第一领域向量。计算训练文本的第一领域向量的方式,可以包括以下步骤:

1、获取训练文本中的任意一个目标词。目标词可以用w

2、计算目标词在主执行者领域的第一词频,其中,第一词频为目标词在其对应的目标系统的所有测试用例中出现的频率。

第一词频可以用tf

3、利用公式

例如,上述的直播APP的主执行者为用户,则n

4、求第一词频和第一逆文本频率的乘积,得到目标词在主执行者领域的向量。

tf

5、遍历训练文本中的每个词,得到训练文本中的每个词在主执行者领域的向量,构成第一领域向量。

可以按照训练文本中各个词的顺序,从第一个词开始依次计算训练文本中的每个词在主执行者领域的向量,即,在执行完上述第4步后,可以判断目标词是否为最后一个词,若是,则停止执行;若否,则返回上述第1步,直至得到训练文本中的每个词在主执行者领域的向量。第一领域向量可以用[tf

S10232,计算训练文本的第二领域向量,其中,第二领域向量包括训练文本中的每个词在目标系统领域的向量,目标系统领域表示目标系统不同且主执行者相同。

目标系统领域是测试步骤级别的领域,故基于训练文本中的测试步骤计算第二领域向量。计算训练文本的第二领域向量的方式,可以包括以下步骤:

1、获取训练文本中的任意一个目标词。目标词可以用w

2、计算目标词在目标系统领域的第二词频,其中,第二词频为目标词在其所在的测试用例的所有测试步骤中出现的频率。

第二词频可以用tf

3、利用公式

4、求第二词频和第二逆文本频率的乘积,得到目标词在目标系统领域的向量。

tf

5、遍历训练文本中的每个词,得到训练文本中的每个词在目标系统领域的向量,构成第二领域向量。

可以按照训练文本中各个词的顺序,从第一个词开始依次计算训练文本中的每个词在目标系统领域的向量,即,在执行完上述第4步后,可以判断目标词是否为最后一个词,若是,则停止执行;若否,则返回上述第1步,直至得到训练文本中的每个词在目标系统领域的向量。第二领域向量可以用[tf

S10233,获取训练文本中的任意一个目标测试步骤。

S10234,基于第一领域向量,确定目标测试步骤在主执行者领域的第一向量。

第一向量可以包括目标测试步骤中的每个词在主执行者领域的向量,因此,可以从第一领域向量中获得目标测试步骤中的每个词在主执行者领域的向量,得到第一向量。

例如,目标测试步骤包括w

S10235,基于第二领域向量,确定目标测试步骤在目标系统领域的第二向量。

第二向量可以包括目标测试步骤中的每个词在目标系统领域的向量,因此,可以从第二领域向量中获得目标测试步骤中的每个词在目标系统领域的向量,得到第二向量。

例如,目标测试步骤包括w

S10236,根据第一向量和第二向量,得到目标测试步骤的空间矢量化表示。

可以利用公式

S10237,遍历训练文本中的每个测试步骤,得到每个测试步骤的空间矢量化表示。

可以按照训练文本中各个测试步骤的顺序,从第一个测试步骤开始依次计算训练文本中的每个测试步骤的空间矢量化表示,即,在执行完上述子步骤S10237后,可以判断目标测试步骤是否为最后一个步骤,若是,则停止执行;若否,则返回上述子步骤S10233,直至得到训练文本中每个测试步骤的空间矢量化表示。

同时,由于训练文本中主执行者领域和目标系统领域的词都是少量的,所以得到的空间矢量化表示是相对稀疏的,可以应用PCA(Principal Component Analysis,主成分分析技术)对空间矢量化表示进行降维。

作为另一种实施方式,矢量化模块得到的每个测试步骤的空间矢量化表示,还可以是词嵌入+IDF矢量化。由于IDF是一个很好的体现字词重要程度的指标,因此,可以将IDF和词嵌入结合,通过计算IDF和词嵌入的加权综合来得到空间矢量化表示。在这种情况下,IDF需要成为针对上下文的通用字词重要程度的通用度量标准,而不是针对主执行者或者目标系统领域的,即,对于主执行者或者目标系统领域的都有效。

请参照图4,子步骤S1023可以包括以下子步骤:

S1023a,基于训练文本,构建主执行者领域字词集和目标系统领域字词集,其中,主执行者领域表示主执行者不同且目标系统相同,目标系统领域表示目标系统不同且主执行者相同。

主执行者领域字词集和目标系统领域字词集,是包括训练文本中所有词的通用语料库的子集。主执行者领域字词集可以用S

S1023b,获取训练文本中的任意一个目标测试步骤。

S1023c,根据目标测试步骤中每个第一词的词嵌入,计算目标测试步骤在主执行者领域的第一向量,其中,第一词属于主执行者领域字词集。

在本实施例中,根据目标测试步骤中每个第一词的词嵌入,计算目标测试步骤在主执行者领域的第一向量的方式,可以包括:

首先,利用公式

然后,利用公式

S1023d,根据目标测试步骤中每个第二词的词嵌入,计算目标测试步骤在目标系统领域的第二向量,其中,第二词属于目标系统领域字词集。

在本实施例中,根据目标测试步骤中每个第二词的词嵌入,计算目标测试步骤在目标系统领域的第二向量的方式,可以包括:

首先,利用公式

然后,利用公式

S1023e,根据第一向量和第二向量,得到目标测试步骤的空间矢量化表示。

S1023f,遍历训练文本中的每个测试步骤,得到每个测试步骤的空间矢量化表示。

子步骤S1023e~S1023f与上述的子步骤S10236~S10237类似,在此不再赘述。

下面对子步骤S1024进行详细介绍。

请参照图5,子步骤S1024可以包括以下子步骤:

S10241,获取训练文本中的任意两个第一测试步骤和第二测试步骤。

S10242,计算主执行者领域第一测试步骤和第二测试步骤之间的第一距离。

在本实施例中,计算主执行者领域第一测试步骤和第二测试步骤之间的第一距离的方式,可以包括:

计算主执行者领域第一测试步骤和第二测试步骤之间的第一宽松词移距离;计算主执行者领域第一测试步骤和第二测试步骤之间的第一词心距离;将第一宽松词移距离和第一词心距离中的最大值作为第一距离。

第一宽松词移距离可以通过以下公式进行计算:

RWMD(x,x')=max(l

其中,RWMD(x,x')为第一宽松词移距离,x为第一测试步骤,x'为第二测试步骤,w

第一词心距离可以通过以下公式进行计算:

其中,WCD(x,x')为第二词心距离,x为第一测试步骤,x'为第二测试步骤,w

将第一宽松词移距离和第一词心距离中的最大值作为第一距离,即,d(x,x')=max(WCD(x,x'),RWMD(x,x')),d(x,x')表示第一距离。

S10243,计算目标系统领域第一测试步骤和第二测试步骤之间的第二距离。

在本实施例中,计算目标系统领域第一测试步骤和第二测试步骤之间的第二距离的方式,可以包括:

计算目标系统领域第一测试步骤和第二测试步骤之间的第二宽松词移距离;计算目标系统领域第一测试步骤和第二测试步骤之间的第二词心距离;将第二宽松词移距离和第二词心距离之间的最大值作为第二距离。

需要说明的是,第二距离的具体计算方式与子步骤S10242中第一距离的计算方式类似,只是在计算第二距离时,tf

S10244,对第一距离和第二距离进行加权求和,得到第一测试步骤和第二测试步骤之间的第一相似性度量值。

可以利用公式d=w

S10245,遍历训练文本中的每两个测试步骤,直至得到每两个测试步骤之间的第一相似性度量值。

可以理解为,上述子步骤S10241~S10244是一个循环的过程,直至得到每两个测试步骤之间的第一相似性度量值。

下面对步骤S103进行详细介绍。

请参照图6,步骤S103可以包括以下子步骤:

S1031,根据每个第一相似性度量值,采用自下而上的层次聚类算法对训练文本进行聚类,得到初始聚类树。

自下而上的层次聚类算法是由单一样本聚类开始,迭代地将两个最接近的聚类合并到一起,直至剩下唯一的一个聚类为止,所有的合并历史都会被记录下来。因此,可以构造出一棵带有合并顺序标记且能够表示这个自下而上层次聚类过程的二叉树,利用这个特点,自下而上的层次聚类算法的聚类结果易于调整,例如,分裂、合并、个体归属调整等,其中,分裂是指用两个子聚类替换掉原来的聚类,合并是指用父聚类替换掉两个子聚类,个体归属调整是指把一棵子树移至另一棵子树。

采用自下而上的层次聚类算法,将两个最接近的聚类合并到一起的标准是选择两个平均距离最小的聚类,并将这两个聚类合并为一个。其中,两个聚类的平均距离是指这两个聚类中提取出来的所有样本中两两样本之间的平均距离,如下式所示:

其中,d

在本实施例中,由于通过步骤S102已经计算出训练文本中测试步骤两两之间的第一相似性度量值,因此,可以根据训练文本中测试步骤两两之间的第一相似性度量值,采用自下而上的层次聚类算法,利用上述公式对训练文本进行聚类,上述公式中的文本即为测试步骤、距离即为第一相似性度量值。

S1032,采用K均值聚类算法对初始聚类树进行后置优化处理,得到聚类树。

采用自下而上的层次聚类算法对训练文本进行聚类可以得到初始聚类树,但是自下而上的层次聚类算法存在以下缺点:合并标准仅仅考虑了整体最优,没有考虑单个样本的最优,故反而影响了聚类的精度。例如,有一个很大的聚类和一个很小但特殊的聚类,大的聚类倾向于把这个很小但特殊的聚类直接吃掉,由于很大的聚类中包含了多个不同的样本,所以计算平均距离时,这个很大的聚类跟这个很小但特殊的聚类之间的平均距离,比这个很大的聚类跟其他特殊但不小的聚类之间的平均距离更小,而且,在这个很大的聚类吃掉这个很小但特殊的聚类之后,由于二者之间巨大的大小差异,这个很小但特殊的聚类对于这个很大的聚类的平均特征来说几乎没有产生任何的影响,仿佛就从未出现过一样。

为了减轻这种缺陷,可以使用K均值聚类算法对初始聚类树进行后置优化处理。K均值聚类算法一种很常用且成熟的聚类算法,其聚类过程大致如下:首先,从待聚类的数据集中随机选择样本生成k个初始均值;然后,在每一次迭代中,执行以下两个步骤:1、将每个样本分配给最接近的聚类;2、基于分配后的聚类计算每个聚类的均值;直到算法达到收敛后停止执行,即,所有的聚类归属不再有变化时停止执行。

在本实施例中,可以将自下而上的层次聚类算法得到的初始聚类树作为K均值聚类算法的初始聚类归属状态,之后K均值聚类算法一直进行迭代直至算法达到收敛后停止执行。并且,在迭代过程中,如果有些聚类中不存在任何样本,则将这些空聚类移除。

一方面,K均值聚类算法严格保证了每个样本都会被分配到最接近的聚类,否则最终将不能收敛,因此,K均值聚类算法带来了样本最优。而移除空聚类可以减少聚类的数量。另一方面,自下而上的层次聚类算法是一种初始化的技术,为K均值聚类算法提供了一个很好的起点,跟随机选择均值的初始化相比,自下而上的层次聚类算法确保了K均值聚类算法不会收敛到某些不合理的局部最优点。

同时,由于K均值聚类算法的后置优化处理破坏了初始聚类树的树状结构,因此,需要将K均值聚类算法在后置优化处理后的聚类结果重构为树状结构,从而得到聚类树。重构树状结构的过程可以是:

首先,在每一个聚类内部运行局部的自下而上的聚类,使得每个聚类都产生一棵自下而上的层次聚类二叉树,得到每一个聚类的局部层次树;

其次,运行全局的自下而上的聚类,在运行全局的聚类时,其中的每一个聚类都被视为一个单一的点,聚类的距离就是所有聚类样本之间的平均距离,最终把所有的聚类合并成单一的一个聚类,得到全局层次树;

最后,将每一个聚类的局部层次树串接到全局层次树中,需要注意的是,由于局部层次树只有叶子节点是聚类,而全局层次树的叶子节点和根节点都是聚类,因此,在串接时,直接将局部层次树串接到全局层次树的相应的叶子节点即可,最终形成的聚类树中,叶子节点就是单个样本,例如,本实施例中的测试步骤。

请参照图7,图7示出了本申请实施例提供的测试步骤聚类方法的流程示意图,该测试步骤聚类方法可以包括以下步骤:

S201,获取待处理文本,待处理文本包括多个待处理测试步骤。

待处理文本可以是任意一个需要进行聚类处理的测试文本,待处理文本可以包括多个待处理测试步骤,一个待处理测试步骤可以对应一个主执行者(例如,用户)和目标系统(例如,直播APP)。

S202,将待处理文本输入利用上述的聚类学习方法训练后的处理模型,得到每两个待处理测试步骤之间的第二相似性度量值。

获得待处理文本后,将待处理文本输入利用上述的聚类学习方法训练后的处理模型,训练后的处理模型对待处理文本进行处理后,可以输出待处理文本中待处理测试步骤两两之间的第二相似性度量值。

训练后的处理模型对待处理文本进行处理的过程可以是:首先,利用预处理模块对待处理文本进行分词及过滤处理,得到待处理文本中的每个词;然后,将待处理文本中的每个词输入词嵌入模块,得到待处理文本中每个词的词嵌入;再将待处理文本中每个词的词嵌入输入矢量化模块,得到每个待处理测试步骤的空间矢量化表示;最后,将每个待处理测试步骤的空间矢量化表示输入相似性度量模块,得到每两个待处理测试步骤之间的第二相似性度量值。

作为一种实施方式,将待处理文本中每个词的词嵌入输入矢量化模块,得到每个待处理测试步骤的空间矢量化表示时,可以是基于TF-IDF的矢量化,以任意一个待处理测试步骤为例,其处理过程如下:

首先,基于第一领域向量,即,子步骤S10231中得到的主执行者领域的向量[tf

然后,基于第二领域向量,即,子步骤S10232中得到的目标系统领域的向量[tf

最后,利用公式

作为另一种实施方式,将待处理文本中每个词的词嵌入输入矢量化模块,得到每个待处理测试步骤的空间矢量化表示时,可以是词嵌入+IDF矢量化,以任意一个待处理测试步骤为例,其处理过程如下:

首先,从该待处理测试步骤中确定出每个主执行者领域的词,该主执行者领域的词属于主执行者领域字词集,该主执行者领域字词集是子步骤S1023a得到的;以及,从该待处理测试步骤中确定出每个目标系统领域的词,该目标系统领域的词属于目标系统领域字词集,该目标系统领域字词集是子步骤S1023a得到的;

然后,根据该待处理测试步骤中每个主执行者领域的词的词嵌入,计算该待处理测试步骤在主执行者领域的向量;以及,根据该待处理测试步骤中每个目标系统领域的词的词嵌入,计算该待处理测试步骤在目标系统领域的向量;

最后,利用公式

S203,根据每个第二相似性度量值对待处理文本进行聚类,生成待处理聚类树,其中,待处理聚类树包括多个待处理聚类簇,一个待处理聚类簇包括多个待处理测试步骤。

步骤S202~S203的具体处理过程,与上述步骤S102~S103的处理过程类似,在此不再赘述。

S204,将待处理聚类树与最终聚类树进行比对,得到每个待处理聚类簇对应的操作序列,其中,最终聚类树是利用上述的聚类学习方法生成的。

由于利用上述的聚类学习方法生成的最终聚类树的一个聚类簇对应一组预设的操作序列,即,同一聚类簇内的所有测试步骤均对应一组预设的操作序列,因此,将待处理聚类数与最终聚类数进行比对,就能得到每个待处理聚类簇对应的操作序列。

与现有技术相比,本申请实施例具有以下有益效果:

首先,通过聚类学习得到的最终聚类树的一个聚类簇对应一组预设的操作序列,即同一聚类簇内的所有测试步骤均对应一组预设的操作序列,这样在应用中就能利用训练后的处理模型和最终聚类树对原本的测试步骤实现聚类,从而可以减少冗余操作序列,降低了编码工作量;

其次,对词嵌入模块进行训练时,可以采用预训练的Word2vec模型的权重对词嵌入模块进行参数初始化,从而可以提高训练效率。

请参照图8,图8示出了本申请实施例提供的聚类学习装置100的方框示意图。聚类学习装置100包括第一获取模块110、第一处理模块120、第一聚类模块130及执行模块140。

第一获取模块110,用于获取训练文本,训练文本包括多个测试用例,测试用例包括多个测试步骤。

第一处理模块120,用于将训练文本输入预先构建的处理模型,获得每两个测试步骤之间的第一相似性度量值。

第一聚类模块130,用于根据每个第一相似性度量值对训练文本进行聚类,生成聚类树,其中,聚类树包括多个聚类簇,一个聚类簇包括多个测试步骤。

执行模块140,用于根据聚类树对处理模型进行参数更新,直至聚类树达到设定条件,得到训练后的处理模型和最终聚类树,其中,最终聚类树的一个聚类簇对应一组预设的操作序列。

可选地,处理模型包括预处理模块、词嵌入模块、矢量化模块和相似性度量模块,第一处理模块120具体用于:

利用预处理模块对训练文本进行分词及过滤处理得到分词结果,分词结果包括训练文本中的每个词;将分词结果输入词嵌入模块得到词嵌入结果,词嵌入结果包括训练文本中每个词的词嵌入;将词嵌入结果输入矢量化模块,得到每个测试步骤的空间矢量化表示;将每个测试步骤的空间矢量化表示输入相似性度量模块,得到每两个测试步骤之间的第一相似性度量值。

可选地,第一处理模块120执行将词嵌入结果输入矢量化模块,得到每个测试步骤的空间矢量化表示的方式,包括:

计算训练文本的第一领域向量,其中,第一领域向量包括训练文本中的每个词在主执行者领域的向量,主执行者领域表示主执行者不同且目标系统相同;计算训练文本的第二领域向量,其中,第二领域向量包括训练文本中的每个词在目标系统领域的向量,目标系统领域表示目标系统不同且主执行者相同;获取训练文本中的任意一个目标测试步骤;基于第一领域向量,确定目标测试步骤在主执行者领域的第一向量;基于第二领域向量,确定目标测试步骤在目标系统领域的第二向量;根据第一向量和第二向量,得到目标测试步骤的空间矢量化表示。

可选地,第一处理模块120执行计算训练文本的第一领域向量的方式,包括:

获取训练文本中的任意一个目标词;计算目标词在主执行者领域的第一词频,其中,第一词频为目标词在其对应的目标系统的所有测试用例中出现的频率;利用公式

可选地,第一处理模块120执行计算训练文本的第二领域向量的方式,包括:

获取训练文本中的任意一个目标词;计算目标词在目标系统领域的第二词频,其中,第二词频为目标词在其所在的测试用例的所有测试步骤中出现的频率;利用公式

可选地,第一处理模块120执行基于第一领域向量,确定目标测试步骤在主执行者领域的第一向量的方式,包括:从第一领域向量中获得目标测试步骤中的每个词在主执行者领域的向量,得到第一向量。

可选地,第一处理模块120执行基于第二领域向量,确定目标测试步骤在目标系统领域的第二向量的方式,包括:从第二领域向量中获得目标测试步骤中的每个词在目标系统领域的向量,得到第二向量。

可选地,第一处理模块120执行根据第一向量和第二向量,得到目标测试步骤的空间矢量化表示的方式,包括:利用公式

可选地,第一处理模块120执行将词嵌入结果输入矢量化模块,得到每个测试步骤的空间矢量化表示的方式,包括:

基于训练文本,构建主执行者领域字词集和目标系统领域字词集,其中,主执行者领域表示主执行者不同且目标系统相同,目标系统领域表示目标系统不同且主执行者相同;获取训练文本中的任意一个目标测试步骤;根据目标测试步骤中每个第一词的词嵌入,计算目标测试步骤在主执行者领域的第一向量,其中,第一词属于主执行者领域字词集;根据目标测试步骤中每个第二词的词嵌入,计算目标测试步骤在目标系统领域的第二向量,其中,第二词属于目标系统领域字词集;根据第一向量和第二向量,得到目标测试步骤的空间矢量化表示;遍历训练文本中的每个测试步骤,得到每个测试步骤的空间矢量化表示。

可选地,根据目标测试步骤中每个第一词的词嵌入,计算目标测试步骤在主执行者领域的第一向量的方式,包括:

利用公式

可选地,第一处理模块120执行根据目标测试步骤中每个第二词的词嵌入,计算目标测试步骤在目标系统领域的第二向量的方式,包括:

利用公式

可选地,第一处理模块120执行将每个测试步骤的空间矢量化表示输入相似性度量模块,得到每两个测试步骤之间的第一相似性度量值的方式,包括:

获取训练文本中的任意两个第一测试步骤和第二测试步骤;计算主执行者领域第一测试步骤和第二测试步骤之间的第一距离;计算目标系统领域第一测试步骤和第二测试步骤之间的第二距离;对第一距离和第二距离进行加权求和,得到第一测试步骤和第二测试步骤之间的第一相似性度量值。

可选地,第一处理模块120执行计算主执行者领域第一测试步骤和第二测试步骤之间的第一距离的方式,包括:计算主执行者领域第一测试步骤和第二测试步骤之间的第一宽松词移距离;计算主执行者领域第一测试步骤和第二测试步骤之间的第一词心距离;将第一宽松词移距离和第一词心距离中的最大值作为第一距离。

可选地,第一处理模块120执行计算目标系统领域第一测试步骤和第二测试步骤之间的第二距离的方式,包括:计算目标系统领域第一测试步骤和第二测试步骤之间的第二宽松词移距离;计算目标系统领域第一测试步骤和第二测试步骤之间的第二词心距离;将第二宽松词移距离和第二词心距离之间的最大值作为第二距离。

可选地,第一聚类模块130具体用于:根据每个第一相似性度量值,采用自下而上的层次聚类算法对训练文本进行聚类,得到初始聚类树;采用K均值聚类算法对初始聚类树进行后置优化处理,得到聚类树。

请参照图9,图9示出了本申请实施例提供的测试步骤聚类装置200的方框示意图。测试步骤聚类装置200包括第二获取模块210、第二处理模块220、第二聚类模块230及比对模块240。

第二获取模块210,用于获取待处理文本,待处理文本包括多个待处理测试步骤。

第二处理模块220,用于将待处理文本输入利用上述的聚类学习方法训练后的处理模型,得到每两个待处理测试步骤之间的第二相似性度量值。

第二聚类模块230,用于根据每个第二相似性度量值对待处理文本进行聚类,生成待处理聚类树,其中,待处理聚类树包括多个待处理聚类簇,一个待处理聚类簇包括多个待处理测试步骤。

比对模块240,用于将待处理聚类树与最终聚类树进行比对,得到每个待处理聚类簇对应的操作序列,其中,最终聚类树是利用上述的聚类学习方法生成的。

所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的聚类学习装置100和测试步骤聚类装置200的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。

请参照图10,图10示出了本申请实施例提供的电子设备10的方框示意图。电子设备10包括处理器11、存储器12及总线13,处理器11和存储器12通过总线13连接。

存储器12用于存储程序,例如聚类学习装置100、或者测试步骤聚类装置200、或者聚类学习装置100和测试步骤聚类装置200,处理器11在接收到执行指令后,执行所述程序以实现发明上述实施例揭示的聚类学习方法或者测试步骤聚类方法。

电子设备10可以是通用计算机或特殊用途的计算机,两者都可以用于实现本申请实施例的聚类学习方法或者测试步骤聚类方法,也就是,聚类学习方法和测试步骤聚类方法的执行主体可以是同一个计算机,也可以是不同的计算机。本申请实施例尽管仅示出了一个计算机,但是为了方便起见,可以在多个类似平台上以分布式方式实现本申请实施例描述的功能,以均衡处理负载。

存储器12可能包括高速随机存取存储器(RAM:Random Access Memory),也可能还包括非易失存储器(non-volatile memory),例如至少一个磁盘存储器。

处理器11可能是一种集成电路芯片,具有信号的处理能力。在实现过程中,上述方法的各步骤可以通过处理器11中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器11可以是通用处理器,包括中央处理器(Central Processing Unit,简称CPU)、网络处理器(Network Processor,简称NP)等;还可以是数字信号处理器(DSP)、专用集成电路(ASIC)、现成可编程门阵列(FPGA)或者其它可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。

本申请实施例还提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器11执行时实现上述实施例揭示的聚类学习方法或者测试步骤聚类方法。

综上所述,本申请实施例提供的一种在进行聚类学习时,先将训练文本输入预先构建的处理模型,获得训练文本中每两个测试步骤之间的第一相似性度量值,再根据每个第一相似性度量值对训练文本进行聚类生成聚类树,之后根据聚类树对处理模型进行参数更新,直至聚类树达到设定条件,得到训练后的处理模型和最终聚类树,最终聚类树的一个聚类簇对应一组预设的操作序列,即同一聚类簇内的所有测试步骤均对应一组预设的操作序列,这样在应用中就能利用训练后的处理模型和最终聚类树对原本的测试步骤实现聚类,从而可以减少冗余操作序列,降低了编码工作量。

以上所述仅为本申请的优选实施例而已,并不用于限制本申请,对于本领域的技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。

相关技术
  • 聚类学习方法、测试步骤聚类方法及相关装置
  • 聚类方法、增量聚类方法及相关装置
技术分类

06120112793185