
1.本发明涉及人工智能技术领域,尤其涉及一种问答方法、问答数据集生成方法及装置。
背景技术:2.人工智能已经得到广泛重视,问答模型是人工智能领域的任务之一,其目的是赋予机器回答人类问题的能力,问答模型已经在搜索引擎、个人助手、智能客服等领域深刻而广泛地改变了人们的日常生活,使得人机交互方式更加自然而普适。
3.根据问题复杂程度,问答任务可以分为简单问答任务和复杂推理问答任务。随着近年来大规模数据集的提出和深度学习技术的发展,现有技术中的问答模型,已经在一些简单问答任务上取得了良好的效果,例如在文本问答数据集 squad2.0上,人类可以达到 89.45% 的 f1 值,有些问答模型已经达到了93.01%,显著超越人类。但是,面对复杂推理问答任务,问答模型的能力仍有待提高。数据集是问答模型的重要的研究基础,高质量的数据集便于对问答模型的模型进行训练和评测,推动相关研究的发展,目前数据集的质量成为制约问答模型的能力提高的因素之一。因此,如何提高问答模型的数据集的质量是目前业界亟待解决的重要课题。
技术实现要素:4.本发明提供一种问答方法、问答数据集生成方法及装置,用以解决现有技术中如何提高问答模型的数据集的质量的问题,实现问答数据集的质量的提高,进而提升了问答模型的能力。
5.本发明提供一种问答方法,包括:获取待回答问题,将所述待回答问题输入至问答模型,得到所述待回答问题的答案;所述问答模型是基于问答数据集得到的,所述问答数据集是通过如下方式得到的:获取元素描述策略库和提问策略库;所述元素描述策略库包含m种描述策略的元素描述模板;所述提问策略库包含n种提问策略的问题模板,所述问题模板中包含第一占位符,m和n为正整数;针对每种所述问题模板,从提问对象库中选择与所述第一占位符对应的若干目标元素,基于m种所述元素描述模板,生成所述目标元素的m个元素描述信息,将若干所述目标元素的m个元素描述信息依次替换所述问题模板中对应的所述第一占位符,以生成多个第一问题;基于所述第一问题中具有别名的元素,将所述第一问题转写成第二问题,并通过生成所述第二问题的释义,将所述第二问题转写成第三问题;基于所有所述第三问题及对应的所述目标元素,生成所述问答数据集。
6.根据本发明提供的问答方法,所述基于所述第一问题中具有别名的元素,将所述第一问题转写成第二问题,包括:
针对所述第一问题中具有别名的所有元素,基于每个元素的别名集合,将各元素的别名进行排列组合,得到多个别名组合;针对每个所述别名组合,将所述别名组合形成一个多元组,并将所述多元组输入至补全模型,得到所述补全模型输出的所述第二问题,所述补全模型用于将所述多元组中的各元素的别名补全成句子,以作为所述第二问题。
7.根据本发明提供的问答方法,所述通过生成所述第二问题的释义,将所述第二问题转写成第三问题,包括:将所述第二问题输入至释义生成模型,得到所述释义生成模型输出的所述第三问题,所述释义生成模型是基于第二问题样本和第三问题样本利用预训练语言模型进行训练得到的。
8.根据本发明提供的问答方法,所述基于所有所述第三问题及对应的所述目标元素,生成所述问答数据集,包括:针对每个所述第三问题,计算所述第三问题的向量表示与对应的所述第一问题的向量表示的相似度,作为所述第三问题的评分,若所述第三问题的评分大于或者等于预设评分,确定所述第三问题与对应的所述第一问题的语义一致,基于所述语义一致的所有所述第三问题及对应的所述目标元素,生成所述问答数据集;或者,针对每个所述第三问题,接收输入的所述第三问题的多个评价信息,若所述第三问题的多个评价信息满足预设条件,确定所述第三问题与对应的所述第一问题的语义一致,基于所述语义一致的所有所述第三问题及对应的所述目标元素,生成所述问答数据集。
9.根据本发明提供的问答方法,所述问题模板中还包括第二占位符;所述方法还包括:从所述提问对象库中选择与所述第二占位符对应的若干元素内容;所述将若干所述目标元素的m个元素描述信息依次替换所述问题模板中对应的所述第一占位符,以生成多个第一问题,包括:将若干所述目标元素的m个元素描述信息依次替换所述问题模板中对应的所述第一占位符,以及将若干所述元素内容依次替换所述问题模板中对应的所述第二占位符,以生成多个所述第一问题。
10.根据本发明提供的问答方法,还包括:基于所述第一问题对应的所述提问策略和所述描述策略所对应的推理函数、所述目标元素和所述目标元素的元素描述信息,生成所述第三问题的推理程序,所述第三问题的推理程序表征求解所述第三问题的答案的推理过程;所述基于所有所述第三问题及对应的所述目标元素,生成所述问答数据集,包括:基于所有所述第三问题及对应的推理程序和所述目标元素,生成所述问答数据集。
11.本发明还提供一种问答数据集生成方法,包括:获取元素描述策略库和提问策略库;所述元素描述策略库包含m种描述策略的元素描述模板;所述提问策略库包含n种提问策略的问题模板,所述问题模板中包含第一占位符,m和n为正整数;
针对每种所述问题模板,从提问对象库中选择与所述第一占位符对应的若干目标元素,基于m种所述元素描述模板,生成所述目标元素的m个元素描述信息,将若干所述目标元素的m个元素描述信息依次替换所述问题模板中对应的所述第一占位符,以生成多个第一问题;基于所述第一问题中具有别名的元素,将所述第一问题转写成第二问题,并通过生成所述第二问题的释义,将所述第二问题转写成第三问题;基于所有所述第三问题及对应的所述目标元素,生成所述问答数据集。
12.本发明还提供一种问答装置,包括:获取模块,用于获取待回答问题;问答模块,用于将所述待回答问题输入至问答模型,得到所述待回答问题的答案;所述问答模型是基于问答数据集得到的,所述问答数据集是通过如下方式得到的:获取元素描述策略库和提问策略库;所述元素描述策略库包含m种描述策略的元素描述模板;所述提问策略库包含n种提问策略的问题模板,所述问题模板中包含第一占位符,m和n为正整数;针对每种所述问题模板,从提问对象库中选择与所述第一占位符对应的若干目标元素,基于m种所述元素描述模板,生成所述目标元素的m个元素描述信息,将若干所述目标元素的m个元素描述信息依次替换所述问题模板中对应的所述第一占位符,以生成多个第一问题;基于所述第一问题中具有别名的元素,将所述第一问题转写成第二问题,并通过生成所述第二问题的释义,将所述第二问题转写成第三问题;基于所有所述第三问题及对应的所述目标元素,生成所述问答数据集。
13.本发明还提供一种问答数据集生成装置,包括:策略获取模块,用于获取元素描述策略库和提问策略库;所述元素描述策略库包含m种描述策略的元素描述模板;所述提问策略库包含n种提问策略的问题模板,所述问题模板中包含第一占位符,m和n为正整数;问题生成模块,用于针对每种所述问题模板,从提问对象库中选择与所述第一占位符对应的若干目标元素,基于m种所述元素描述模板,生成所述目标元素的m个元素描述信息,将若干所述目标元素的m个元素描述信息依次替换所述问题模板中对应的所述第一占位符,以生成多个第一问题;问题转写模块,用于基于所述第一问题中具有别名的元素,将所述第一问题转写成第二问题,并通过生成所述第二问题的释义,将所述第二问题转写成第三问题;数据集生成模块,用于基于所有所述第三问题及对应的所述目标元素,生成所述问答数据集。
14.本发明还提供一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现如上述任一种所述问答方法或如上述任一种所述问答数据集生成方法。
15.本发明还提供一种非暂态计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现如上述任一种所述问答方法或如上述任一种所述问答数据集生成方法。
16.本发明还提供一种计算机程序产品,包括计算机程序,所述计算机程序被处理器执行时实现如上述任一种所述问答方法或如上述任一种所述问答数据集生成方法。
17.本发明提供的问答方法、问答数据集生成方法及装置,采用的问答数据集是基于元素描述策略库和提问策略库得到的,元素描述策略库包含m种描述策略的元素描述模板,提问策略库包含n种提问策略的问题模板,问题模板中包含第一占位符,从提问对象库中选择与第一占位符对应的若干目标元素,基于m种元素描述模板,生成目标元素的m个元素描述信息,将若干目标元素的m个元素描述信息依次替换问题模板中对应的第一占位符,以生成多个第一问题,如此,仅需要少量的问题模板就可以得到大量且多样的第一问题,进一步的,基于第一问题中具有别名的元素对第一问题进行转写得到第二问题,然后通过生成第二问题的释义转写得到第三问题,使得转写的第三问题尽可能多样而自然,从而得到了高质量的问答数据集,进而提升了问答模型的能力。
附图说明
18.为了更清楚地说明本发明或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
19.图1是本发明提供的问答方法的流程示意图;图2是本发明提供的问答数据集生成方法的流程示意图;图3是本发明提供的问答装置的结构示意图;图4是本发明提供的问答数据集生成装置的结构示意图;图5是本发明提供的电子设备的结构示意图。
具体实施方式
20.为使本发明的目的、技术方案和优点更加清楚,下面将结合本发明中的附图,对本发明中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
21.人工智能已经得到广泛重视,问答模型是人工智能领域的任务之一,其目的是赋予机器回答人类问题的能力,问答模型已经在搜索引擎、个人助手、智能客服等领域深刻而广泛地改变了人们的日常生活,使得人机交互方式更加自然而普适。
22.根据问题复杂程度,问答任务可以分为简单问答任务和复杂推理问答任务。随着近年来大规模数据集的提出和深度学习技术的发展,现有技术中的问答模型,已经在一些简单问答任务上取得了良好的效果,例如在文本问答数据集 squad2.0上,人类可以达到 89.45% 的 f1 值,有些问答模型已经达到了93.01%,显著超越人类。但是,面对复杂推理问答任务,问答模型的能力仍有待提高。数据集是问答模型的重要的研究基础,高质量的数据集便于对问答模型的模型进行训练和评测,推动相关研究的发展,目前数据集的质量成为制约问答模型的能力提高的因素之一。因此,如何提高问答模型的数据集的质量是目前业界亟待解决的重要课题。
23.问答模型的输入通常包括两个部分,即提问对象和问题。其中提问对象可以有多种形式,例如,图片、文本、知识库、音频、视频等等形式,提问对象可以包含一种或者多种形式,例如提问对象包含图片或者知识库,再例如提问对象包含文本和知识库。对于简单问答任务,面临的是简单问题,可以从提问对象中进行检索匹配就可以直接得到答案,例如,“中国的首都是哪里”,是一个简单问题,因为只需要从知识库中找到对应的三元组(中国,首都,北京)就可以得到答案是“北京”。然而,现实情景中很多问题无法直接提取答案,而要从提问对象中综合多个信息,推理得出答案,这种问题为复杂推理问题,属于复杂推理问答任务,例如,“中国籍篮球运动员中,谁在nba得分最多”,这是一个复杂推理问题,因为,需要先从知识库中找出所有中国籍篮球运动员,再抽取他们在nba 的得分,最后对得分进行排序,才能得出答案。高质量的数据集,利于问答模型的能力提升。为推动复杂推理问答研究的发展,qald、free917、simplequestions等多个复杂推理问答领域的数据集相继被提出,通过分析已有数据集的特点,发明人发现已有的数据集仍存在以下几种缺点:(1)问题较为简单。例如,基于freebase构建的数据集simplequestions,包含108442个问答对,每个问题对应知识库中一个三元组的头实体和关系。再例如,数据集wikimovies,由电影领域的知识库和约100k个问答对组成。这两个数据集包含的问题仍较为简单,可以作为简单问答任务常用的数据集,仍不能满足复杂推理问答任务的需求。
24.(2)问题缺乏多样性。数据集wikimoviess中的问题都由模板生成,相对于表达方式多样的自然语言,缺乏多样性。
25.(3)答案缺乏可解释性。例如,标准数据集webquestions,其构建方法是,首先使用freebase,通过google suggest api爬取候选的问题,得到5810个问题 ,其中包含3778个训练数据,2032个测试数据,再利用amazon mechanical turk众包标注得到答案,其中,问题的答案在freebase中可以找到。该数据集包含5810个问答对,但没有对应的逻辑表达式等中间过程作为答案的解释。
26.(4)数据集规模较小。例如,数据集webquestionsp(即webqsp),是在webquestions数据集的基础上为4737个问题标注了对应的sparql查询语句。为了增强问题的复杂性和多样性,在webquestionsp的基础上,进一步发布了数据集complexquestions和graphquestions,通过引入类型约束、显式或隐式的时间约束、聚合操作等对数据集webquestionsp进行增强。以上数据集规模较小,很难满足深度学习模型对数据的需求。
27.(5)知识类型单一。例如,数据集metaqa,是包含400k多个问答对的复杂推理问答数据集,但该数据集只覆盖知识库中的9种关系,缺乏属性型知识和修饰型知识。
28.复杂推理问答任务研究的主要内容在于问题解析和提问对象检索两个方面。相应地,数据集作为重要的研究基础,其质量与问答模型中的问题质量和提问对象息息相关。一个问答数据集由问题答案数据集和提问对象库构成。对于问题答案数据集,问题的数量、问题是否需要推理、问题是否为自然语言、问题是否有对应的逻辑形式这四点是影响数据集质量的关键因素。而对于提问对象库,知识的来源和知识的种类是影响数据集质量的重要因素。通过分析已有数据集的特点,结合复杂推理问答任务这一研究任务的需求,发明人发现适用于复杂推理问答任务的数据集应具备以下几个特点:(1)知识种类丰富。除概念、实体,属性等常见的知识,提问对象库中应尽可能多地包含关系型知识、属性型知识和修饰型知识,这样有助于提高模型的表达能力,提高问答模
型的效果。
29.(2)问题需要推理。为满足复杂推理问答任务的需求,问题需要涉及多跳推理、数值比较、逻辑操作等推理操作中的一种或多种。
30.(3)答案具有可解释性。这里答案的解释性指的是有对应的逻辑表达式等中间过程作为答案的解释,既有助于用户对答案的理解,也有助于机器更多地掌握组合推理能力。
31.(4)问题描述具有多样性。自然语言是丰富的,人类提问的表述方式是多样的。用人类语言描述的问题,而不是由模板直接生成,有助于提高机器的语义解析能力,提高问答模型整体的性能,更大程度地满足实际应用需求。
32.基于此,本发明提供一种问答方法、问答数据集生成方法及装置。下面结合图1描述本发明的问答方法。
33.图1是本发明提供的问答方法的流程示意图。
34.如图1所示,本实施例提供一种问答方法,包括:步骤101、获取待回答问题,步骤102、将待回答问题输入至问答模型,得到待回答问题的答案;问答模型是基于问答数据集得到的,问答数据集是通过如下方式得到的:获取元素描述策略库和提问策略库;元素描述策略库包含m种描述策略的元素描述模板;提问策略库包含n种提问策略的问题模板,问题模板中包含第一占位符,m和n为正整数;针对每种问题模板,从提问对象库中选择与第一占位符对应的若干目标元素,基于m种元素描述模板,生成目标元素的m个元素描述信息,将若干目标元素的m个元素描述信息依次替换问题模板中对应的第一占位符,以生成多个第一问题;基于第一问题中具有别名的元素,将第一问题转写成第二问题,并通过生成第二问题的释义,将第二问题转写成第三问题;基于所有第三问题及对应的目标元素,生成问答数据集。
35.实际应用中,生成问答数据集包括生成提问对象库和问题答案数据集。提问对象库是问题和答案的来源,可以利用已有的提问对象库,也可以根据需要构建提问对象库。提问对象库的内容由实际应用需求决定,包括但不限于图片集、文本集、知识库等。本实施例中,以知识库为提问对象库进行举例说明。图片和文本也可以转化成知识存在知识库中。生成知识库时,可以直接利用已有的百科知识库(例如百度百科、维基百科、wikidata、wordnet等等)或者抽取这些知识库的子集,也可以从大量文本中抽取知识构建知识库,也可以构建应用于具体场景的限定领域的知识库。知识库是所有知识的集合,根据实际应用需求可以选择知识元素(也称元素)的种类和内容。知识库中的知识元素的种类包括但不限于以下几种:一、实体,表示一个独一无二的事物,例如,小明。
36.二、概念,一组具有相同特征的实体组成的集合,例如篮球队。
37.三、属性,表示实体和概念在某一方面的特征信息。其中,实体的属性的信息由属性键和属性值两部分组成,属性值可以为字符串、数字、日期和年份等类型,例如,身高是一个属性,226厘米是对应的属性值。概念的属性从不同维度对概念进行描述,例如,运动员有身高、年龄、出生日期等属性。
38.四、关系,表示两个实体之间的关系。示例性的,实体可以通过instanceof关系连接到相应的概念上,概念之间通过subclassof关系来组织成层次结构。例如,父亲和配偶都是关系,此处不做赘述。
39.五、属性型知识,表示一个实体的属性的信息的三元组,由(实体,属性键,属性值)组成。例如,三元组(小明,身高,226厘米)是一个属性型知识。
40.六、关系型知识,表示两个实体间关系的三元组,由(实体,关系,实体)组成。例如,三元组(小明,配偶,小芳)是一个关系型知识。
41.七、修饰型知识,对一个关系型知识或属性型知识的三元组进行进一步的修饰,包含一个修饰键和一个修饰值,由(三元组,修饰键,修饰值)组成。例如,((小明,配偶,小芳),开始时间,2005年)是一个修饰型知识;((小明,身高,226厘米),测量时间,2005年)也是一个修饰型知识。
42.知识库的生成主要包括知识元素的抽取和概念构建两个步骤。知识元素的抽取是指从大规模文本、已有知识库根据实际需求来抽取知识元素。对于无法直接区分实体和概念的数据集需要进行概念构建,获取概念上下位的层次关系。基于百科知识库的概念构建,可借助instanceof、subclassof、isa等关系区分概念和实体并构建概念层次关系。经过以上步骤,得到了一个可用于问答数据集生成的知识库。在具体构建过程中,可以在知识库中额外加入一些知识元素来满足实际特定需求。例如,为了增加数据集的挑战性,可以引入一定数量的重名实体增加部分实体的歧义性。这里的重名实体指的是不同的实体具有同一个名字,例如“人生
××”
,既有小说,也有电视剧,加入这样的实体对于生成问答数据集的流程没有影响,只是利用这样的数据集训练评测问答模型,对问答模型的难度有更高的要求。
43.基于以上方法,可以针对不同场景的问答需求生成知识库,知识库的数据可以来源于单一百科知识库,也可以来源于多个百科知识库,同时还可以融入文本、图片等知识。基于生成的知识库,则可以生成问题答案数据集。当然,如果有现成的知识库,则可以直接借助该知识库来生成问题答案数据集。
44.为了生成问题答案数据集,实际应用中,可以预先构建提问策略库和元素描述策略库。
45.其中,提问策略库是由n种提问策略构成的。提问策略是按照提问的类型设置的策略,示例性的,提问策略可以为查询名字、计数、查询属性、关系、多个间选择、两者间选择、验证、第一修饰型知识、第二修饰型知识。
46.查询名字是指查询实体的名字,示例性的,问题模板可以是what/whois《e》,问题样例为:whoisthebasketballplayerwhoseheightisequalto229centimetres计数是指询问实体的数量,示例性的,问题模板可以是howman《e》,问题样例为:howmanybasketballplayersthatwereborninshanghai查询属性是指查询实体的属性,示例性的,问题模板可以是for《e》,whatishis/her/its《k》(《qk》is《qv》),问题样例为:forshanghai,whatisitspopulation(pointintimeis2016)其中,《qk》is《qv》为可选的部分。
47.关系是指询问实体之间的关系,示例性的,问题模板可以是whatistherelationfrom《e1》to《e2》,问题样例为:whatistherelationfromzhangsanto
shanghai多个间选择是指在多个实体中选择一个实体,示例性的,问题模板可以是among 《e》, which one has the largest/smallest 《k》,问题样例为:among basketball players, which one has the largest mass两者间选择是指在两个实体中选择一个实体,示例性的,问题模板可以是which one has the larger/smaller 《k》, 《e1》 or 《e2》,问题样例为:which one has the larger mass, zhang san or xiao ming验证是指对知识进行验证,示例性的,问题模板可以是for 《e》, is his/her/its 《k》 《op》 《v》 (《qk》 is 《qv》),问题样例为:for the human that is the spouse of xiao fang, is his/her height greater than 180 centimetres其中,《qk》 is 《qv》为可选的部分。
48.第一修饰型知识是对基于属性型知识的三元组的修饰型知识的修饰键进行询问,示例性的,问题模板可以是for 《e》, his/her/its 《k》 is 《v》, what is the 《qk》,问题样例为:for shanghai, its population is 24,152,700, what is the point in time第二修饰型知识是对基于关系型知识的三元组的修饰型知识的修饰键进行询问,示例性的,问题模板可以是《e1》 《p》 《e2》, what is the 《qk》,问题样例为:zhang san is the spouse of xiao fang, what is the start time其中,元素描述策略库是由m种描述策略构成的。描述策略是按照元素的约束条件描述的策略,元素描述模板包括约束条件,该约束条件中可以包括待替换的第三占位符,也可以包括预先设定的至少一种条件。示例性的,描述策略可以为实体名、概念名、概念与属性、概念与关系、集合交集、集合并集。
49.实体名是指描述实体的名称,示例性的,元素描述模板可以是《e》,样例为:xiao ming。
50.概念名是指描述实体所属的概念的名称,示例性的,元素描述模板可以是《c》,样例为:basketball players。
51.概念与属性是指描述实体所属的概念以及属性,示例性的,元素描述模板可以是the 《c》 whose 《k》 is 《op》 《v》 (《qk》 is 《qv》),样例为the city whose population is greater than 23,000,000(point in time is 2016)。其中,《qk》 is 《qv》为可选的部分。
52.概念与关系是指描述实体所属的概念以及关系,示例性的,元素描述模板可以是the 《c》 that 《p》 《e》 (《qk》 is 《qv》),样例为the basketball player that was born in shanghai。
53.集合交集是不同条件定位的实体的交集,示例性的,元素描述模板可以是条件1和条件2,样例为the humans whose height is greater than 190 centimetres and less than 220 centimetres 。
54.集合并集则是不同条件定位的实体的并集,示例性的,元素描述模板可以是条件1
或条件2,样例为the humans that were born in shanghai or new york。
55.以上《e》、《e1》、《e2》、《k》、《v》、《qk》、《qv》、《p》、《op》、《c》均为占位符,《e》、《e1》、《e2》对应的元素为实体,《k》和《v》对应的元素为属性,《qk》和《qv》对应的元素为修饰型知识,《c》对应的元素为概念,《op》对应的元素为关系型知识,《p》对应的元素为属性或者关系。
56.第一占位符用于替换成对应元素的上述元素描述信息。示例性的,第一占位符对应的元素可以包括实体和概念。示例性的,实体对应的第一占位符包括《e》、《e1》、《e2》,《e1》和《e2》则表示对应不同的实体,可以替换成实体描述信息。概念对应的第一占位符包括《c》,可以替换成概念描述信息。
57.问题模板中还包括第二占位符;第二占位符用于替换成对应元素的内容(即元素内容)。第二占位符对应的元素包括属性、关系、属性型知识、关系型知识和修饰型知识。示例性的,《k》和《v》对应的元素为属性,《qk》和《qv》对应的元素为修饰型知识, 《op》对应的元素为关系型知识,《p》对应的元素为属性或者关系。此时,《k》和《v》可以替换成属性这一元素的内容,其中,《k》可以替换成属性键,《v》可以替换成属性值。《qk》和《qv》可以替换成修饰型知识的内容,其中,《qk》可以替换成修饰键,《qv》可以替换成修饰值。 《p》可以替换成属性或者关系的内容以作为谓语。 《op》可以替换成关系型知识的内容以作为运算符,例如等于、不等于、大于或者小于等。
58.例如,在概念与关系的描述策略中,将 《c》 替换为“basketball player”,将 《p》 替换为“was born in”,将 《e》 替换为“shanghai”,就得到了实体的实体描述信息“the basketball player that was born in shanghai”。修饰键和修饰值,即《qk》 is 《qv》是可选的,当使用该约束时,可以进一步缩小描述的范围。
59.第三占位符用于替换成对应元素的内容,第三占位符对应的元素可以包括实体、概念、属性、关系型知识、属性型知识或者修饰型知识。示例性的,第三占位符包括《e》、《c》,《e》可以替换成实体的名称,《c》可以替换成概念的名称,还可以包括《k》、《v》、《qk》、《qv》和 《op》等等。
60.构建元素描述策略库和提问策略库时,可以采用递归多跳的方式,递归多跳是指将一段关系型知识描述中涉及到的实体进行展开,以增加描述的跳数。例如,对于关系型知识的描述“the basketballplayer that was born in shanghai”,对其中的宾语实体“shanghai”进行展开,将其替换为“the city whose population is greater than 23000000 (point in time is 2016)”,从而得到更加复杂的描述。
61.基于以上构建的提问策略库和元素描述策略库,可以生成问题答案数据集。具体的,针对提问策略库中的每种问题模板都执行第一问题的生成的步骤:从提问对象库中随机选择与第一占位符对应的若干目标元素,这里的目标元素为待询问的单个实体或者实体集合,若干目标元素也即若干单个实体,若干目标元素也即若干实体集合。针对每个目标元素,基于m种元素描述模板,生成目标元素的m个元素描述信息,将若干目标元素的m个元素描述信息依次替换问题模板中对应的第一占位符,以生成多个第一问题。
62.另外,还可以从提问对象库中选择与第二占位符对应的若干元素内容,元素内容为属性、关系、属性型知识、关系型知识或者修饰型知识的内容。例如第二占位符对应的元素为属性,这里的元素内容则为一个具体的属性键,例如身高。那么,将若干目标元素的m个
he educated at university of oxford”,可以直接将“university of oxford”替换为“oxon.”。然而,如果直接将“educated at”替换为“college attended”,问题“for stephen hawking, is he college attended university of oxford”存在语法错误。
70.基于此,示例性的,基于第一问题中具有别名的元素,将第一问题转写成第二问题,其具体实现方式可以包括:针对第一问题中具有别名的所有元素,基于每个元素的别名集合,将各元素的别名进行排列组合,得到多个别名组合;针对每个别名组合,将别名组合形成一个多元组,并将多元组输入至补全模型,得到补全模型输出的第二问题,补全模型用于将多元组中的各元素的别名补全成句子,以作为第二问题。
71.补全模型可以将多元组中的各元素的别名补全为流畅的句子,作为第二问题。这里的补全模型可以是生成式的预训练语言模型。也可以是对生成式的预训练语言模型利用多元组样本和第二问题样本进行微调得到的。这里,生成式的预训练语言模型可以采用bart或者t5实现,t5的英文全称是text-to-text transfer transformer。实施中,可以将多元组样本和第二问题样本作为数据集,对生成式的预训练语言模型进行微调,得到补全模型。
72.例如,对于第一问题的各元素形成的三元组(stephen hawking, educated at, university of oxford),替换对应的别名得到各元素的别名组成的三元组 (s. w. hawking, college attended, oxford university),可以构造输入为:“s.w.hawking 《extra_id_1》 college attended 《extra_id_2》 oxford university”,输入补全模型中,将其自动补全为:s. w. hawking’s college attended is oxford university其中,《extra_id_1》 、《extra_id_2》处是需要补全模型补全的内容。因此,第一问题“for stephen hawking, is he educated at university of oxford”的另一种表达方式为“s. w. hawking’s college attended is oxford university”。
73.如此,以第一问题为种子,通过第一问题中的元素的别名可以增强问题的多样性。通过多元组中的各元素的别名补全得到第二问题,与别名替换的方式相比,可以减少语法错误。
74.具体的,通过生成第二问题的释义,将第二问题转写成第三问题,可以包括:将第二问题输入至释义生成模型,得到释义生成模型输出的第三问题,释义生成模型是基于第二问题样本和第三问题样本利用预训练语言模型进行训练得到的。
75.释义是表达相同含义,同时使用不同的单词或句子结构的文本。例如,“what is the best way to learn english”是“how do i improve my english”的释义。释义生成可以在保留句子原意的情况下,实现为给定的句子生成有不同措辞或与原句结构不同的句子。目前,释义生成已有不少的数据集,这些数据集的样例都是形如《原句,释义》的二元组,如parabank 2,comqa等。可以使用这些平行语料(即原句和释义形成的语料)中的问句转述语料对预训练语言模型进行微调,再将第二问题作为释义生成模型的输入,输出释义后的第三问题。以第二问题“for s. w. hawking, is s. w. hawking’s place of education at the oxford university”为例,它的一个释义为“is s. w. hawking’s education place oxford university”。这里,得到释义生成模型采用的预训练语言模型也可以通过t5实现。本实施例中,通过将第二问题进行释义,可以得到更加流程自然的第三问题。
76.实际应用中,除基于预训练语言模型进行自动转写的方式,还有很多其它方式,包括但不限于基于规则的方法、基于同义词库的方法、基于sequence-to-sequence(即seq2seq)的方法,等等,此处不再一一列举。
77.本实施例中,采用的问答数据集是基于元素描述策略库和提问策略库得到的,元素描述策略库包含m种描述策略的元素描述模板,提问策略库包含n种提问策略的问题模板,问题模板中包含第一占位符,从提问对象库中选择与第一占位符对应的若干目标元素,基于m种元素描述模板,生成目标元素的m个元素描述信息,将若干目标元素的m个元素描述信息依次替换问题模板中对应的第一占位符,以生成多个第一问题,如此,仅需要少量的问题模板就可以随机得到大量且多样的问题,进一步的,基于第一问题中的各元素的别名对第一问题进行转写得到第二问题,然后通过生成第二问题的释义转写得到第三问题,使得转写的第三问题尽可能多样而自然,从而得到了高质量的问答数据集,进而提升了问答模型的能力。
78.基于以上实施例,本实施例的方法还可以包括:基于第一问题对应的提问策略和描述策略所对应的推理函数、目标元素和目标元素的元素描述信息,生成第三问题的推理程序,第三问题的推理程序表征求解第三问题的答案的推理过程。相应的,基于所有第三问题及对应的目标元素,生成问答数据集,其具体实现方式可以包括:基于所有第三问题及对应的推理程序和目标元素,生成问答数据集。
79.以上生成第一问题的过程,可以称为问题生成阶段,第一问题转写成第三问题的过程,可以称为问题转写阶段。实际应用中,为了提高答案的可解释性,在问题生成阶段,随着第一问题的生成,可以随之生成用于求解答案的语句或者推理函数。
80.其中,求解答案的语句可以为sparql语句。sparql的优点在于查询速度快,将提问对象库中的知识导入到数据库中可以实现对sparql语句的查询。相对于sparql,推理程序可以将复杂问题拆解为多个简单操作,更容易被人类所理解,具有更好的可解释性。一个推理程序由若干个推理函数组成。在问题生成过程中,随着第一问题的生成,相应的推理程序也同步生成。每一个推理程序用来表征求解问题的答案的推理过程。
81.其中,推理函数是知识库推理的基本原子操作,若干个有逻辑顺序的推理函数构成了解决问题的推理程序。通过推理函数来完成对知识元素的推理操作。实施中,可以根据提问策略库的提问策略和元素描述策略库的描述策略预先构造多个推理函数,例如,构造的推理函数find函数,用于找出具有指定名称的所有实体,构造的推理函数filterconcept函数,用于找出属于指定概念的实体,构造的relate函数找出与指定实体有指定关系的所有实体及对应三元组。
82.每个推理函数有两部分输入:一部分是函数输入,来自于其他函数的输出;另一部分是文本输入,来自于第一问题对应的提问策略和描述策略。
83.举例来说,当选取了查询名称的提问策略后,对应的问题模板、sparql、推理程序三个片段分别是“who/what is 《e》”、“select e where { }”、“queryname”。接下来,对待询问的目标元素进行随机选取,得到了“zhang san”。然后,生成目标元素的元素描述信息,具体的,选取了概念与关系的描述策略,该策略包含一个概念的约束条件和一个关系的约束条件,根据概念的约束条件从“zhang san”的所有祖先概念中选取了“athlete”,对应
的三个片段分别是“athlete”、“e 《pred:instance_of》 c . c 《pred:name》
ꢀ“
athlete
”ꢀ
.”、“filterconcept(athlete)”,根据关系的约束条件从“zhang san”的所有关系中选取了他的配偶,对应的三个片段分别是“the spouse of xiao fang”、“e 《spouse》 e_1 . e_1 《pred:name》
ꢀ“ꢀ
xiao fang
”ꢀ
.”、“find(xiao fang)
ꢀ→ꢀ
relate(spouse)”。综合根据概念的约束条件得到的片段和根据关系的约束条件得到的片段进行,得到完整的目标元素的元素描述信息。最后,将目标元素的元素描述信息对问题模板中的《e》进行替换,得到最终的第一问题、sparql语句、推理程序。其中的推理程序则包括三个推理函数find(xiao fang) 、relate(spouse)和filterconcept(athlete),能够展示求解问题的答案的推理过程。需要注意的是,在数据集构建中,每个问题都有一个对应的推理程序来表达求解该问题的答案的推理过程。
84.基于以上实施例,基于所有第三问题及对应的目标元素,生成问答数据集,其具体实现方式可以包括:针对每个第三问题,计算第三问题的向量表示与对应的第一问题的向量表示的相似度,作为第三问题的评分,若第三问题的评分大于或者等于预设评分,确定第三问题与对应的第一问题的语义一致,基于语义一致的所有第三问题及对应的目标元素,生成问答数据集;或者,针对每个第三问题,接收输入的第三问题的多个评价信息,若第三问题的多个评价信息满足预设条件,确定第三问题与对应的第一问题的语义一致,基于语义一致的所有第三问题及对应的目标元素,生成问答数据集。
85.实际应用中,可以对于转写得到的第三问题进行评价,丢掉不符合要求的问题,本实施例中,提供了自动评价和人工评价两种方式。
86.其中,自动评价的方法主要通过将原问题(即第一问题)和转写后的问题(即第三问题)转化为向量表示,然后计算两个向量表示之间的相似度来评价第三问题与第一问题的语义是否一致。自动评价的方法中,具体可以采用语义匹配模型来计算第一问题的向量表示与第三问题的向量表示的相似度。其中的语义匹配模型可以为传统的语义匹配模型,也可以为深度语义匹配模型。
87.其中,传统的语义匹配模型用于将第一问题和第三问题映射到同一个隐式向量空间,通过计算第一问题的向量表示和第三问题的向量表示的相似度,示例性的,传统的语义匹配模型可以使用lda主题模型。
88.随着深度自然语言处理技术的兴起,基于深度学习的语义匹配方法取得了更好的效果。
89.深度语义匹配模型有基于表示的语义匹配评价模型,即使用深度学习模型分别表征第一问题和第三问题,通过计算第一问题的向量表示和第三问题的向量表示之间的相似度(如余弦相似度),如dssm模型、simnet模型,多视角循环神经网络匹配模型(mv-lstm)等。
90.除此之外,深度语义匹配模型还可以采用基于交互的深度学习模型,这类模型不直接学习第一问题的向量表示和第三问题的向量表示,而是在神经网络模型底层让第一问题和第三问题进行充分的交互匹配,从而获得更好的第一问题和第三问题的向量表示,最后通过mlp网络获得语义匹配分数,示例性的,深度语义匹配模型可以采用基于卷积神经网络的匹配模型arc-ii或者基于矩阵匹配的的层次化匹配模型matchpyramid。
91.值得强调的是,深度语义匹配模型还可以采用预训练语言模型bert来实现。
92.实施中,相似度越高,第三问题的评分越高,说明第一问题和第三问题的语义越一致,对于达到预设评分的第三问题,认为符合要求,可以保留下来,用来生成问答数据集。其中的预设评分可以根据实际需要进行设置,具体数值此处不做限定。
93.人工评价时,则可以接收输入的第三问题的多个来自评价者的评价信息。评价者对第三问题进行评价时,从以下几个方面进行衡量,一是第三问题转写是否改变了问题的原意,二是编辑距离是否小于预设距离,三是转写后的流畅程度如何,示例性的,在1到5分之间进行评分,5分为非常流畅,1分为非常生硬。对于每个第三问题,可以由多个标注者(例如5个)进行评价。若第三问题的多个评价信息满足预设条件,确定第三问题与对应的第一问题的语义一致。满足预设条件是指多个评价信息中对流畅程度的评分的平均值大于或者等于预设平均值,多个评价信息中认为改变问题的原意的数量小于预设数量,编辑距离小于预设距离。对于满足预设条件的第三问题,认为符合要求,可以用来生成问答数据集。
94.其中,预设平均值、预设数量的具体值可以根据实际情况进行设置。
95.其中,编辑距离即指两个字串之间,由一个转成另一个所需的最少编辑操作次数,操作次数越多,说明它们越是不同。示例性的,预设距离可以为一个单词。
96.实际应用中,可以根据实际需求自由选择自动评价或者人工评价。自动评价的效率高,节省经济成本。而人工评价的结果则更贴近自然语言的要求。
97.若确定第三问题与第一问题的语义不一致,还可以接收输入的第一问题的人工转写结果,更新第三问题,以使得更新后的第三问题与第一问题的语义一致。
98.实施中,人工转写是将第一问题由标注员进行转写。每个问题可以由一个标注员进行转写。在转写时,标注员需要做到以下三点:不能改变问题原意;不能改变问题的逻辑结构,使得问题仍然与生成的 sparql语句和推理程序相对应;保证问题尽可能多样而自然。如果标注者认为一个问题过于复杂或存在逻辑错误,可以对其进行标记,将具有该标记的第一问题丢弃。
99.对于问题答案数据集的构建,本发明提出了问题生成-问题转写-问题评价的通用框架来实现。问题生成阶段利用问题模板生成大量的第一问题,同时第一问题对应的答案和答案求解的sparql语句和推理程序也随之生成。问题转写阶段是将问题生成阶段得到的第一问题进行转写,使问题表达尽可能多样而自然。问题转写有人工转写和自动转写两种方式:人工转写由人工标注完成,标注者在不改变原意的基础上,对问题进行转写,而自动转写是将生成的第一问题利用机器将其自动转换为更加流畅的自然语言问题。问题评价阶段有人工评价和自动评价两种方式。人工评价是以人工标注的方式对问题进行打分来评判问题转写质量。自动评价是利用机器对转写的问题进行分类,丢掉不满足要求的数据。
100.本发明实施例,经过问题生成,问题转写和问题评价三个阶段可得到问题答案数据集,再加上提问对象库,便得到了一个问答数据集,能够满足复杂推理问答任务的需求,因此,本实施例的问答数据集的生成方案也可以称为构建复杂推理问答数据集的通用框架,基于此,构建了一个大规模的复杂推理问答数据集。
101.该数据集包含了问题,对应的推理程序、sparql语句和答案四部分组成。该数据集至少包含117970个高质量自然语言问题,实施中,可以将其按照 8:1:1 的比例划分为训练集、验证集和测试集,以便对支持的问答模型进行实验。
102.表1 问答模型在复杂推理问答数据集与已有数据集的对比
本实施例中,问答模型基于t5实现。在表1中,对比了问答模型在已有数据集和复杂推理问答数据集上的表现。在已有的数据集中,选取metaqa和webqsp这两个标准的知识库问答的数据集,作为目前知识库问答领域比较通用的数据集的代表。另外,还构造了复杂推理问答数据集的子集,即从训练集中随机选2998条作为实际上的训练集,来实现与训练集数量为2998的webqsp进行更加公平的对照。采用基于t5的问答模型在四个数据集上进行了实验。从表1的实验结果中可以看出,基于t5的问答模型的性能在“复杂推理问答数据集-2998”要大幅度低于webqsp数据集,在“复杂推理问答数据集”要大幅度低于metaqa数据集,表明本发明生成的复杂推理问答数据集的问题难度更高,更加具有挑战性,质量更高。此外,已有的数据集表现较差的另一个原因是,它们都是专门为关系型知识设计的,对于属性型知识和修饰型知识的处理能力较差。已有的数据集大多只考虑关系型知识,基于这些数据集开发的模型也天然具有局限性。相比之下,本发明提出的复杂推理问答数据集的知识类型更加全面,将有利于对具备全面推理能力模型的研究。
103.在表2中,展示了复杂推理问答数据集对模型各方面的能力进行细粒度的全面评价,根据问题对应的推理程序对问题涉及到的推理能力进行更加细致的划分,具体包括但不限于以下7类:多跳问题;包含修饰型知识的条件的问题;涉及属性比较的问题;包含逻辑操作(例如集合取交集或并集)的问题;计数类问题,以数字为答案验证类问题,以“yes”/“no”为答案;零样本问题,即测试问题的答案没有在训练集中出现过。这7类问题之间可以重叠,并不互斥,如一个包含修饰型知识的条件的计数类问题就同时属于包含修饰型知识的条件的问题和计数类的问题。根据这样的划分,可以对问答模型的推理能力进行全面的评价,而以往的数据集只能评测模型的整体水平,或者根据问题涉及的跳数进行评测。
104.表2 复杂推理问答数据集对模型各方面的能力进行细粒度的全面评价
图2是本发明提供的问答数据集生成方法的流程示意图。
105.如图2所示,本实施例提供一种问答数据集生成方法,包括:步骤201、获取元素描述策略库和提问策略库;元素描述策略库包含m种描述策略的元素描述模板;提问策略库包含n种提问策略的问题模板,问题模板中包含第一占位符,m和n为正整数;步骤202、针对每种问题模板,从提问对象库中选择与第一占位符对应的若干目标元素,基于m种元素描述模板,生成目标元素的m个元素描述信息,将若干目标元素的m个元素描述信息依次替换问题模板中对应的第一占位符,以生成多个第一问题;步骤203、基于第一问题中具有别名的元素,将第一问题转写成第二问题,并通过生成第二问题的释义,将第二问题转写成第三问题;步骤204、基于所有第三问题及对应的目标元素,生成问答数据集。
106.基于以上实施例,基于第一问题中具有别名的元素,将第一问题转写成第二问题,包括:针对第一问题中具有别名的所有元素,基于每个元素的别名集合,将各元素的别名进行排列组合,得到多个别名组合;针对每个别名组合,将别名组合形成一个多元组,并将多元组输入至补全模型,得到补全模型输出的第二问题,补全模型用于将多元组中的各元素的别名补全成句子,以作为第二问题。
107.基于以上实施例,通过生成第二问题的释义,将第二问题转写成第三问题,包括:将第二问题输入至释义生成模型,得到释义生成模型输出的第三问题,释义生成模型是基于第二问题样本和第三问题样本利用预训练语言模型进行训练得到的。
108.基于以上实施例,基于所有第三问题及对应的目标元素,生成问答数据集,包括:针对每个第三问题,计算第三问题的向量表示与对应的第一问题的向量表示的相似度,作为第三问题的评分,若第三问题的评分大于或者等于预设评分,确定第三问题与对应的第一问题的语义一致,基于语义一致的所有第三问题及对应的目标元素,生成问答数据集;或者,针对每个第三问题,接收输入的第三问题的多个评价信息,若第三问题的多个评价信息满足预设条件,确定第三问题与对应的第一问题的语义一致,基于语义一致的所有第三问题及对应的目标元素,生成问答数据集。
109.基于以上实施例,问题模板中还包括第二占位符;本实施例的方法还包括:从提问对象库中选择与第二占位符对应的若干元素内容;将若干目标元素的m个元素描述信息依次替换问题模板中对应的第一占位符,以生成多个第一问题,包括:将若干目标元素的m个元素描述信息依次替换问题模板中对应的第一占位符,以及将若干目标元素内容依次替换问题模板中对应的第二占位符,以生成多个第一问题。
110.基于以上实施例,还包括:基于第一问题对应的提问策略和描述策略所对应的推理函数、目标元素和目标元素的元素描述信息,生成第三问题的推理程序,第三问题的推理程序表征求解第三问题的
答案的推理过程;基于所有第三问题及对应的目标元素,生成问答数据集,包括:基于所有第三问题及对应的推理程序和目标元素,生成问答数据集。
111.本实施例提供的问答数据集生成方法与上文描述的问答方法可相互对应参照,此处不做赘述。
112.下面对本发明提供的问答装置进行描述,下文描述的问答装置与上文描述的问答方法可相互对应参照。
113.如图3所示,本实施例提供的一种问答装置,包括:获取模块301,用于获取待回答问题;问答模块302,用于将待回答问题输入至问答模型,得到待回答问题的答案;问答模型是基于问答数据集得到的,问答数据集是通过如下方式得到的:获取元素描述策略库和提问策略库;元素描述策略库包含m种描述策略的元素描述模板;提问策略库包含n种提问策略的问题模板,问题模板中包含第一占位符,m和n为正整数;针对每种问题模板,从提问对象库中选择与第一占位符对应的若干目标元素,基于m种元素描述模板,生成目标元素的m个元素描述信息,将若干目标元素的m个元素描述信息依次替换问题模板中对应的第一占位符,以生成多个第一问题;基于第一问题中具有别名的元素,将第一问题转写成第二问题,并通过生成第二问题的释义,将第二问题转写成第三问题;基于所有第三问题及对应的目标元素,生成问答数据集。
114.基于以上实施例,问答模块302,具体用于:针对第一问题中具有别名的所有元素,基于每个元素的别名集合,将各元素的别名进行排列组合,得到多个别名组合;针对每个别名组合,将别名组合形成一个多元组,并将多元组输入至补全模型,得到补全模型输出的第二问题,补全模型用于将多元组中的各元素的别名补全成句子,以作为第二问题。
115.基于以上实施例,问答模块302,具体用于:将第二问题输入至释义生成模型,得到释义生成模型输出的第三问题,释义生成模型是基于第二问题样本和第三问题样本利用预训练语言模型进行训练得到的。
116.基于以上实施例,问答模块302,具体用于:针对每个第三问题,计算第三问题的向量表示与对应的第一问题的向量表示的相似度,作为第三问题的评分,若第三问题的评分大于或者等于预设评分,确定第三问题与对应的第一问题的语义一致,基于语义一致的所有第三问题及对应的目标元素,生成问答数据集;或者,针对每个第三问题,接收输入的第三问题的多个评价信息,若第三问题的多个评价信息满足预设条件,确定第三问题与对应的第一问题的语义一致,基于语义一致的所有第三问题及对应的目标元素,生成问答数据集。
117.基于以上实施例,问题模板中还包括第二占位符;问答模块302,还用于:
从提问对象库中选择与第二占位符对应的若干目标元素内容;将若干目标元素的m个元素描述信息依次替换问题模板中对应的第一占位符,以生成多个第一问题,包括:将若干目标元素的m个元素描述信息依次替换问题模板中对应的第一占位符,以及将若干目标元素内容依次替换问题模板中对应的第二占位符,以生成多个第一问题。
118.问答模块302,还用于:基于第一问题对应的提问策略和描述策略所对应的推理函数、目标元素和目标元素的元素描述信息,生成第三问题的推理程序,第三问题的推理程序表征求解第三问题的答案的推理过程;基于所有第三问题及对应的推理程序和目标元素,生成问答数据集。
119.下面对本发明提供的问答数据集生成装置进行描述,下文描述的问答数据集生成装置与上文描述的问答数据集生成方法可相互对应参照。
120.如图4所示,本实施例提供的一种问答数据集生成装置,包括:策略获取模块401,用于获取元素描述策略库和提问策略库;元素描述策略库包含m种描述策略的元素描述模板;提问策略库包含n种提问策略的问题模板,问题模板中包含第一占位符,m和n为正整数;问题生成模块402,用于针对每种问题模板,从提问对象库中选择与第一占位符对应的若干目标元素,基于m种元素描述模板,生成目标元素的m个元素描述信息,将若干目标元素的m个元素描述信息依次替换问题模板中对应的第一占位符,以生成多个第一问题;问题转写模块403,用于基于第一问题中具有别名的元素,将第一问题转写成第二问题,并通过生成第二问题的释义,将第二问题转写成第三问题;数据集生成模块404,用于基于所有第三问题及对应的目标元素,生成问答数据集。
121.基于以上实施例,问题转写模块403,具体用于:针对第一问题中具有别名的所有元素,基于每个元素的别名集合,将各元素的别名进行排列组合,得到多个别名组合;针对每个别名组合,将别名组合形成一个多元组,并将多元组输入至补全模型,得到补全模型输出的第二问题,补全模型用于将多元组中的各元素的别名补全成句子,以作为第二问题。
122.基于以上实施例,问题转写模块403,具体用于:将第二问题输入至释义生成模型,得到释义生成模型输出的第三问题,释义生成模型是基于第二问题样本和第三问题样本利用预训练语言模型进行训练得到的。
123.基于以上实施例,数据集生成模块404,具体用于:针对每个第三问题,计算第三问题的向量表示与对应的第一问题的向量表示的相似度,作为第三问题的评分,若第三问题的评分大于或者等于预设评分,确定第三问题与对应的第一问题的语义一致,基于语义一致的所有第三问题及对应的目标元素,生成问答数据集;或者,针对每个第三问题,接收输入的第三问题的多个评价信息,若第三问题的多个评价信息满足预设条件,确定第三问题与对应的第一问题的语义一致,基于语义一致的
所有第三问题及对应的目标元素,生成问答数据集。
124.基于以上实施例,问题模板中还包括第二占位符;问题生成模块402,具体用于:从提问对象库中选择与第二占位符对应的若干元素内容;将若干目标元素的m个元素描述信息依次替换问题模板中对应的第一占位符,以及将若干目标元素内容依次替换问题模板中对应的第二占位符,以生成多个第一问题。
125.问题生成模块402,还用于:基于第一问题对应的提问策略和描述策略所对应的推理函数、目标元素和目标元素的元素描述信息,生成第三问题的推理程序,第三问题的推理程序表征求解第三问题的答案的推理过程;数据集生成模块404,具体用于基于所有第三问题及对应的推理程序和目标元素,生成问答数据集。
126.图5示例了一种电子设备的实体结构示意图,如图5所示,该电子设备可以包括:处理器(processor)510、通信接口(communications interface)520、存储器(memory)530和通信总线540,其中,处理器510,通信接口520,存储器530通过通信总线540完成相互间的通信。处理器510可以调用存储器530中的逻辑指令,以执行问答方法,该方法包括:获取待回答问题,将待回答问题输入至问答模型,得到待回答问题的答案;问答模型是基于问答数据集得到的,问答数据集是通过如下方式得到的:获取元素描述策略库和提问策略库;元素描述策略库包含m种描述策略的元素描述模板;提问策略库包含n种提问策略的问题模板,问题模板中包含第一占位符,m和n为正整数;针对每种问题模板,从提问对象库中选择与第一占位符对应的若干目标元素,基于m种元素描述模板,生成目标元素的m个元素描述信息,将若干目标元素的m个元素描述信息依次替换问题模板中对应的第一占位符,以生成多个第一问题;基于第一问题中具有别名的元素,将第一问题转写成第二问题,并通过生成第二问题的释义,将第二问题转写成第三问题;基于所有第三问题及对应的目标元素,生成问答数据集;或者执行问答数据集生成方法,该方法包括:获取元素描述策略库和提问策略库;元素描述策略库包含m种描述策略的元素描述模板;提问策略库包含n种提问策略的问题模板,问题模板中包含第一占位符,m和n为正整数;针对每种问题模板,从提问对象库中选择与第一占位符对应的若干目标元素,基于m种元素描述模板,生成目标元素的m个元素描述信息,将若干目标元素的m个元素描述信息依次替换问题模板中对应的第一占位符,以生成多个第一问题;基于第一问题中具有别名的元素,将第一问题转写成第二问题,并通过生成第二问题的释义,将第二问题转写成第三问题;基于所有第三问题及对应的目标元素,生成问答数据集。
127.此外,上述的存储器530中的逻辑指令可以通过软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以
软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(rom,read-only memory)、随机存取存储器(ram,random access memory)、磁碟或者光盘等各种可以存储程序代码的介质。
128.另一方面,本发明还提供一种计算机程序产品,计算机程序产品包括计算机程序,计算机程序可存储在非暂态计算机可读存储介质上,计算机程序被处理器执行时,计算机能够执行上述各方法所提供的问答方法,该方法包括:获取待回答问题,将待回答问题输入至问答模型,得到待回答问题的答案;问答模型是基于问答数据集得到的,问答数据集是通过如下方式得到的:获取元素描述策略库和提问策略库;元素描述策略库包含m种描述策略的元素描述模板;提问策略库包含n种提问策略的问题模板,问题模板中包含第一占位符,m和n为正整数;针对每种问题模板,从提问对象库中选择与第一占位符对应的若干目标元素,基于m种元素描述模板,生成目标元素的m个元素描述信息,将若干目标元素的m个元素描述信息依次替换问题模板中对应的第一占位符,以生成多个第一问题;基于第一问题中具有别名的元素,将第一问题转写成第二问题,并通过生成第二问题的释义,将第二问题转写成第三问题;基于所有第三问题及对应的目标元素,生成问答数据集;或者,执行上述各方法所提供的问答数据集生成方法,该方法包括:获取元素描述策略库和提问策略库;元素描述策略库包含m种描述策略的元素描述模板;提问策略库包含n种提问策略的问题模板,问题模板中包含第一占位符,m和n为正整数;针对每种问题模板,从提问对象库中选择与第一占位符对应的若干目标元素,基于m种元素描述模板,生成目标元素的m个元素描述信息,将若干目标元素的m个元素描述信息依次替换问题模板中对应的第一占位符,以生成多个第一问题;基于第一问题中具有别名的元素,将第一问题转写成第二问题,并通过生成第二问题的释义,将第二问题转写成第三问题;基于所有第三问题及对应的目标元素,生成问答数据集。
129.又一方面,本发明还提供一种非暂态计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现以执行上述各方法提供的问答方法,该方法包括:获取待回答问题,将待回答问题输入至问答模型,得到待回答问题的答案;问答模型是基于问答数据集得到的,问答数据集是通过如下方式得到的:获取元素描述策略库和提问策略库;元素描述策略库包含m种描述策略的元素描述模板;提问策略库包含n种提问策略的问题模板,问题模板中包含第一占位符,m和n为正整数;针对每种问题模板,从提问对象库中选择与第一占位符对应的若干目标元素,基于m种元素描述模板,生成目标元素的m个元素描述信息,将若干目标元素的m个元素描述信息依次替换问题模板中对应的第一占位符,以生成多个第一问题;基于第一问题中具有别名的元素,将第一问题转写成第二问题,并通过生成第二
问题的释义,将第二问题转写成第三问题;基于所有第三问题及对应的目标元素,生成问答数据集;或者,执行上述各方法所提供的问答数据集生成方法,该方法包括:获取元素描述策略库和提问策略库;元素描述策略库包含m种描述策略的元素描述模板;提问策略库包含n种提问策略的问题模板,问题模板中包含第一占位符,m和n为正整数;针对每种问题模板,从提问对象库中选择与第一占位符对应的若干目标元素,基于m种元素描述模板,生成目标元素的m个元素描述信息,将若干目标元素的m个元素描述信息依次替换问题模板中对应的第一占位符,以生成多个第一问题;基于第一问题中具有别名的元素,将第一问题转写成第二问题,并通过生成第二问题的释义,将第二问题转写成第三问题;基于所有第三问题及对应的目标元素,生成问答数据集。
130.以上所描述的装置实施例仅仅是示意性的,其中作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。
131.通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如rom/ram、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施例或者实施例的某些部分所述的方法。
132.最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。