测试语料生成方法、装置、计算机设备和存储介质与流程

文档序号:18834891发布日期:2019-10-09 04:53阅读:154来源:国知局
测试语料生成方法、装置、计算机设备和存储介质与流程
本申请涉及自然语言处理
技术领域
,具体涉及一种测试语料生成方法、装置、计算机设备和存储介质。
背景技术
:随着互联网的快速发展,在互联网上有大量的信息需要处理,这些信息主要是文字方面的信息。这些信息需要经过自然语言处理,才能将人类语言处理成计算机可以读懂的信息。因此自然语言模型的研究是当前的互联网以及人工智能领域的研究热点。在建立自然语言模型的时候,需要大量的测试语料对模型进行训练,大量高质量的测试语料有利于测试工程师对自然语言模型的测试效率,并有利于测试工程师及时发现自然语言模型的漏洞和缺陷。目前通过人工进行测试语料的编辑,这样非常耗时耗力,而且无法覆盖测试范围的所有字段,目前还没有成熟的可以大批量自动生成测试语料的工具,测试工程师测试自然语言模型的测试效率大大受阻,导致模型漏洞和逻辑缺陷的发现不及时。技术实现要素:本申请的主要目的为提供一种测试语料生成方法、装置、计算机设备和存储介质,旨在解决现有技术中无法大批量自动生成测试语料的问题。本申请提出一种测试语料生成方法,包括:从语料模板库中获取至少一个语料模板;解析每条所述语料模板所包含的每个槽位以及每个所述槽位对应的槽位类型;从预设字典中分别查找与每个所述槽位类型对应的全部字段名;根据每个所述槽位类型对应的全部所述字段名,对每条所述语料模板所包含的每个所述槽位进行字段名全排列赋值,逐条生成第一语料,并将每条所述第一语料添加入第一语料集中,直至在所述第一语料集中,每条所述语料模板所包含的每个所述槽位包括了与每个所述槽位对应的槽位类型所对应的全部所述字段名;对所述第一语料集中的每条所述第一语料的相邻的字段名之间填充停用词,将填充停用词之后的每条所述第一语料作为第二语料,并将每条所述第二语料添加入第二语料集中;对所述第二语料集中的每条所述第二语料通过预设分析句法进行分析,分别判断每条所述第二语料是否符合语言习惯;将符合语言习惯的每条所述第二语料作为所述测试语料,并将每条所述测试语料添加入测试语料集中。进一步地,所述从语料模板库中获取至少一个语料模板的步骤前,包括:获取所述测试语料的使用场景;获取所述使用场景对应的初始字典,其中,所述初始字典内存储了所述使用场景下对应的至少一个字段名;按照预设规则判断每个所述字段名对应的槽位类型;在所述初始字典中,给每个所述字段名添加每个所述字段名对应的槽位类型的标签,生成所述预设字典。进一步地,所述在所述初始字典中,给每个所述字段名添加每个所述字段名对应的槽位类型的标签,生成所述预设字典的步骤后,包括:从所述预设字典中获取所述使用场景对应的全部槽位类型;从所述使用场景对应的全部槽位类型中选择至少一个槽位类型作为指定槽位类型;配置每个所述指定槽位类型对应的槽位,并将全部所述槽位进行排列组合,逐条建立所述使用场景对应的语料模板,并将每条所述语料模板添加入所述语料模板库中,其中,每条所述语料模板包括每个所述指定槽位类型对应的至少一个槽位。进一步地,所述初始字典中还存储了各所述字段名对应的数据类型,所述按照预设规则判断每个所述字段名对应的槽位类型的步骤,包括:分别判断每个所述字段名对应的数据类型,其中所述数据类型包括连续型数据和离散型数据;若为连续型数据,则判定所述字段名对应的槽位类型为第一槽位类型;若为离散型数据,则将所述字段名与预定义字段名列表进行匹配;若匹配成功,则判定所述字段名对应的槽位类型为预定义槽位类型,其中,所述预定义字段名列表中存储了所述预定义槽位类型对应的至少一个字段名。进一步地,所述对所述第一语料集中的每条所述第一语料的相邻的字段名之间填充停用词,将填充停用词之后的每条所述第一语料作为第二语料,并将每条所述第二语料添加入第二语料集中的步骤,包括:将每条所述第一语料输入至通过双向长短记忆网络模型预训练的停用词填充模型中,以在所述第一语料所包括的相邻的字段名之间填充停用词,生成所述第二语料;将每条所述第二语料添加入所述第二语料集中。进一步地,所述对所述第二语料集中的每条所述第二语料通过预设分析句法进行分析,分别判断每条所述第二语料是否符合语言习惯的步骤,包括:分别将每条所述第二语料输入至预训练的词性标注模型中,以标注每条所述第二语料中各个词汇的词性;分别通过依存句法分析每条所述第二语料中各个所述词汇之间的依存和支配关系,生成所述第二语料的依存句法树;分别根据每条所述第二语料中每个所述词汇的词性和所述依存句法树,判断每条所述第二语料是否符合预设句法规则;若是,则判定符合预设句法规则的所述第二语料符合语言习惯。进一步地,所述分别将每条所述第二语料输入至预训练的词性标注模型中,以标注每条所述第二语料中各个词汇的词性的步骤前,包括:获取训练语料,并根据所述训练语料中已标注的各个词汇的词性,构建训练集;将所述训练集通过隐马尔科夫模型进行训练,以得到所述词性标注模型。本申请还提出了一种测试语料生成装置,包括:模板获取单元,用于从语料模板库中获取至少一个语料模板;槽位解析单元,用于解析每条所述语料模板所包含的每个槽位以及每个所述槽位对应的槽位类型;字段名获取单元,用于从预设字典中分别查找与每个所述槽位类型对应的全部字段名;第一语料生成单元,用于根据每个所述槽位类型对应的全部所述字段名,对每条所述语料模板所包含的每个所述槽位进行字段名全排列赋值,逐条生成第一语料,并将每条所述第一语料添加入第一语料集中,直至在所述第一语料集中,每条所述语料模板所包含的每个所述槽位包括了与每个所述槽位对应的槽位类型所对应的全部所述字段名;第二语料生成单元,用于对所述第一语料集中的每条所述第一语料的相邻的字段名之间填充停用词,将填充停用词之后的每条所述第一语料作为第二语料,并将每条所述第二语料添加入第二语料集中;判断单元,用于对所述第二语料集中的每条所述第二语料通过预设分析句法进行分析,分别判断每条所述第二语料是否符合语言习惯;测试语料生成单元,用于将符合语言习惯的每条所述第二语料作为所述测试语料,并将每条所述测试语料添加入测试语料集中。本申请还提出了一种计算机设备,包括存储器和处理器,所述存储器中存储有计算机程序,所述处理器执行所述计算机程序时实现上述任一项所述方法的步骤。本申请还提出了一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述任一项所述方法的步骤。本申请的有益效果:本申请的测试语料生成方法、装置、计算机设备和存储介质,首先通过从语料模板库中获取至少一个语料模板;再解析每条所述语料模板所包含的每个槽位以及每个所述槽位对应的槽位类型;然后从预设字典中分别查找与每个所述槽位类型对应的全部字段名;再根据每个所述槽位类型对应的全部所述字段名,对每条所述语料模板所包含的每个所述槽位进行字段名全排列赋值,逐条生成第一语料,并将每条所述第一语料添加入第一语料集中,直至在所述第一语料集中,每条所述语料模板所包含的每个所述槽位包括了与每个所述槽位对应的槽位类型所对应的全部所述字段名,从而可以自动生成大批量的第一语料;接着对所述第一语料集中的每条所述第一语料的相邻的字段名之间填充停用词,将填充停用词之后的每条所述第一语料作为第二语料,并将每条所述第二语料添加入第二语料集中;再对所述第二语料集中的每条所述第二语料通过预设分析句法进行分析,分别判断每条所述第二语料是否符合语言习惯;最后将符合语言习惯的每条所述第二语料作为所述测试语料,并将每条所述测试语料添加入测试语料集中,最终得到的测试语料表达生动,符合人类的语言表达习惯,大幅提高了测试语料的生成速度和质量,从而有利于提高测试工程师对自然语言模型的测试效率,并有利于测试工程师及时发现自然语言模型的漏洞和缺陷。附图说明图1是本申请一实施例的测试语料生成方法的流程示意图;图2是本申请一实施例的测试语料生成装置的结构示意框图;图3是本申请一实施例的计算机设备的结构示意框图。本申请目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。具体实施方式为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。参照图1,本申请一实施例中提供了一种测试语料生成方法,包括:s1、从语料模板库中获取至少一个语料模板;s2、解析每条所述语料模板所包含的每个槽位以及每个所述槽位对应的槽位类型;s3、从预设字典中分别查找与每个所述槽位类型对应的全部字段名;s4、根据每个所述槽位类型对应的全部所述字段名,对每条所述语料模板所包含的每个所述槽位进行字段名全排列赋值,逐条生成第一语料,并将每条所述第一语料添加入第一语料集中,直至在所述第一语料集中,每条所述语料模板所包含的每个所述槽位包括了与每个所述槽位对应的槽位类型所对应的全部所述字段名;s5、对所述第一语料集中的每条所述第一语料的相邻的字段名之间填充停用词,将填充停用词之后的每条所述第一语料作为第二语料,并将每条所述第二语料添加入第二语料集中;s6、对所述第二语料集中的每条所述第二语料通过预设分析句法进行分析,分别判断每条所述第二语料是否符合语言习惯;s7、将符合语言习惯的每条所述第二语料作为所述测试语料,并将每条所述测试语料添加入测试语料集中。本实施例中,上述步骤s1中,上述语料模板库中存储了多个语料模板。上述语料模板为从语料模板中的多个语料模板中任意选取的语料模板。语料模板中包含多个依序排列的槽位(slot),槽位相当于语料模板中的变量,例如语料模板为,<槽位1><槽位2><槽位3>……<槽位n>,每个槽位都有对应的预设的槽位类型。在根据语料模板生成语料时,向每个槽位内填充的字段名需要与该槽位的槽位类型相匹配。上述步骤s2中,上述槽位类型根据测试语料的使用场景预先设定。例如,对于统计类的问句场景中,预先设定6种槽位类型:m、d、f、m、r、i,其中m类型指的是数据类型为连续型数值的字段名(例如年龄等),d类型指的是数据类型为离散型数值的字段名(例如性别等),f类型指的是d类型的字段名下的枚举值(例如男、女等),m类型指的是统计描述型的字段名(如平均、最大、最低、中位数等),r类型指的是计算指标(例如逾期率、不良率等),i类型指的是问句意图(例如计数、分布、主次分布、对比、占比、相关性等)。在统计类的问句场景中,语料模板中包括了多个依序排列的槽位,每个槽位对应的槽位类型是m、d、f、m、r、i中的任意一种。以步骤s1获取的语料模板是<f><f><d><i>为例,通过对语料模板进行解析,获取语料模板包含了四个槽位,四个槽位对应的槽位类型依序为f+f+d+i。上述步骤s3中,上述预设字典为与测试语料的使用场景相匹配的字典。在预设字典中存储了在对应的使用场景下有可能使用到的全部字段名,并存储了各个字段名对应的数据类型和槽位类型。例如表1所示的预设字典,其中关联存储了字段名、数据类型和槽位类型。表1预设字典字段名数据类型槽位类型客户号stringd性别stringd年龄doublem年龄段stringd婚姻状况stringd学历stringd上海stringf男性stringf女性stringf中位数stringm逾期率stringr分布stringi………………表1中string表示离散型数值,double表示连续型数值。以步骤s1获取的语料模板所包含的各个槽位分别对应的槽位类型依序为f+f+d+i为例,则从上述预设字典中查找f类型、d类型、i类型对应的全部字段名,例如表1中,f类型对应的全部字段名包括上海、男性、女性等,d类型对应的全部字段名包括客户号、性别、年龄段、婚姻状况、学历等,i类型对应的全部字段名包括分布等。在本申请另一实施例中,可以将不同槽位类型对应的字段名分别用不同的子分类字典存储,例如,对于问句意图(i类型)的槽位类型,单独设置预定义的意图字典,在意图字典中存储了问句意图对应的全部字段名,如计数、分布、主次分布、对比、占比、相关性等。其它槽位类型对应的字段名分别设置其它类型的子分类字典,与意图字典相似,本申请在此不一一列举。则根据步骤s1获取的槽位类型,从与槽位类型对应的子分类字典中进行查找,获取子分类字典中的全部字段名,即为与该槽位类型对应的全部字段名。上述步骤s4中,上述全排列赋值指的是对于每一个槽位穷举该槽位的槽位类型对应的字段名,依序生成对应的第一语料:例如对于指定语料模板<f><f><d><i>:对第一个<f>,穷举所有f类型对应的全部字段名;对第二个<f>,穷举所有f类型对应的全部字段名;对<d>,穷举所有d类型对应的全部字段名;对于<i>,穷举所有i类型对应的全部字段名。以指定语料模板<f><f><d><i>为例,将各槽位类型对应的字段名分别赋值给各槽位类型对应的槽位,即将f类型对应的字段名,如“上海”赋值给<f>,如“男性”赋值给<f>,将d类型对应的字段名,如“学历”赋值给<d>,将i类型对应的字段名,如“分布”赋值给<i>,则逐条生成第一语料包括“上海男性学历分布”、“上海女性学历分布”、“上海男性婚姻状况分布”、“男性男性学历分布”等,从而生成大批量的第一语料。上述第一语料集中存储了本步骤s4生成的全部第一语料。上述步骤s5中,上述停用词包括语气词、助词等,如“的”、“了”、“如何”、“怎么”、“吗”等。对上述第一语料的相邻的指定字段名之间进行停用词填充,使得生成的第二语料更加生动自然,符合人的语言表达习惯。例如对第一语料“上海男性学历分布”的相邻的指定字段名之间进行停用词填充后,获得“上海地区男性的学历如何分布”的第二语料。上述步骤s6~s7中,上述预设分析句法包括依存句法和词性分析,分析第二语料的各个字段名对应的词性特征(如名词、动词、形容词),以及分析各个字段名对应的句法成分(如主语、谓语、宾语、定语、状语、补语),根据预设句法规则判断第二语料是否符合语言习惯,例如预设句法规则中规定了主语对应的为名词,如果第二语料的主语为形容词,则判定第二语料不符合语言习惯。将符合语言习惯的第二语料作为测试语料;不符合语言习惯的第二语料弃用,不作为测试语料。本实施例中,通过上述测试语料生成方法,能够自动生成大批量的第一语料,再将第一语料通过停用词填充得到第二语料,然后通过预设分析句法进行分析,最终得到的测试语料表达生动,符合人类的语言表达习惯,大幅提高了测试语料的生成速度和质量,从而有利于提高测试工程师测试自然语言模型的效率,并有利于测试工程师及时发现自然语言模型的漏洞和缺陷。在一个实施例中,上述从语料模板库中获取至少一个语料模板的步骤s1前,包括:s01、获取所述测试语料的使用场景;s02、获取所述使用场景对应的初始字典,其中,所述初始字典内存储了所述使用场景下对应的至少一个字段名;s03、按照预设规则判断每个所述字段名对应的槽位类型;s04、在所述初始字典中,给每个所述字段名添加每个所述字段名对应的槽位类型的标签,生成所述预设字典。本实施例中,上述步骤s01~s02中,在不同的使用场景下,所需要使用到的测试语料不一样,对应的初始字典中所包括的字段名也不一样。初始字典中包括字段名和各字段名分别对应的数据类型。以使用场景是统计类的问句场景为例,如表2所列的初始字典,给出了统计类的问句场景下对应的字段名,表中string表示离散型数据,double表示连续型数据。表2初始字典上述步骤s03~s04中,以统计类的问句场景为例,槽位类型的分类规则为:数据类型为连续型数值的字段名(例如年龄等)为m类型,数据类型为离散型数值的字段名(例如性别等)为d类型,d类型的字段名下的枚举值(例如男、女等)为f类型,统计描述型的字段名(如平均、最大、最低、中位数等)为m类型,计算指标(例如逾期率、不良率等)为r类型,问句意图(例如计数、分布、主次分布、对比、占比、相关性等)为i类型。将按照预设规则判断得到的各个字段名对应的槽位类型添加入初始字典中,生成的预设字典中关联存储了字段名和字段名对应的槽位类型,如表1所列。在一个实施例中,上述在所述初始字典中,给每个所述字段名添加每个所述字段名对应的槽位类型的标签,生成所述预设字典的步骤s04后,包括:s05、从所述预设字典中获取所述使用场景对应的全部槽位类型;s06、从所述使用场景对应的全部槽位类型中选择至少一个槽位类型作为指定槽位类型;s07、配置每个所述指定槽位类型对应的槽位,并将全部所述槽位进行排列组合,逐条建立所述使用场景对应的语料模板,并将每条所述语料模板添加入所述语料模板库中,其中,每条所述语料模板包括每个所述指定槽位类型对应的至少一个槽位。本实施例中,上述步骤s05中,以上述使用场景是统计类的问句场景为例,则从如表1所列的预设字典中获取到的全部槽位类型为:m、d、f、m、r、i。上述步骤s06中,在生成一条语料模板时,并不一定需要用到上述使用场景对应的全部槽位类型,因此从全部槽位类型中选择至少一个槽位类型作为指定槽位类型,例如从m、d、f、m、r、i中选择3个槽位类型:f、d、i。上述步骤s07中,上述配置每个指定槽位类型对应的槽位,即对于各指定槽位类型,分别配置与各指定槽位类型对应的至少一个槽位,例如对f类型生成两个槽位,对d类型生成一个槽位,对i类型生成一个槽位。再将全部槽位进行排列组合,例如排列成<f><d><f><i>、<f><f><d><i>、<f><i><f><d>等,即逐条建立上述使用场景对应的语料模板。以上自动建立的各条语料模板被添加入语料模板库中。进一步地,还可以对以上自动建立的的语料模板再进行人工筛选,将不符合语言习惯的语料模板人工筛除。在一个实施例中,上述初始字典中还存储了各所述字段名对应的数据类型,上述按照预设规则判断每个所述字段名对应的槽位类型的步骤s03,包括:s031、分别判断每个所述字段名对应的数据类型,其中所述数据类型包括连续型数据和离散型数据;s032、若为连续型数据,则判定所述字段名对应的槽位类型为第一槽位类型;s033、若为离散型数据,则将所述字段名与预定义字段名列表进行匹配;若匹配成功,则判定所述字段名对应的槽位类型为预定义槽位类型,其中,所述预定义字段名列表中存储了所述预定义槽位类型对应的至少一个字段名。本实施例中,上述步骤s031~s032中,获取各字段名对应的数据类型,所述数据类型包括double(连续型数据)和string(离散型数据);将数据类型为double的字段名对应的槽位类型设为第一槽位类型,例如表1中的m类型。上述步骤s033中,若字段名对应的数据类型为string,则将字段名与预定义字段名列表进行匹配。其中,上述预定义字段名列表中存储了预定义槽位类型对应的至少一个字段名,例如预定义槽位类型为d类型,则预定义字段名列表中存储了d类型的至少一个字段名。将string类型的每个字段名分别与预定义字段名列表进行匹配,例如与d类型的预定义字段名列表进行匹配,如果匹配成功,则字段名对应的槽位类型为d类型;若匹配不成功,则定义为其它类型。进一步地,还可以根据具体的使用场景,预先定义不同类型字段名分别对应的预定义字段名列表,例如,分别预先设置预定义d类型字段名列表、预定义m类型字段名列表、预定义r类型字段名列表、预定义i类型字段名列表。则将数据类型为string的每个字段名分别与各预定义字段名列表进行匹配,根据所述匹配结果得到数据类型为string的各个字段名分别对应的槽位类型:具体地,若与预定义d类型字段名列表匹配成功,则判定该字段名对应的槽位类型为d类型;若与预定义m类型字段名列表匹配成功,则判定该字段名对应的槽位类型为m类型;若与预定义r类型字段名列表匹配成功,则判定该字段名对应的槽位类型为r类型;若与预定义i类型字段名列表匹配成功,则判定该字段名对应的槽位类型为i类型;若未匹配成功,则将该字段名对应的槽位类型设为f类型。在一个实施例中,上述对所述第一语料集中的每条所述第一语料的相邻的字段名之间填充停用词,将填充停用词之后的每条所述第一语料作为第二语料,并将每条所述第二语料添加入第二语料集中的步骤s5,包括:s501、将每条所述第一语料输入至通过双向长短记忆网络模型预训练的停用词填充模型中,以在所述第一语料所包括的相邻的字段名之间填充停用词,生成所述第二语料;s502、将每条所述第二语料添加入所述第二语料集中。上述步骤s501~s502中,上述停用词包括语气词、助词等,如“的”、“了”、“如何”、“怎么”、“吗”等。通过上述停用词填充模型,对上述第一语料进行停用词填充,例如输入的第一语料为“上海男性学历分布”,输出的第二语料为“上海地区男性的学历如何分布”,使得生成的第二语料更加生动自然,符合人的表达习惯。以上生成的第二语料存储于第二语料集中。具体地,上述停用词填充模型的训练步骤包括:首先获取第一训练语料,并根据上述第一训练语料包括的字段名和停用词,构建第一训练集;通过收集自然语言模型的历史语料或者人工编辑获取第一训练语料,将第一训练语料进行语料标注,标注训练语料中的字段名以及相邻字段名之间的停用词,从而构建用于停用词填充模型训练的第一训练集。再将上述第一训练集通过双向长短记忆网络模型进行训练,以得到上述停用词填充模型。上述双向长短时记忆-条件随机场模型的网络输入为仅包含字段名的语料,输出结果为在相邻字段名之间填充了停用词的语料。长短时记忆模型是一种特殊类型的rnn(循环神经网络),能够学习长期的依赖关系。双向循环神经网络(bi-lstm)的基本思想是提出每一个训练序列向前和向后分别是两个lstm(长短时记忆模型),而且这两个都连接着一个输出层。这个结构提供给输出层输入序列中每一个点的完整的过去和未来的上下文信息。将仅包含字段名的语料输入双向长短记忆网络模型中,同时经过向前推算以及向后推算后输出连接至输出层,提供给输出层包含字段名的语料中每一个字的完整的过去和未来的上下文信息,将上下文信息结合条件随机场,对训练语料的相邻的字段名之间填充停用词,输出在相邻字段名之间填充了停用词的语料。在一个实施例中,上述对所述第二语料集中的每条所述第二语料通过预设分析句法进行分析,分别判断每条所述第二语料是否符合语言习惯的步骤s6,包括:s601、分别将每条所述第二语料输入至预训练的词性标注模型中,以标注每条所述第二语料中各个词汇的词性;s602、分别通过依存句法分析每条所述第二语料中各个所述词汇之间的依存和支配关系,生成所述第二语料的依存句法树;s603、分别根据每条所述第二语料中每个所述词汇的词性和所述依存句法树,判断每条所述第二语料是否符合预设句法规则;s604、若是,则判定符合预设句法规则的所述第二语料符合语言习惯。本实施例中,上述步骤s601中,通过上述词性标注模型,对第二语料中的各个词汇的词性进行标注(如名词n、动词v、形容词a、组词u等),例如输入的第二语料为“上海地区男性的学历如何分布”,输出的词性标注结果为“上海(n)地区(n)男性(n)的(u)学历(n)如何(a)分布(v)”。对上述第二语料进行词性标注也是步骤s502的句法分析的预处理步骤。上述步骤s602中,上述依存句法用一条依存弧直接连接两个词汇,分析后的第二语料形成一棵依存句法树,依存句法树描述出各个词汇之间的依存关系,在依存语法中词汇与词汇之间通过依存和支配发生联系,核心词支配从属词,从属词依存于核心词。上述步骤s603~s604中,分析各个字段名对应的句法成分(如主语、谓语、宾语、定语、状语、补语),以及通过依存句法对第二语料进行句法分析,分析第二语料的各个字段名对应的词性特征(如名词、动词、形容词),根据预设句法规则判断第二语料是否符合语言习惯,例如预设句法规则中规定了主语对应的为名词,如果第二语料的主语为形容词,则判定第二语料不符合语言习惯。不符合语言习惯的第二语料则弃用,不作为测试语料。经过依存句法分析,符合语言习惯的第二语料则被作为测试语料。在一个实施例中,上述分别将每条所述第二语料输入至预训练的词性标注模型中,以标注每条所述第二语料中各个词汇的词性的步骤s601前,包括:s605、获取训练语料,并根据所述训练语料中已标注的各个词汇的词性,构建训练集;s606、将所述训练集通过隐马尔科夫模型进行训练,以得到所述词性标注模型。本实施例中,上述步骤s605中,通过收集自然语言模型的历史语料或者人工编辑获取上述训练语料,对训练语料进行分词,获得分词结果,再对分词结果进行词性标注,得到已进行词性标注的训练语料,从而构建用于词性标注模型训练的训练集。上述步骤s606中,隐马尔科夫(hiddenmarkovmodel)模型是一种基于概率统计的模型,用来描述一个含有隐含未知参数的马尔可夫过程,广泛应用于文字识别、自然语言处理等领域。首先根据训练集进行词统计,给定各个词汇被标记为指定词性的概率,完成隐马尔科夫模型的各个模型参数的统计;然后按照隐马尔可夫模型的前向后向算法进行训练,得到上述词性标注模型。通过词性标注模型对第二语料中的各个词汇的词性进行标注。参照图2,本申请一实施例中提供了一种测试语料生成装置,包括:模板获取单元10,用于从语料模板库中获取至少一个语料模板;槽位解析单元20,用于解析每条所述语料模板所包含的每个槽位以及每个所述槽位对应的槽位类型;字段名获取单元30,用于从预设字典中分别查找与每个所述槽位类型对应的全部字段名;第一语料生成单元40,用于根据每个所述槽位类型对应的全部所述字段名,对每条所述语料模板所包含的每个所述槽位进行字段名全排列赋值,逐条生成第一语料,并将每条所述第一语料添加入第一语料集中,直至在所述第一语料集中,每条所述语料模板所包含的每个所述槽位包括了与每个所述槽位对应的槽位类型所对应的全部所述字段名;第二语料生成单元50,用于对所述第一语料集中的每条所述第一语料的相邻的字段名之间填充停用词,将填充停用词之后的每条所述第一语料作为第二语料,并将每条所述第二语料添加入第二语料集中;判断单元60,用于对所述第二语料集中的每条所述第二语料通过预设分析句法进行分析,分别判断每条所述第二语料是否符合语言习惯;测试语料生成单元70,用于将符合语言习惯的每条所述第二语料作为所述测试语料,并将每条所述测试语料添加入测试语料集中。本实施例中,上述模板获取单元10中,上述语料模板库中存储了多个语料模板。上述语料模板为从语料模板中的多个语料模板中任意选取的语料模板。语料模板中包含多个依序排列的槽位(slot),槽位相当于语料模板中的变量,例如语料模板为,<槽位1><槽位2><槽位3>……<槽位n>,每个槽位都有对应的预设的槽位类型。在根据语料模板生成语料时,向每个槽位内填充的字段名需要与该槽位的槽位类型相匹配。上述槽位解析单元20中,上述槽位类型根据测试语料的使用场景预先设定。例如,对于统计类的问句场景中,预先设定6种槽位类型:m、d、f、m、r、i,其中m类型指的是数据类型为连续型数值的字段名(例如年龄等),d类型指的是数据类型为离散型数值的字段名(例如性别等),f类型指的是d类型的字段名下的枚举值(例如男、女等),m类型指的是统计描述型的字段名(如平均、最大、最低、中位数等),r类型指的是计算指标(例如逾期率、不良率等),i类型指的是问句意图(例如计数、分布、主次分布、对比、占比、相关性等)。在统计类的问句场景中,语料模板中包括了多个依序排列的槽位,每个槽位对应的槽位类型是m、d、f、m、r、i中的任意一种。以模板获取单元10获取的语料模板是<f><f><d><i>为例,通过对语料模板进行解析,获取语料模板包含了四个槽位,四个槽位对应的槽位类型依序为f+f+d+i。上述字段名获取单元30中,上述预设字典为与测试语料的使用场景相匹配的字典。在预设字典中存储了在对应的使用场景下有可能使用到的全部字段名,并存储了各个字段名对应的数据类型和槽位类型。例如表1所示的预设字典,其中关联存储了字段名、数据类型和槽位类型。表1预设字典字段名数据类型槽位类型客户号stringd性别stringd年龄doublem年龄段stringd婚姻状况stringd学历stringd上海stringf男性stringf女性stringf中位数stringm逾期率stringr分布stringi………………表1中string表示离散型数值,double表示连续型数值。以步骤s1获取的语料模板所包含的各个槽位分别对应的槽位类型依序为f+f+d+i为例,则从上述预设字典中查找f类型、d类型、i类型对应的全部字段名,例如表1中,f类型对应的全部字段名包括上海、男性、女性等,d类型对应的全部字段名包括客户号、性别、年龄段、婚姻状况、学历等,i类型对应的全部字段名包括分布等。在本申请另一实施例中,可以将不同槽位类型对应的字段名分别用不同的子分类字典存储,例如,对于问句意图(i类型)的槽位类型,单独设置预定义的意图字典,在意图字典中存储了问句意图对应的全部字段名,如计数、分布、主次分布、对比、占比、相关性等。其它槽位类型对应的字段名分别设置其它类型的子分类字典,与意图字典相似,本申请在此不一一列举。则根据模板获取单元10获取的槽位类型,从与槽位类型对应的子分类字典中进行查找,获取子分类字典中的全部字段名,即为与该槽位类型对应的全部字段名。上述第一语料生成单元40中,上述全排列赋值指的是对于每一个槽位穷举该槽位的槽位类型对应的字段名,依序生成对应的第一语料:例如对于指定语料模板<f><f><d><i>:对第一个<f>,穷举所有f类型对应的全部字段名;对第二个<f>,穷举所有f类型对应的全部字段名;对<d>,穷举所有d类型对应的全部字段名;对于<i>,穷举所有i类型对应的全部字段名。以指定语料模板<f><f><d><i>为例,将各槽位类型对应的字段名分别赋值给各槽位类型对应的槽位,即将f类型对应的字段名,如“上海”赋值给<f>,如“男性”赋值给<f>,将d类型对应的字段名,如“学历”赋值给<d>,将i类型对应的字段名,如“分布”赋值给<i>,则逐条生成第一语料包括“上海男性学历分布”、“上海女性学历分布”、“上海男性婚姻状况分布”、“男性男性学历分布”等,从而生成大批量的第一语料。上述第一语料集中存储了字段名获取单元30生成的全部第一语料。上述第二语料生成单元50中,上述停用词包括语气词、助词等,如“的”、“了”、“如何”、“怎么”、“吗”等。对上述第一语料的相邻的指定字段名之间进行停用词填充,使得生成的第二语料更加生动自然,符合人的语言表达习惯。例如对第一语料“上海男性学历分布”的相邻的指定字段名之间进行停用词填充后,获得“上海地区男性的学历如何分布”的第二语料。上述判断单元60和测试语料生成单元70中,上述预设分析句法包括依存句法和词性分析,分析第二语料的各个字段名对应的词性特征(如名词、动词、形容词),以及分析各个字段名对应的句法成分(如主语、谓语、宾语、定语、状语、补语),根据预设句法规则判断第二语料是否符合语言习惯,例如预设句法规则中规定了主语对应的为名词,如果第二语料的主语为形容词,则判定第二语料不符合语言习惯。将符合语言习惯的第二语料作为测试语料;不符合语言习惯的第二语料弃用,不作为测试语料。本实施例中,通过上述测试语料生成装置,能够自动生成大批量的第一语料,再将第一语料通过停用词填充得到第二语料,然后通过预设分析句法进行分析,最终得到的测试语料表达生动,符合人类的语言表达习惯,大幅提高了测试语料的生成速度和质量,从而有利于提高测试工程师测试自然语言模型的效率,并有利于测试工程师及时发现自然语言模型的漏洞和缺陷。在一个实施例中,上述测试语料生成装置,包括:使用场景获取单元,用于获取所述测试语料的使用场景;初始字典获取单元,用于获取所述使用场景对应的初始字典,其中,所述初始字典内存储了所述使用场景下对应的至少一个字段名;槽位类型判断单元,用于按照预设规则判断每个所述字段名对应的槽位类型;预设字典生成单元,用于在所述初始字典中,给每个所述字段名添加每个所述字段名对应的槽位类型的标签,生成所述预设字典。本实施例中,上述使用场景获取单元和初始字典获取单元中,在不同的使用场景下,所需要使用到的测试语料不一样,对应的初始字典中所包括的字段名也不一样。初始字典中包括字段名和各字段名分别对应的数据类型。以使用场景是统计类的问句场景为例,如表2所列的初始字典,给出了统计类的问句场景下对应的字段名,表中string表示离散型数据,double表示连续型数据。表2初始字典上述槽位类型判断单元和预设字典生成单元中,以统计类的问句场景为例,槽位类型的分类规则为:数据类型为连续型数值的字段名(例如年龄等)为m类型,数据类型为离散型数值的字段名(例如性别等)为d类型,d类型的字段名下的枚举值(例如男、女等)为f类型,统计描述型的字段名(如平均、最大、最低、中位数等)为m类型,计算指标(例如逾期率、不良率等)为r类型,问句意图(例如计数、分布、主次分布、对比、占比、相关性等)为i类型。将按照预设规则判断得到的各个字段名对应的槽位类型添加入初始字典中,生成的预设字典中关联存储了字段名和字段名对应的槽位类型,如表1所列。在一个实施例中,上述测试语料生成装置,还包括:槽位类型获取单元,用于从所述预设字典中获取所述使用场景对应的全部槽位类型;槽位类型选择单元,用于从所述使用场景对应的全部槽位类型中选择至少一个槽位类型作为指定槽位类型;语料模板建立单元,用于配置每个所述指定槽位类型对应的槽位,并将全部所述槽位进行排列组合,逐条建立所述使用场景对应的语料模板,并将每条所述语料模板添加入所述语料模板库中,其中,每条所述语料模板包括每个所述指定槽位类型对应的至少一个槽位。本实施例中,上述槽位类型获取单元中,以上述使用场景是统计类的问句场景为例,则从如表1所列的预设字典中获取到的全部槽位类型为:m、d、f、m、r、i。上述槽位类型选择单元中,在生成一条语料模板时,并不一定需要用到上述使用场景对应的全部槽位类型,因此从全部槽位类型中选择至少一个槽位类型作为指定槽位类型,例如从m、d、f、m、r、i中选择3个槽位类型:f、d、i。上述语料模板建立单元中,上述配置每个指定槽位类型对应的槽位,即对于各指定槽位类型,分别配置与各指定槽位类型对应的至少一个槽位,例如对f类型生成两个槽位,对d类型生成一个槽位,对i类型生成一个槽位。再将全部槽位进行排列组合,例如排列成<f><d><f><i>、<f><f><d><i>、<f><i><f><d>等,即逐条建立上述使用场景对应的语料模板。以上自动建立的各条语料模板被添加入语料模板库中。进一步地,还可以对以上自动建立的的语料模板再进行人工筛选,将不符合语言习惯的语料模板人工筛除。在一个实施例中,上述初始字典中还存储了各所述字段名对应的数据类型,上述槽位类型判断单元,包括:数据类型判断子单元,用于分别判断每个所述字段名对应的数据类型,其中所述数据类型包括连续型数据和离散型数据;第一判定判断子单元,用于若为连续型数据,则判定所述字段名对应的槽位类型为第一槽位类型;第二判定判断子单元,用于若为离散型数据,则将所述字段名与预定义字段名列表进行匹配;若匹配成功,则判定所述字段名对应的槽位类型为预定义槽位类型,其中,所述预定义字段名列表中存储了所述预定义槽位类型对应的至少一个字段名。本实施例中,上述数据类型判断子单元和第一判定判断子单元中,获取各字段名对应的数据类型,所述数据类型包括double(连续型数据)和string(离散型数据);将数据类型为double的字段名对应的槽位类型设为第一槽位类型,例如表1中的m类型。上述第二判定判断子单元中,若字段名对应的数据类型为string,则将字段名与预定义字段名列表进行匹配。其中,上述预定义字段名列表中存储了预定义槽位类型对应的至少一个字段名,例如预定义槽位类型为d类型,则预定义字段名列表中存储了d类型的至少一个字段名。将string类型的每个字段名分别与预定义字段名列表进行匹配,例如与d类型的预定义字段名列表进行匹配,如果匹配成功,则字段名对应的槽位类型为d类型;若匹配不成功,则定义为其它类型。进一步地,还可以根据具体的使用场景,预先定义不同类型字段名分别对应的预定义字段名列表,例如,分别预先设置预定义d类型字段名列表、预定义m类型字段名列表、预定义r类型字段名列表、预定义i类型字段名列表。则将数据类型为string的每个字段名分别与各预定义字段名列表进行匹配,根据所述匹配结果得到数据类型为string的各个字段名分别对应的槽位类型:具体地,若与预定义d类型字段名列表匹配成功,则判定该字段名对应的槽位类型为d类型;若与预定义m类型字段名列表匹配成功,则判定该字段名对应的槽位类型为m类型;若与预定义r类型字段名列表匹配成功,则判定该字段名对应的槽位类型为r类型;若与预定义i类型字段名列表匹配成功,则判定该字段名对应的槽位类型为i类型;若未匹配成功,则将该字段名对应的槽位类型设为f类型。在一个实施例中,上述第二语料生成单元50,包括:语料生成子单元,用于将每条所述第一语料输入至通过双向长短记忆网络模型预训练的停用词填充模型中,以在所述第一语料所包括的相邻的字段名之间填充停用词,生成所述第二语料;语料集生成子单元,用于将每条所述第二语料添加入所述第二语料集中。上述步骤语料生成子单元和语料集生成子单元中,上述停用词包括语气词、助词等,如“的”、“了”、“如何”、“怎么”、“吗”等。通过上述停用词填充模型,对上述第一语料进行停用词填充,例如输入的第一语料为“上海男性学历分布”,输出的第二语料为“上海地区男性的学历如何分布”,使得生成的第二语料更加生动自然,符合人的表达习惯。以上生成的第二语料存储于第二语料集中。具体地,上述语料生成子单元中,停用词填充模型的训练步骤包括:首先获取第一训练语料,并根据上述第一训练语料包括的字段名和停用词,构建第一训练集;通过收集自然语言模型的历史语料或者人工编辑获取第一训练语料,将第一训练语料进行语料标注,标注训练语料中的字段名以及相邻字段名之间的停用词,从而构建用于停用词填充模型训练的第一训练集。再将上述第一训练集通过双向长短记忆网络模型进行训练,以得到上述停用词填充模型。上述双向长短时记忆-条件随机场模型的网络输入为仅包含字段名的语料,输出结果为在相邻字段名之间填充了停用词的语料。长短时记忆模型是一种特殊类型的rnn(循环神经网络),能够学习长期的依赖关系。双向循环神经网络(bi-lstm)的基本思想是提出每一个训练序列向前和向后分别是两个lstm(长短时记忆模型),而且这两个都连接着一个输出层。这个结构提供给输出层输入序列中每一个点的完整的过去和未来的上下文信息。将仅包含字段名的语料输入双向长短记忆网络模型中,同时经过向前推算以及向后推算后输出连接至输出层,提供给输出层包含字段名的语料中每一个字的完整的过去和未来的上下文信息,将上下文信息结合条件随机场,对训练语料的相邻的字段名之间填充停用词,输出在相邻字段名之间填充了停用词的语料。在一个实施例中,上述判断单元60,包括:词性标注子单元,用于分别将每条所述第二语料输入至预训练的词性标注模型中,以标注每条所述第二语料中各个词汇的词性;句法树生成子单元,用于分别通过依存句法分析每条所述第二语料中各个所述词汇之间的依存和支配关系,生成所述第二语料的依存句法树;判断子单元,用于分别根据每条所述第二语料中每个所述词汇的词性和所述依存句法树,判断每条所述第二语料是否符合预设句法规则;第三判定子单元,用于若符合预设句法规则,则判定符合预设句法规则的所述第二语料符合语言习惯。本实施例中,上述词性标注子单元中,通过上述词性标注模型,对第二语料中的各个词汇的词性进行标注(如名词n、动词v、形容词a、组词u等),例如输入的第二语料为“上海地区男性的学历如何分布”,输出的词性标注结果为“上海(n)地区(n)男性(n)的(u)学历(n)如何(a)分布(v)”。对上述第二语料进行词性标注也是步骤s502的句法分析的预处理步骤。上述句法树生成子单元中,上述依存句法用一条依存弧直接连接两个词汇,分析后的第二语料形成一棵依存句法树,依存句法树描述出各个词汇之间的依存关系,在依存语法中词汇与词汇之间通过依存和支配发生联系,核心词支配从属词,从属词依存于核心词。上述判断子单元和第三判定子单元中,分析各个字段名对应的句法成分(如主语、谓语、宾语、定语、状语、补语),以及通过依存句法对第二语料进行句法分析,分析第二语料的各个字段名对应的词性特征(如名词、动词、形容词),根据预设句法规则判断第二语料是否符合语言习惯,例如预设句法规则中规定了主语对应的为名词,如果第二语料的主语为形容词,则判定第二语料不符合语言习惯。不符合语言习惯的第二语料则弃用,不作为测试语料。经过依存句法分析,符合语言习惯的第二语料则被作为测试语料。在一个实施例中,上述判断单元60,还包括:训练集获取子单元,用于获取训练语料,并根据所述训练语料中已标注的各个词汇的词性,构建训练集;模型训练子单元,用于将所述训练集通过隐马尔科夫模型进行训练,以得到所述词性标注模型。本实施例中,上述训练集获取子单元中,通过收集自然语言模型的历史语料或者人工编辑获取上述训练语料,对训练语料进行分词,获得分词结果,再对分词结果进行词性标注,得到已进行词性标注的训练语料,从而构建用于词性标注模型训练的训练集。上述模型训练子单元中,隐马尔科夫(hiddenmarkovmodel)模型是一种基于概率统计的模型,用来描述一个含有隐含未知参数的马尔可夫过程,广泛应用于文字识别、自然语言处理等领域。首先根据训练集进行词统计,给定各个词汇被标记为指定词性的概率,完成隐马尔科夫模型的各个模型参数的统计;然后按照隐马尔可夫模型的前向后向算法进行训练,得到上述词性标注模型。通过词性标注模型对第二语料中的各个词汇的词性进行标注。参照图3,本申请实施例中还提供一种计算机设备,该计算机设备可以是服务器,其内部结构可以如图3所示。该计算机设备包括通过系统总线连接的处理器、存储器、网络接口和数据库。其中,该计算机设计的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统、计算机程序和数据库。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的数据库用于存储语料等数据。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种测试语料生成方法。上述处理器执行上述测试语料生成方法的步骤:从语料模板库中获取至少一个语料模板;解析每条所述语料模板所包含的每个槽位以及每个所述槽位对应的槽位类型;从预设字典中分别查找与每个所述槽位类型对应的全部字段名;根据每个所述槽位类型对应的全部所述字段名,对每条所述语料模板所包含的每个所述槽位进行字段名全排列赋值,逐条生成第一语料,并将每条所述第一语料添加入第一语料集中,直至在所述第一语料集中,每条所述语料模板所包含的每个所述槽位包括了与每个所述槽位对应的槽位类型所对应的全部所述字段名;对所述第一语料集中的每条所述第一语料的相邻的字段名之间填充停用词,将填充停用词之后的每条所述第一语料作为第二语料,并将每条所述第二语料添加入第二语料集中;对所述第二语料集中的每条所述第二语料通过预设分析句法进行分析,分别判断每条所述第二语料是否符合语言习惯;将符合语言习惯的每条所述第二语料作为所述测试语料,并将每条所述测试语料添加入测试语料集中。在一实施例中,上述处理器从语料模板库中获取至少一个语料模板的步骤前,包括:获取所述测试语料的使用场景;获取所述使用场景对应的初始字典,其中,所述初始字典内存储了所述使用场景下对应的至少一个字段名;按照预设规则判断每个所述字段名对应的槽位类型;在所述初始字典中,给每个所述字段名添加每个所述字段名对应的槽位类型的标签,生成所述预设字典。在一实施例中,上述处理器在所述初始字典中,给每个所述字段名添加每个所述字段名对应的槽位类型的标签,生成所述预设字典的步骤后,包括:从所述预设字典中获取所述使用场景对应的全部槽位类型;从所述使用场景对应的全部槽位类型中选择至少一个槽位类型作为指定槽位类型;配置每个所述指定槽位类型对应的槽位,并将全部所述槽位进行排列组合,逐条建立所述使用场景对应的语料模板,并将每条所述语料模板添加入所述语料模板库中,其中,每条所述语料模板包括每个所述指定槽位类型对应的至少一个槽位。在一实施例中,上述初始字典中还存储了各所述字段名对应的数据类型,上述处理器按照预设规则判断每个所述字段名对应的槽位类型的步骤,包括:分别判断每个所述字段名对应的数据类型,其中所述数据类型包括连续型数据和离散型数据;若为连续型数据,则判定所述字段名对应的槽位类型为第一槽位类型;若为离散型数据,则将所述字段名与预定义字段名列表进行匹配;若匹配成功,则判定所述字段名对应的槽位类型为预定义槽位类型,其中,所述预定义字段名列表中存储了所述预定义槽位类型对应的至少一个字段名。在一实施例中,上述处理器对所述第一语料集中的每条所述第一语料的相邻的字段名之间填充停用词,将填充停用词之后的每条所述第一语料作为第二语料,并将每条所述第二语料添加入第二语料集中的步骤,包括:将每条所述第一语料输入至通过双向长短记忆网络模型预训练的停用词填充模型中,以在所述第一语料所包括的相邻的字段名之间填充停用词,生成所述第二语料;将每条所述第二语料添加入所述第二语料集中。在一实施例中,上述处理器对所述第二语料集中的每条所述第二语料通过预设分析句法进行分析,分别判断每条所述第二语料是否符合语言习惯的步骤,包括:分别将每条所述第二语料输入至预训练的词性标注模型中,以标注每条所述第二语料中各个词汇的词性;分别通过依存句法分析每条所述第二语料中各个所述词汇之间的依存和支配关系,生成所述第二语料的依存句法树;分别根据每条所述第二语料中每个所述词汇的词性和所述依存句法树,判断每条所述第二语料是否符合预设句法规则;若是,则判定符合预设句法规则的所述第二语料符合语言习惯。在一实施例中,上述处理器分别将每条所述第二语料输入至预训练的词性标注模型中,以标注每条所述第二语料中各个词汇的词性的步骤前,包括:获取训练语料,并根据所述训练语料中已标注的各个词汇的词性,构建训练集;将所述训练集通过隐马尔科夫模型进行训练,以得到所述词性标注模型。本领域技术人员可以理解,图3中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定。本申请一实施例还提供一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现一种测试语料生成方法,具体为:从语料模板库中获取至少一个语料模板;解析每条所述语料模板所包含的每个槽位以及每个所述槽位对应的槽位类型;从预设字典中分别查找与每个所述槽位类型对应的全部字段名;根据每个所述槽位类型对应的全部所述字段名,对每条所述语料模板所包含的每个所述槽位进行字段名全排列赋值,逐条生成第一语料,并将每条所述第一语料添加入第一语料集中,直至在所述第一语料集中,每条所述语料模板所包含的每个所述槽位包括了与每个所述槽位对应的槽位类型所对应的全部所述字段名;对所述第一语料集中的每条所述第一语料的相邻的字段名之间填充停用词,将填充停用词之后的每条所述第一语料作为第二语料,并将每条所述第二语料添加入第二语料集中;对所述第二语料集中的每条所述第二语料通过预设分析句法进行分析,分别判断每条所述第二语料是否符合语言习惯;将符合语言习惯的每条所述第二语料作为所述测试语料,并将每条所述测试语料添加入测试语料集中。在一实施例中,上述处理器从语料模板库中获取至少一个语料模板的步骤前,包括:获取所述测试语料的使用场景;获取所述使用场景对应的初始字典,其中,所述初始字典内存储了所述使用场景下对应的至少一个字段名;按照预设规则判断每个所述字段名对应的槽位类型;在所述初始字典中,给每个所述字段名添加每个所述字段名对应的槽位类型的标签,生成所述预设字典。在一实施例中,上述处理器在所述初始字典中,给每个所述字段名添加每个所述字段名对应的槽位类型的标签,生成所述预设字典的步骤后,包括:从所述预设字典中获取所述使用场景对应的全部槽位类型;从所述使用场景对应的全部槽位类型中选择至少一个槽位类型作为指定槽位类型;配置每个所述指定槽位类型对应的槽位,并将全部所述槽位进行排列组合,逐条建立所述使用场景对应的语料模板,并将每条所述语料模板添加入所述语料模板库中,其中,每条所述语料模板包括每个所述指定槽位类型对应的至少一个槽位。在一实施例中,上述初始字典中还存储了各所述字段名对应的数据类型,上述处理器按照预设规则判断每个所述字段名对应的槽位类型的步骤,包括:分别判断每个所述字段名对应的数据类型,其中所述数据类型包括连续型数据和离散型数据;若为连续型数据,则判定所述字段名对应的槽位类型为第一槽位类型;若为离散型数据,则将所述字段名与预定义字段名列表进行匹配;若匹配成功,则判定所述字段名对应的槽位类型为预定义槽位类型,其中,所述预定义字段名列表中存储了所述预定义槽位类型对应的至少一个字段名。在一实施例中,上述处理器对所述第一语料集中的每条所述第一语料的相邻的字段名之间填充停用词,将填充停用词之后的每条所述第一语料作为第二语料,并将每条所述第二语料添加入第二语料集中的步骤,包括:将每条所述第一语料输入至通过双向长短记忆网络模型预训练的停用词填充模型中,以在所述第一语料所包括的相邻的字段名之间填充停用词,生成所述第二语料;将每条所述第二语料添加入所述第二语料集中。在一实施例中,上述处理器对所述第二语料集中的每条所述第二语料通过预设分析句法进行分析,分别判断每条所述第二语料是否符合语言习惯的步骤,包括:分别将每条所述第二语料输入至预训练的词性标注模型中,以标注每条所述第二语料中各个词汇的词性;分别通过依存句法分析每条所述第二语料中各个所述词汇之间的依存和支配关系,生成所述第二语料的依存句法树;分别根据每条所述第二语料中每个所述词汇的词性和所述依存句法树,判断每条所述第二语料是否符合预设句法规则;若是,则判定符合预设句法规则的所述第二语料符合语言习惯。在一实施例中,上述处理器分别将每条所述第二语料输入至预训练的词性标注模型中,以标注每条所述第二语料中各个词汇的词性的步骤前,包括:获取训练语料,并根据所述训练语料中已标注的各个词汇的词性,构建训练集;将所述训练集通过隐马尔科夫模型进行训练,以得到所述词性标注模型。综上所述,为本申请实施例中提供的测试语料生成方法、装置、计算机设备和存储介质,首先通过从语料模板库中获取至少一个语料模板;再解析每条所述语料模板所包含的每个槽位以及每个所述槽位对应的槽位类型;然后从预设字典中分别查找与每个所述槽位类型对应的全部字段名;再根据每个所述槽位类型对应的全部所述字段名,对每条所述语料模板所包含的每个所述槽位进行字段名全排列赋值,逐条生成第一语料,并将每条所述第一语料添加入第一语料集中,直至在所述第一语料集中,每条所述语料模板所包含的每个所述槽位包括了与每个所述槽位对应的槽位类型所对应的全部所述字段名,从而可以自动生成大批量的第一语料;接着对所述第一语料集中的每条所述第一语料的相邻的字段名之间填充停用词,将填充停用词之后的每条所述第一语料作为第二语料,并将每条所述第二语料添加入第二语料集中;再对所述第二语料集中的每条所述第二语料通过预设分析句法进行分析,分别判断每条所述第二语料是否符合语言习惯;最后将符合语言习惯的每条所述第二语料作为所述测试语料,并将每条所述测试语料添加入测试语料集中,最终得到的测试语料表达生动,符合人类的语言表达习惯,大幅提高了测试语料的生成速度和质量,从而有利于提高测试工程师对自然语言模型的测试效率,并有利于测试工程师及时发现自然语言模型的漏洞和缺陷。本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储与一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的和实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可以包括只读存储器(rom)、可编程rom(prom)、电可编程rom(eprom)、电可擦除可编程rom(eeprom)或闪存。易失性存储器可包括随机存取存储器(ram)或者外部高速缓冲存储器。作为说明而非局限,ram通过多种形式可得,诸如静态ram(sram)、动态ram(dram)、同步dram(sdram)、双速据率sdram(ssrsdram)、增强型sdram(esdram)、同步链路(synchlink)dram(sldram)、存储器总线(rambus)直接ram(rdram)、直接存储器总线动态ram(drdram)、以及存储器总线动态ram(rdram)等。以上所述仅为本申请的优选实施例,并非因此限制本申请的专利范围,凡是利用本申请说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的
技术领域
,均同理包括在本申请的专利保护范围内。当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1