一种文本信息预测模型的训练方法、装置及设备
技术领域
本说明书实施例涉及信息技术领域,尤其涉及一种文本信息预测模型的训练方法、装置及设备。
背景技术
在机器阅读理解中,用户可以输入一段非结构化文本(包括合同、使用说明以及帮助说明等等)及一个问题,机器自动在阅读理解的基础上,从文本中抽取信息来回答该问题。
传统的信息抽取中,一般基于预设规则和序列进行。以抽取合同中的信息为例,基于规则的方法会编写类似“甲方:A公司”这样的规则,在用户在输入“甲方是谁”和合同全文之后,从合同全文中匹配出现在“甲方:”后面的公司名(A公司),作为甲方公司。在这种方式下,对规则的覆盖程度要求很高,并且后期难以对规则进行维护。由于合同的写法存在多样性,很难用规则完整的覆盖所有情况。以及,如果在甲方出现在段首,而公司名出现在段尾,同时存在其他公司的干扰,则很难正确抽取。
基于此,需要一种更便利的文本信息预测模型,以得到准确率更高的文本信息预测模型。
发明内容
针对现有信息抽取中规则难以维护以及准确率太低的问题,为实现更便利以及准确的信息抽取方案,第一方面,本说明书实施例提供一种文本信息预测模型的训练方法,包括:
获取训练样本集合,每条训练样本中包括文本内容、问题文本和真实答案标记序列,所述文本内容中包含对问题和答案相关内容的每个字符的标记;
针对任一被选取的训练样本,根据被选取的训练样本中的文本内容,生成文本全文表征向量,以及,根据被选取的训练样本中的问题文本,生成问题表征向量;
根据所述文本全文表征向量和问题表征向量生成合并向量,作为被选取的训练样本的特征值,所述真实答案标记序列作为被选取的训练样本的标签值,采用有监督学习算法对训练样本集合进行训练,得到目标预测模型;
所述目标预测模型以根据文本全文表征向量和问题表征向量生成的合并向量作为输入值,以预测答案标记序列作为输出值,预测答案标记序列中每个标记对应一个字符。
第二方面,本说明书实施例提供一种基于上述文本信息预测模型的信息预测方法,包括:
获取问题文本和包含问题的答案的文本内容;
根据所述问题文本生成问题表征向量,以及,根据所述文本内容生成文本全文表征向量;
根据文本全文表征向量和问题表征向量生成合并向量,作为所述文本信息预测模型的输入特征值,以使所述文本信息预测模型确定预测答案标记序列,并解码所述预测答案标记序列得到预测答案。
与第一方面对应的,本说明书实施例还提供一种文本信息预测模型的训练装置,包括:
获取模块,获取训练样本集合,每条训练样本中包括文本内容、问题文本和真实答案标记序列,所述文本内容中包含对问题和答案相关内容的每个字符的标记;
向量生成模块,针对任一被选取的训练样本,根据被选取的训练样本中的文本内容,生成文本全文表征向量,以及,根据被选取的训练样本中的问题文本,生成问题表征向量;
训练模块,根据所述文本全文表征向量和问题表征向量生成合并向量,作为被选取的训练样本的特征值,所述真实答案标记序列作为被选取的训练样本的标签值,采用有监督学习算法对训练样本集合进行训练,得到目标预测模型;
所述目标预测模型以根据文本全文表征向量和问题表征向量生成的合并向量作为输入值,以预测答案标记序列作为输出值,预测答案标记序列中每个标记对应一个字符。
与第二方面对应的,本说明书实施例还提供一种基于上述文本信息预测模型的信息预测装置,包括:
获取模块,获取问题文本和包含问题的答案的文本内容;
向量生成模块,根据所述问题文本生成问题表征向量,以及,根据所述文本内容生成文本全文表征向量;
预测模块,根据文本全文表征向量和问题表征向量生成合并向量,作为所述文本信息预测模型的输入特征值,以使所述文本信息预测模型确定预测答案标记序列,并解码所述预测答案标记序列得到预测答案。
本说明书实施例所提供的方案,使用机器阅读理解技术,基于文本内容和答案本身的共同特征进行模型训练,得到目标模型。使用该模型时,只需输入问题文本和文本内容,即可从文本内容中预测得到该问题的答案,输出的答案不受文本内容中关于问题的内容部分的长度的限制,且不需要人工的规则维护,更为便利,准确度更高。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本说明书实施例。
此外,本说明书实施例中的任一实施例并不需要达到上述的全部效果。
附图说明
为了更清楚地说明本说明书实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本说明书实施例中记载的一些实施例,对于本领域普通技术人员来讲,还可以根据这些附图获得其他的附图。
图1是本说明书实施例提供的一种文本信息预测模型的训练方法的流程示意图;
图2为本说明书实施例所提供的模型训练的整体架构的示意图;
图3为本说明书实施例所提供的信息预测方法的流程示意图;
图4是本说明书实施例提供的一种文本信息预测模型的训练装置的结构示意图;
图5是本说明书实施例提供的一种信息预测装置的结构示意图;
图6是用于配置本说明书实施例方法的一种设备的结构示意图。
具体实施方式
为了使本领域技术人员更好地理解本说明书实施例中的技术方案,下面将结合本说明书实施例中的附图,对本说明书实施例中的技术方案进行详细地描述,显然,所描述的实施例仅仅是本说明书的一部分实施例,而不是全部的实施例。基于本说明书中的实施例,本领域普通技术人员所获得的所有其他实施例,都应当属于保护的范围。
现实中存在大量非结构化或者半结构化的文本内容,例如合同、使用说明、使用帮助等等,这些文本常常存在篇幅较长、语法复杂、内容繁多等特点,用户想获取这些文本内容中的信息点经常需要通读全文,花费大量的时间,并且对用户的阅读理解能力也存在一定要求。例如,用户想获取合同中的赔付条件,就需要花大量时间对合同全文进行阅读,才能定位赔付条件在合同中出现的位置。
传统的信息抽取主要分为基于规则的方法进行。以抽取合同中的甲方信息为例,基于规则的方法会编写类似“甲方:A公司”这样的规则,去合同全文中匹配出现在“甲方:”后面的公司名(A公司),作为甲方公司。但是由于合同的写法存在多样性,很难用规则完整的覆盖所有情况,如果另一份合同中变为“甲方(公司):A公司”,那前述的规则就无法进行匹配了。而且有时信息点长度很长,比如“赔付条件”,现有技术中并不能很好的进行抽取。在这种方案下,需要人工长期对规则进行维护。
基于此,本说明书实施例提供一种文本信息预测模型的训练方案,以得到一种文本信息预测模型,实现更便利和准确的信息预测。需要说明的是,本说明书中的“预测”指的是根据用户提供的问题,从文本内容(可以是用户输入的文本,也可以是第三方提供给用户选择的文本)中得出有关该问题的答案。
以下结合附图,详细说明本说明书各实施例提供的技术方案。第一方面,如图1所示,图1是本说明书实施例提供的一种文本信息预测模型的训练方法的流程示意图,该流程具体包括如下步骤:
S101,获取训练样本集合,每条训练样本中包括文本内容、问题文本和真实答案标记序列,所述文本内容中包含对问题和答案相关内容的每个字符的标记。
如前所述,在本说明书实施例所提供的方案中,文本内容可以是合同、使用说明文本、使用帮助文本等等。容易理解,在训练模型之前,通常可以基于具体的文本内容预设一批常见的问题。所有的问题在同一份文本内容里均有对应的真实答案,同时,同一问题在不同的文本内容中真实答案经常并不相同。
例如,如果目标文本内容是合同,预设的问题可以是诸如“甲方是谁”、“乙方是谁”或者“赔偿金额是多少”等等。那么,在合同A中,其真实答案可能分别是“X公司”、“Y公司”、“五万元”等等,在合同B中,对于“甲方是谁”的真实答案则可能是“Z公司”。
因此,在训练样本中,可以将真实答案事先提取出来,并进行记号标注,得到真实答案标记序列作为训练样本的标签。同时,在训练样本中,还需要对文本内容中问题和答案相关内容的每个字符进行标记。
对于一个问题而言,在同一份文本内容中可能有多处关于该问题的相关答案,则可以对文本内容中每个问题和答案相关内容的字符均进行标记。问题和答案相关内容问题的上下文中(例如,同一句话中,或者同一段话中)应当包含有问题信息。如果仅仅出现了答案内容,而上下文没有出现问题信息时,无需对此处的答案内容进行标记。
续前例,当训练样本中的问题为“甲方是谁”时,此时的真实答案就是“X公司”,因此,可以首先确定那些说明了“X公司”是甲方的内容,对这部分内容中的“X公司”进行标记,而无需对于所有的“X公司”进行标记。标记方式可以自行设定,例如可以是对待标记的“X公司”的字符给与标记“X/B公/I司/I”。
换言之,在训练样本中,所述“问题和答案相关内容”和“真实答案”具有相同的字符,对“问题和答案相关内容”进行标记得到的标记序列也和“真实答案标记序列”相同,但并非文本内容中所有的真实答案相同的字符都需要进行标记。
在本说明书实施例中,一份训练样本中包含一个问题、一份文本内容以及对于在该文本内容中真实答案的标记序列。同一份文本内容可以结合不同的问题文本作为不同的训练样本,当然,此时的真实答案标记序列也随之不同。假设有M份文本内容,N份问题文本,此时理论上可以产生M*N份训练样本,作为训练样本集合。
S103,针对任一被选取的训练样本,根据被选取的训练样本中的文本内容,生成文本全文表征向量,以及,根据被选取的训练样本中的问题文本,生成问题表征向量。
具体而言,可以对文本内容全文/问题文本的每一个字符生成一个字符编码向量,最后合成一个文本全文表征向量/问题表征向量。形式上,文本全文表征向量/问题表征向量是一个稠密的实数值向量,稠密即指向量中元素值是实数并且不会出现大量的0。
例如,可以采用诸如双向长短期记忆(Bidirectional Long Short-Term Memory,Bi-LSTM)模型或者基于双向门限递归单元(Bidirectional Gated Recurrent Unit,Bi-GRU)模型对文本内容全文进行编码,以及对于问题文本全文进行编码。
编码得到的文本全文表征向量表征了文本内容的全文语义信息,而问题表征向量则表征了问题文本的语义信息。采用向量表征语义信息时,可以认为当两个向量在空间上距离很近时,那么它们对应的两个文本也很相似。
S105,根据所述文本全文表征向量和问题表征向量生成合并向量,作为被选取的训练样本的特征值,所述真实答案标记序列作为被选取的训练样本的标签值,采用有监督学习算法对训练样本集合进行训练,得到目标预测模型。
生成合并向量的方式可以是直接拼接所述文本全文表征向量和问题表征向量,生成合并向量。也可以是采用另一神经网络模型,将文本全文表征向量和问题表征向量作为一个全连接层的输入,生成合并向量。
生成的合并向量可以认为是包含了全文和问题的信息,即可以作为训练样本的特征值,模型预测文本内容每个字符的标记是什么,而标签则是真实答案标记序列。在有监督训练的过程中,模型有一些参数需要训练学习,训练过程即为根据计算得到的损失函数(预测答案标记序列和真实答案标记序列来确定)来不断调整模型参数的值的过程。如图2所示,图2为本说明书实施例所提供的模型训练的整体架构的示意图。在图2中,图中的小框即为根据输入的合并向量来预测每个字符的标记应该是什么。当损失函数低于一定的预设值时(表征了预测答案和真实答案的差异已经达到可接受的范围),模型即迭代完毕,得到可用的目标预测模型。
在使用可用的目标预测模型时,可以根据文本全文表征向量和问题表征向量生成的合并向量作为输入值,以预测答案标记序列作为输出值,预测答案标记序列中每个标记对应一个字符,具体而言可以对标记采用相应的解码方式即可得到对应的字符。例如,提取出预设的标记所对应的字符,该预设标记在训练阶段用于标记训练样本中的问题和答案相关内容。在这种方式下,得到的预测答案可能是多个,则输出多个答案进行排序即可。
本说明书实施例所提供的方案,使用机器阅读理解技术,基于文本内容和答案本身的共同特征进行模型训练,得到目标模型。使用该模型时,只需输入问题文本和文本内容,即可从文本内容中预测得到该问题的答案,输出的答案不受文本内容中关于问题的内容部分的长度的限制,且不需要人工的规则维护,更为便利,准确度更高。
在一种实施方式下,对于训练样本中的文本内容进行标记时,可以采用如下方式:确定训练样本的文本内容中关于问题和答案相关内容以及其它内容;用不同的标记记号分别标记所述问题和答案相关内容的起始字符、中间字符、结尾字符和其它内容的字符。
例如,对于“甲方,本合同中的甲方为A科技有限公司”。那么,此时一种可以标注的方式为:“甲/O方/O,/O本/O合/O同/O中/O的/O甲/O方/O为/OA/B科/I技/I有/I限/I公/E司/E”。这里O代表其它内容,B代表甲方公司名开头,I代表甲方公司名中间,E代表公司名结尾,文本中的标点也同样进行了标记。开头字符、结尾字符的数量可以根据实际情形进行确定。采用上述的标记方式可以更明确的标识出公司名,有利于模型训练的速度。
在一种具体的实施方式中,还可以先将训练样本中的文本内容,按顺序分成多个段落内容,然后采用前述的Bi-LSTM模型或者Bi-GRU模型,首先得到每个段落的段落表征向量,然后按照各段落的顺序进行组合,进一步采用Bi-LSTM模型编码得到文本全文表征向量。则此时的文本全文表征向量中还包含了个段落之间的段落结构信息。如图2中所示。
在一种实施方式下,对训练样本集合进行训练时,还可以根据所述文本全文表征向量和问题表征向量,生成符合语义规则的预测答案标记序列;根据所述符合语义规则的预测答案标记序列和真实答案标记序列的差异,确定预测模型损失函数的损失值,以进行模型训练。
例如,在使用O标注其它内容,使用I代表甲方公司名中间,E代表公司名结尾时,可以知道,在预测答案时,O后面不会出现I或者E(即,公司名的中间字符或者结尾字符不会出现在其它内容的字符后边)。因此,可以在预测答案的过程中考虑进去这一点,在模型训练中加入约束算法,使得模型可以学习和文本内容相关的语义规则,使得预测答案更符合实际应用场景,加速模型的训练,提高预测的准确度。在实际应用中即可以采用在模型训练中加入一层条件随机场算法(Conditional Random Field,CRF)进行条件约束,如图2中所示。
第二方面,在训练得到可用的目标文本信息预测模型以后,本说明书实施例还提供一种基于上述文本信息预测模型的信息预测方法,如图3所示,图3为本说明书实施例所提供的信息预测方法的流程示意图,包括:
S301,获取问题文本和包含问题的答案的文本内容;
S303,根据所述问题文本生成问题表征向量,以及,根据所述文本内容生成文本全文表征向量;
S305,根据文本全文表征向量和问题表征向量生成合并向量,作为所述文本信息预测模型的输入特征值,以使所述文本信息预测模型确定预测答案标记序列,并解码所述预测答案标记序列得到预测答案。
与第一方面对应的,本说明书实施例还提供一种文本信息预测模型的训练装置,如图4所示,图4是本说明书实施例提供的一种文本信息预测模型的训练装置的结构示意图,包括:
获取模块401,获取训练样本集合,每条训练样本中包括文本内容、问题文本和真实答案标记序列,所述文本内容中包含对问题和答案相关内容的每个字符的标记;
向量生成模块403,针对任一被选取的训练样本,根据被选取的训练样本中的文本内容,生成文本全文表征向量,以及,根据被选取的训练样本中的问题文本,生成问题表征向量;
训练模块405,根据所述文本全文表征向量和问题表征向量生成合并向量,作为被选取的训练样本的特征值,所述真实答案标记序列作为被选取的训练样本的标签值,采用有监督学习算法对训练样本集合进行训练,得到目标预测模型;
所述目标预测模型以根据文本全文表征向量和问题表征向量生成的合并向量作为输入值,以预测答案标记序列作为输出值,预测答案标记序列中每个标记对应一个字符。
进一步地,所述装置还包括标记模块407,确定训练样本的文本内容中关于问题和答案相关内容以及其它内容;用不同的标记记号分别标记所述问题和答案相关内容的起始字符、中间字符、结尾字符和其它内容的字符。
进一步地,所述向量生成模块403,将所述被选取的训练样本中的文本内容,按顺序分成多个段落内容;编码每个段落内容,生成多个段落表征向量;根据所述多个段落表征向量及其顺序,生成文本全文表征向量。
进一步地,所述向量生成模块403,拼接所述文本全文表征向量和问题表征向量,生成合并向量;或者,将所述文本全文表征向量和问题表征向量作为一个全连接层的输入,生成合并向量。
进一步地,所述训练模块405,根据所述文本全文表征向量和问题表征向量,生成符合语义规则的预测答案标记序列;根据所述符合语义规则的预测答案标记序列和真实答案标记序列的差异,确定预测模型损失函数的损失值,以进行模型训练。
与第二方面对应的,本说明书实施例还提供一种基于上述文本信息预测模型的信息预测装置,如图5所示,图5是本说明书实施例提供的一种信息预测装置的结构示意图,包括:
获取模块501,获取问题文本和包含问题的答案的文本内容;
向量生成模块503,根据所述问题文本生成问题表征向量,以及,根据所述文本内容生成文本全文表征向量;
预测模块505,根据文本全文表征向量和问题表征向量生成合并向量,作为所述文本信息预测模型的输入特征值,以使所述文本信息预测模型确定预测答案标记序列,并解码所述预测答案标记序列得到预测答案。
与第一方面对应的,本说明书实施例还提供一种计算机设备,其至少包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其中,处理器执行所述程序时实现图1所示的文本信息预测模型的训练方法。
与第二方面对应的,本说明书实施例还提供另一种计算机设备,其至少包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其中,处理器执行所述程序时实现图3所示的信息预测方法。
图6示出了本说明书实施例所提供的一种更为具体的计算设备硬件结构示意图,该设备可以包括:处理器1010、存储器1020、输入/输出接口1030、通信接口1040和总线1050。其中处理器1010、存储器1020、输入/输出接口1030和通信接口1040通过总线1050实现彼此之间在设备内部的通信连接。
处理器1010可以采用通用的CPU(Central Processing Unit,中央处理器)、微处理器、应用专用集成电路(Application Specific Integrated Circuit,ASIC)、或者一个或多个集成电路等方式实现,用于执行相关程序,以实现本说明书实施例所提供的技术方案。
存储器1020可以采用ROM(Read Only Memory,只读存储器)、RAM(Random AccessMemory,随机存取存储器)、静态存储设备,动态存储设备等形式实现。存储器1020可以存储操作系统和其他应用程序,在通过软件或者固件来实现本说明书实施例所提供的技术方案时,相关的程序代码保存在存储器1020中,并由处理器1010来调用执行。
输入/输出接口1030用于连接输入/输出模块,以实现信息输入及输出。输入输出/模块可以作为组件配置在设备中(图中未示出),也可以外接于设备以提供相应功能。其中输入设备可以包括键盘、鼠标、触摸屏、麦克风、各类传感器等,输出设备可以包括显示器、扬声器、振动器、指示灯等。
通信接口1040用于连接通信模块(图中未示出),以实现本设备与其他设备的通信交互。其中通信模块可以通过有线方式(例如USB、网线等)实现通信,也可以通过无线方式(例如移动网络、WIFI、蓝牙等)实现通信。
总线1050包括一通路,在设备的各个组件(例如处理器1010、存储器1020、输入/输出接口1030和通信接口1040)之间传输信息。
需要说明的是,尽管上述设备仅示出了处理器1010、存储器1020、输入/输出接口1030、通信接口1040以及总线1050,但是在具体实施过程中,该设备还可以包括实现正常运行所必需的其他组件。此外,本领域的技术人员可以理解的是,上述设备中也可以仅包含实现本说明书实施例方案所必需的组件,而不必包含图中所示的全部组件。
与第一方面对应的,本说明书实施例还提供一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现图1所示的文本信息预测模型的训练方法。
与第二方面对应的,本说明书实施例还提供一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现图3所示的信息预测方法。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
通过以上的实施方式的描述可知,本领域的技术人员可以清楚地了解到本说明书实施例可借助软件加必需的通用硬件平台的方式来实现。基于这样的理解,本说明书实施例的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本说明书实施例各个实施例或者实施例的某些部分所述的方法。
上述实施例阐明的系统、方法、模块或单元,具体可以由计算机芯片或实体实现,或者由具有某种功能的产品来实现。一种典型的实现设备为计算机,计算机的具体形式可以是个人计算机、膝上型计算机、蜂窝电话、相机电话、智能电话、个人数字助理、媒体播放器、导航设备、电子邮件收发设备、游戏控制台、平板计算机、可穿戴设备或者这些设备中的任意几种设备的组合。
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于方法实施例而言,由于其基本相似于方法实施例,所以描述得比较简单,相关之处参见方法实施例的部分说明即可。以上所描述的方法实施例仅仅是示意性的,其中所述作为分离部件说明的模块可以是或者也可以不是物理上分开的,在实施本说明书实施例方案时可以把各模块的功能在同一个或多个软件和/或硬件中实现。也可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
以上所述仅是本说明书实施例的具体实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本说明书实施例原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本说明书实施例的保护范围。