一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

模型训练方法和装置、电子设备以及存储介质与流程

2021-12-17 21:38:00 来源:中国专利 TAG:


1.本公开涉及人工智能领域,尤其涉及自然语言处理、深度学习领域,具体涉及一种模型训练方法和装置、电子设备以及存储介质。


背景技术:

2.银行等企业需要将合同文档的关键信息抽取为标准结构化信息。为了实现合同文档关键信息的自动化抽取,可以基于序列标注模型进行自动化抽取。但是,实际场景中具有标注的合同文档的数量较少,用于训练序列标注模型的训练语料较少,导致序列标注模型性能受限。


技术实现要素:

3.本公开提供了一种模型训练方法和装置、电子设备以及存储介质。
4.根据本公开的第一方面,提供了一种模型训练方法,包括:构建初始训练语料;基于目标算法集合包含的算法对初始训练语料进行数据增强,得到目标训练语料,其中,目标算法集合是从多个算法集合中确定的,不同算法集合用于对初始训练语料中不同粒度的语料进行数据增强;基于目标训练语料对语言模型进行训练,得到序列标注模型,其中,语言模型是基于文本语料预先训练得到的。
5.根据本公开的第二方面,提供了一种模型训练装置,包括:语料构建模块,用于构建初始训练语料;数据增强模块,用于基于目标算法集合包含的算法对初始训练语料进行数据增强,得到目标训练语料,其中,目标算法集合是从多个算法集合中确定的,不同算法集合用于对初始训练语料中不同粒度的语料进行数据增强;模型训练模块,用于基于目标训练语料对语言模型进行训练,得到序列标注模型,其中,语言模型是基于文本语料预先训练得到的。
6.根据本公开的第三方面,提供了一种电子设备,包括:至少一个处理器;以及与至少一个处理器通信连接的存储器;其中,存储器存储有可被至少一个处理器执行的指令,指令被至少一个处理器执行,以使至少一个处理器能够执行第一方面描述的模型训练方法。
7.根据本公开的第四方面,提供了一种存储有计算机指令的非瞬时计算机可读存储介质,其中,计算机指令用于使计算机执行第一方面描述的模型训练方法。
8.根据本公开的第五方面,提供了一种计算机程序产品,包括计算机程序,计算机程序在被处理器执行时实现第一方面描述的模型训练方法。
9.通过本公开至少部分实施例,首先构建初始训练语料,然后从多个算法集合中确定目标算法集合,其中,不同算法集合用于对初始训练语料中不同粒度的语料进行数据增强,进一步基于目标算法集合包含的算法对初始训练语料进行数据增强,得到目标训练语料,最后基于目标训练语料对预训练得到的语言模型进行训练,得到序列标注模型,通过充分考虑实际处理情况,选择合适的目标算法集合进行数据增强,从而能够获取更多的标注样本,提升序列标注模型的性能,实现小样本场景下自动化抽取文本信息的目的。
10.应当理解,本部分所描述的内容并非旨在标识本公开的实施例的关键或重要特征,也不用于限制本公开的范围。本公开的其它特征将通过以下的说明书而变得容易理解。
附图说明
11.附图用于更好地理解本方案,不构成对本公开的限定。其中:
12.图1是根据本公开的合同文档关键信息抽取的示意图;
13.图2是根据本公开第一实施例的模型训练方法的流程图;
14.图3是根据本公开的数据增强方法的示意图;
15.图4是根据本公开的模型算法的示意图;
16.图5是根据本公开的序列标注模型的示意图;
17.图6是根据本公开的基于序列标注模型进行信息抽取方法的流程图;
18.图7是根据本公开的基于序列标注模型对合同文档进行信息抽取的示意图;
19.图8是根据本公开第二实施例的模型训练方法的流程图;
20.图9是根据本公开的模型训练装置的示意图;
21.图10是用来实现本公开实施例的模型训练方法的电子设备的框图。
具体实施方式
22.以下结合附图对本公开的示范性实施例做出说明,其中包括本公开实施例的各种细节以助于理解,应当将它们认为仅仅是示范性的。因此,本领域普通技术人员应当认识到,可以对这里描述的实施例做出各种改变和修改,而不会背离本公开的范围和精神。同样,为了清楚和简明,以下的描述中省略了对公知功能和结构的描述。
23.首先对本公开实施例中的技术名词或技术术语进行如下解释说明:
24.实体:具有特定属性集合的物体,可以根据信息抽取任务进行确定,例如,在金融场景中,实体可以是租赁成本、租赁时间等。
25.回译:将a语言的文本翻译为b语言,然后再次翻译为a语言。
26.三元组:可抽象表示为(s、p、o),其中,s和o分别表示两个实体,p表示s和o两个实体之间的关联关系。
27.为了实现合同文档关键信息的自动化抽取,相关技术中提供了如下解决方法:
28.方案1,采用人工抽取合同关键信息的方式,然而合同版式多样,内容较多,需要抽取的关键信息分布在不同的段落,因此,针对每种合同,需要培训一定数量的手工录入人员,提高抽取效率。但是,该方案工作繁重、枯燥,耗时耗力;
29.方案2,基于规则的信息抽取方式,通过正则表达式等规则,或者预先定义的模板,对合同文档进行匹配抽取出关键信息,例如,合同文档中,签约日期对应的值总是出现在关键词“签约日期:”之后。但是,该方案需要合同文档具有严格的书写格式,当合同文档书写格式多样的时候,需要编写大量的规则,编写与维护规则的工作较为繁琐;
30.方案3,基于序列标注模型的信息抽取方式,将信息抽取任务定义为命名实体识别任务,并且采用序列标注模型进行自动化抽取。但是,训练模型需要一定量的标注数据,在小样本场景下模型性能受限。
31.本公开实施例所提供的模型训练方法,可以适用于合同文档、法律文书、文献资料
等小样本场景下的文本信息抽取。该方法的执行主体可以是用户使用的电子设备(包括移动终端和计算机终端),也可以是服务器(包括本地服务器和云端服务器),但不仅限于此。
32.在本公开实施例中,以合同文档关键信息抽取的场景为例进行详细说明,如图1所示,可以对合同文档中的金额信息(即图1中方框中的信息)进行抽取,得到最终的信息抽取结果(如图1下方所示)。
33.需要说明的是,本实施例中的合同文档并不是针对某一特定用户的合同文档,并不能反映出某一特定用户的个人信息。
34.根据本公开的实施例,本公开提供了一种模型训练方法,图2是根据本公开第一实施例的模型训练方法的流程图,如图2所示,该流程包括如下步骤:
35.步骤s202,构建初始训练语料。
36.在一些实施例中,可以基于携带有标签的文本构建初始训练语料,具体处理过程可以是输入携带有标签的文本,以语句为单位进行切割,由于文本中包含大量与抽取任务无关内容,而且文本中并不是所有内容均进行过标注,为了减少初始训练语料中的噪声,可以先进行segment过滤,然后通过形态学特征(例如标点符号、空格、换行符等)进一步切分,去除长度较短的segment,形成初始训练语料。
37.以如图1所示的合同文档为例进行说明,以语句为单位进行切割后得到的语句如下:“第四条合同阶段4.1合同金额4.1.1本合同站点每年网元租赁费为32963.12(含税)”,“总租赁金额为131852.52元(大写:壹拾叁万壹仟捌佰伍拾贰元伍角贰分)”,以及“不含税总价120965.61元(大写:壹拾贰万零玖佰陆拾伍元陆角壹分)”等,然后进行segment过滤,过滤后的语句如下:“总租赁金额为131852.52元(大写:壹拾叁万壹仟捌佰伍拾贰元伍角贰分)”,最后通过形态学特征进行切分,最终得到的初始训练语料包括:“总租赁金额为131852.52元”,“大写:壹拾叁万壹仟捌佰伍拾贰元伍角贰分”。
38.步骤s204,基于目标算法集合包含的算法对初始训练语料进行数据增强,得到目标训练语料,其中,目标算法集合是从多个算法集合中确定的,不同算法集合用于对初始训练语料中不同粒度的语料进行数据增强。
39.目前自然语言处理领域中的数据增强算法通常聚焦于语句级别的分类任务,例如文本分类,在本公开实施例中将文本信息抽取任务转换为序列标注任务,其本质上是个token级别的分类任务,如果采用端到端的序列标注模型,其标注粒度为字级别,导致常用的数据增强算法不再适用。因此,在小样本场景下,本公开实施例可以采用适用于序列标注任务的数据增强策略。
40.不同的数据增强方法,其本身的语义损失程度、训练后模型的复杂度不同,为了满足不同场景下数据增强的需要,本公开实施例中提供了多种数据增强策略,并进一步基于处理语料的粒度,划分为多个算法集合。如图3所示,在一些实施例中,可以采用9种数据增强方法,并划分至3个算法集合,可选的,多个算法集合可以包括如下至少之一:语句构造算法集合、语义相似算法集合和关键词检索算法集合,其中,语句构造算法集合可以对语句粒度的语料进行数据增强,生成新语句;语义相似算法集合可以对词粒度的语料进行数据增强;关键词检索算法集合可以对实体粒度的语料进行数据增强。由于不同算法集合处理的语料的粒度不同,因此,不同算法集合的数据量、语义损失程度和复杂度不同。
41.语句构造算法集合用于基于初始训练语料中的语句,生成新语句,该算法不依赖
于外部资源,无需引入额外标注成本,而且该算法本身的语义损失程度较高、训练后模型的复杂度较低。
42.可选的,如图3所示,为了扩充目标训练语料的数据量,并确保目标训练语料能够覆盖更多可能性,语句构造算法集合可以进一步包括如下4种中的至少一种:随机打乱算法、上下文算法、字替换算法和实体替换算法。
43.其中,随机打乱算法用于将初始训练语料中的第一目标语句切分为多个部分,并随机对多个部分进行排序,得到新语句,其中,可以基于形态学特征对第一目标语句进行切割,得到多个segment。
44.上下文算法用于将初始训练语料中满足预设窗口大小的连续多个语句进行组合,得到新语句,其中,上述的预设窗口大小可以根据实际场景需要进行设定,例如,当预设窗口大小为3时,可以选取当前语句的前一句、当前语句以及当前语句的后一句组成新语句,使得序列标注模型能够跨语句的看到更多上下文,提升序列标注模型的性能。
45.字替换算法用于将初始训练语料中第二目标语句中的目标字替换为相同标签的替换字,得到新语句,其中,目标字基于第一预设概率确定,第一预设概率可以根据实际场景需要进行设定,例如,对于第二目标语句“总租赁金额为131852.52元”,以字为粒度,按照第一预设概率选中字“总、为、3、2”,并采用相同标签的字进行替换,生成的新语句为“全租赁金额是191852.57元”。
46.实体替换算法用于将初始训练语料中第三目标语句中的实体替换为相同标签的替换实体,得到新语句,例如,对于第三目标语句“总租赁金额为131852.52元”,以实体为粒度,选择实体“总租赁金额、131852.52元”,并选择相同标签的实体对其进行替换,生成的新语句为“全部租赁金额为4783.0元”。
47.语义相似算法集合用于对初始训练语料中的词进行替换,且替换后的词所在的语句与替换前的词所在的语句的语义相同,该方法依赖于外部资源,通过引入额外标注成本,可以提高目标训练样本的数据量,进而提升序列标注模型在目标任务上的性能。
48.可选的,如图3所示,为了扩充目标训练语料的数据量,并确保目标训练语料能够覆盖更多可能性,语义相似算法集合可以进一步包括如下4种中的至少一种:词变换算法、词向量算法、回译算法和模型算法。
49.其中,词变换算法用于将初始训练语料中的第一目标词替换为词表中语义和/或词性相同的第一替换词,其中,第一目标词基于第二预设概率和第一目标词所在语句的长度确定。上述的第二预设概率可以根据实际场景需要进行设定,用p表示,则当前语句中选中的词的个数为n=p*len(senetnce),其中,senetnce表示当前语句的长度,也即长文本选词较多,短文本选词较少。为了实现词变换,首先需要对当前语句进行分词,分词后若已标注的实体被切开,则需要将实体恢复。第一目标词在选择的过程中需要注意避免选择通用词。
50.需要说明的是,上述的词变换算法可以是同义词变换,对于第一目标词,可以从同义词表中选择同义词进行替换。由于同义词的词性可能不同,为了降低词变换算法的语义损失度,上述的词变换算法可以是同义词和同词性变换,对于第一目标词,可以从同词性词表和同义词表中选择同词性且同语义的词进行替换,也即,可以从同词性词表中选择同词性的第一词集合,同时从同义词表中选择同语义的第二词集合,然后获取第一词集合和第
二词集合中包含的相同的词,得到第二替换词。
51.词向量算法用于基于词向量确定初始训练语料中的第二目标词对应的第二替换词,并将第二目标词替换为第二替换词,其中,第二目标词与第二替换词的语义相同。与词变换算法相似,首先需要对当前语句进行分词,分词后若已标注的实体被切开,则需要将实体恢复。在一些实施例中,可以通过查询向量词表的方式确定第一目标词对应的词向量,然后匹配出向量词表中与该词向量相似度最大的词向量,进而确定第二替换词;在另一些实施例中,可以预先训练一个词向量处理模型,将第一目标词输入到该模型中,该模型的输出结果即为第二替换词。
52.需要说明的是,在语句分类任务中经常使用基于回译的数据增强方法,具体方案为将原始语句翻译成另一种语言,再翻译回来得到新样本,但是,由于语句分类任务的标签是语句级别的,而序列标注任务的标签是字级别的,如果将该方法应用到序列标注任务中,容易出现新翻译得到的语句无法进行标注的问题。可选的,为解决上述问题,在本公开实施例中,回译算法用于将初始训练语料中的已标注的实体进行回译处理,得到回译后的实体,并将已标注的实体替换为回译后的实体。例如,语句“邓紫棋演唱了片尾曲后会无期”,其中,已标注的实体为“邓紫棋”、“后会无期”,该语句分割为“邓紫棋演唱了片尾曲后会无期”,分割部分分别进行回译,得到新语句为“邓子琪唱了最后一首歌再也见不到了”,其中,回译后的实体变为“邓子琪”、“再也见不到了”,序列标注标签可以根据实体进行相应转换。
53.模型算法用于将初始训练语料中的第三目标词替换为掩码,利用语言模型对掩码所在的语句进行处理,得到掩码对应的第三替换词,并将第三目标词替换为第三替换词。在一些实施例中,在对当前语句进行分词,选词之后,可以将选中的第三目标词用[mask]替换,如图4所示,实心矩形框表示当前语句中的原始词,空心矩形表示第三目标词且已用[mask]替换,然后输入至语言模型中进行预测,空心椭圆表示语言模型中预测层的输出结果,语言模型中输出层可以输出第三替换词。
[0054]
需要说明的是,与传统的序列标注任务一样,本公开实施例中的初始训练语料中的实体存在被切开的问题,例如,“总租赁金额为131852.52元”,其中,实体“总租赁金额”可能会被误拆开为“总租赁金额”,即分词错误。为了解决上述问题,相关技术中提供的方案如下:基于切分错误的实体,增加相关的实体标注数据,但是这样会引入额外的标注成本,而且序列标注模型的收益不显著。可选的,在本公开实施例中,关键词检索算法集合用于基于初始训练语料中的目标实体,进行关键词搜索,直接将搜索结果作为目标训练语料,其中,对目标实体进行分词处理得到至少两个词(即目标实体会被切开,存在分词错误),实现了在不引入额外标注成本的情况下,通过添加相关的训练语料,优化了序列标注模型在目标任务上的性能。
[0055]
进一步地,关键词检索算法集合还用于利用序列标注模型对分词处理后的词进行处理,并基于序列标注模型的输出结果确定目标实体。因此,通过序列标注模型进行识别,可以提高确定目标实体的准确性。
[0056]
需要说明的是,采用不同算法集合对初始训练语料中不同粒度的语料进行数据增强,得到的目标训练语料的数据量和语义损失程度不同,而且训练得到的序列标注模型的复杂度也不同。如果简单的采用所有的算法集合进行数据增强,虽然可以获取数据量更多的目标训练语料,但是目标训练语料包含的噪声也较多,导致信息抽取过程的复杂度增加,
因此,在本公开实施例中,可以根据实际应用场景,充分考虑需要数据增强的数据量、能够接受的语义损失程度以及序列标注模型的复杂度,从多个算法集合中选择合适的数据增强算法,得到目标算法集合。
[0057]
在本公开实施例中,由于算法集合中往往包含有多个数据增强算法,为了确保能够得到数据量较大且噪声较少的目标训练语料,可以预先针对每个算法集合中的算法,设定被选中的概率,例如,如图3所示,随机打乱算法、上下文算法、字替换算法和实体替换算法的概率分别为0.2、0.2、0.3和0.3,词变换算法、词向量算法、回译算法和模型算法的概率分别为0.2、0.4、0.3和0.1。
[0058]
步骤s206,基于目标训练语料对语言模型进行训练,得到序列标注模型,其中,语言模型是基于文本语料预先训练得到的。
[0059]
上述步骤中的语言模型可以是预训练语言模型,是一种开源模型,可以基于大量无监督文本语料进行训练,包含有大量先验语义知识,从而在保证序列标注模型的性能的基础上,减少模型训练成本。
[0060]
端到端的序列标注模型通常将标签定义为“bio

class”,其中,b、i、o代表实体的开始字符、实体的其他字符、独立字符。以命名实体识别场景为例,实体类别定义为“人名、地名、机构名”,其端到端的识别模型的类别数量为7,如“o,b

人名,i

人名,b

地名,i

地名,b

机构名,i

机构名”。
[0061]
可选的,目标训练语料中的每个字对应三个标签,其中,第一标签用于表征一个字在其所属的实体中的位置,第二标签用于表征一个字所属实体的类别,第三标签用于表征一个字所属实体与其他实体的关联关系。
[0062]
实体的类别可以是根据实际应用场景所设定的实体的具体属性,例如,在金融应用场景中,该类别可以是金额、时间、人名、地名等,但不仅限于此。
[0063]
实体与其他实体的关联关系可以是该实体与其他实体是否指示同一个物体,例如,在金融应用场景中,关联关系可以是该实体与其他实体相比,该实体是名称(如租赁金额、租赁时间等),还是取值(如xxx元、xxx天等),其中,如果该实体是名称,则第三标签可以是key;如果该实体是取值,则第三标签可以是answer。
[0064]
在本公开实施例中,可以将bio定义为第一标签,实体类别class定义为第二标签,并引入第三标签extraction(key,answer),例如,目标训练语料为“总租赁金额为131852.52元”,其中“总租赁金额”的第三标签为“总租赁金额

key”,“131852.52元”的第三标签为“总租赁金额

answer”。可选的,可以采用c1代表类别总租赁金额,用1代表key,2代表answer,结合bio标注体系,输入样本的第一个字“总”对应的标签为“b

c1

1”,如图5所示。
[0065]
通过引入第三标签,使得信息抽取任务转换为机器学习领域的序列标注任务,因此,可以采用基于联合抽取的序列标注模型进行信息抽取,该模型属于统一实体和关系标注框架的联合解码方法。
[0066]
通过上述步骤,首先构建初始训练语料,然后从多个算法集合中确定目标算法集合,其中,不同算法集合用于对初始训练语料中不同粒度的语料进行数据增强,进一步基于目标算法集合包含的算法对初始训练语料进行数据增强,得到目标训练语料,最后基于目标训练语料对预训练得到的语言模型进行训练,得到序列标注模型,通过充分考虑实际处
理情况,选择合适的目标算法集合进行数据增强,从而能够获取更多的标注样本,提升序列标注模型的性能,实现小样本场景下自动化抽取文本信息的目的,进而解决了小样本场景下无法自动化抽取文本信息的问题。
[0067]
可选的,为了能够从多个算法集合中筛选出合适的目标算法集合,该方法还可以包括如下任意一种方案:
[0068]
方案a,基于输入的第一选择指令确定目标算法集合,其中,第一选择指令用于指示从多个算法集合中对目标算法集合进行选择。在一些实施例中,可以直接给用户提供多个算法集合,将其输出在交互界面中供用户选择,为了方便用户确定每个算法集合的实现方案,可以针对每个算法集合提供相关描述,从而用户可以根据需要从多个算法集合中选择一个或多个算法集合。用户可以通过多次点击、拖动等操作对目标算法集合进行选择,生成第一选择指令,从而设备在接收到第一选择指令之后,可以直接将第一选择指令对应的算法集合作为目标算法集合。然后利用目标算法集合对初始训练语料进行数据增强,得到目标训练语料,进一步利用目标训练语料进行训练,达到训练序列标注模型的目的。通过向用户提供多个算法集合,确保用户可以根据需要自行选择合适的算法集合。
[0069]
方案b,基于输入的第二选择指令确定目标组合策略,并确定目标组合策略对应的算法集合作为目标算法集合,其中,第二选择指令用于指示从多个组合策略中对组合策略进行选择,不同组合策略对应的算法集合不同。在一些实施例中,可以采用分级组合策略的方式,将不同等级的算法集合进行组合,得到多个组合策略,不同组合策略可以应用于不同复杂度的场景,例如,简单场景对应的组合策略仅包括:语句构造算法集合;较复杂场景对应的组合策略包括:语句构造算法集合和语义相似算法集合;复杂场景对应的组合策略包括:语句构造算法集合、语义相似算法集合和关键词检索算法集合。在一些实施例中,可以直接向用户提供多种组合策略,用户可以通过点击操作对组合策略进行选择,生成第二选择指令,从而设备在接收到第二选择指令之后,可以将第二选择指令对应的组合策略作为目标组合策略,并将目标组合策略对应的算法集合作为目标算法集合然后利用目标算法集合对初始训练语料进行数据增强,得到目标训练语料,进一步利用目标训练语料进行训练,达到训练序列标注模型的目的。通过针对不同场景提供不同的组合策略,用户无需了解不同组合策略具体包含什么算法,也无需了解如何选择不同算法,只需要判断当前任务属于哪种场景。
[0070]
方案c,基于输入的语义损失度和/或数据增强复杂度确定目标算法集合。在一些实施例中,用户可以直接将当前任务所需的语义损失度发送给设备,从而设备可以基于接收到的语义损失度自行选择合适的算法集合作为目标算法集合。在另一些实施例中,用户可以直接将当前任务所需的数据增强复杂度发送给设备,从而设备可以基于接收到的数据增强复杂度自行选择合适的算法集合作为目标算法集合。在又一些实施例中,用户可以直接将当前任务所需的语义损失度和数据增强复杂度发送给设备,从而设备可以基于接收到的语义损失度和数据增强复杂度自行选择合适的算法集合作为目标算法集合。通过直接输入语义损失度和/或数据增强复杂度,确保最终选择的目标算法集合更加符合实际场景。
[0071]
可选的,为了实现关键信息抽取的目的,该方法还包括:基于序列标注模型对目标文本进行信息抽取,得到目标文本的信息抽取结果。
[0072]
上述步骤中的目标文本可以是需要进行信息抽取的文本,该文本的类型与初始训
练语料的类型相同,例如,均为合同文档。
[0073]
在本公开实施例中,对于目标文本,首先将目标文本以语句为单位进行切割,然后输入至序列标注模型进行处理,得到每个字的标注结果,进而按照预先设定的处理规则,将标注结果重组和匹配,得到最终的信息抽取结果,具体的,可以基于第一标签和第二标签将属于同一个实体的字进行组合,然后基于第三标签将存在key

answer关系的实体进行匹配,从而得到最终的信息抽取结果。
[0074]
图6是根据本公开的基于序列标注模型进行信息抽取方法的流程图,如图6所示,该流程包括如下步骤:
[0075]
步骤s602,按照第一预设粒度(如语句粒度)对目标文本进行切割,得到目标语句;
[0076]
步骤s604,利用序列标注模型对目标语句进行处理,得到目标语句中每个字对应的标注结果,其中,标注结果包括当前字对应的三个标签;
[0077]
步骤s606,基于每个字的标注结果对目标语句中的字进行组合,得到目标语句中每个实体对应的预测结果,其中,预测结果包括:对应实体的类别,以及该实体与其他实体的关联关系;
[0078]
步骤s608,基于每个实体对应的预测结果将目标语句中的实体进行匹配,得到信息抽取结果。
[0079]
在本公开实施例中,在实际应用阶段,为了实现目标文本的自动化抽无,可以将目标文本以语句为单位进行切割,切割后的目标语句送入序列标注模型,得到每个字的bio

class

extraction标注结果,将标注结果以bio标注体系进行重组,得到语句中实体级别的预测结果class

extraction,最后结合预先设定的后处理规则,将key与value进行匹配,得到最终的信息抽取结果。例如,如图7所示,可以将合同文档按照语句为粒度进行分割,得到的目标语句如方框所示,具体包括:“总租赁金额为131852.52元”,“大写:壹拾叁万壹仟捌佰伍拾贰元伍角贰分”,在将目标语句输入至序列标注模型,得到每个字对应的标签之后,可以按照bio标注体系进行重组,得到语句中实体级别的预测结果,“总租赁金额”的预测结果为user_class1_key,“131852.52元”的预测结果为user_class1_answer,“大写”的预测结果为user_class2_key,“壹拾叁万壹仟捌佰伍拾贰元伍角贰分”的预测结果为user_class2_answer,从而最终的信息抽取结果为“总租赁金额为131852.52元,总租赁金额大写:壹拾叁万壹仟捌佰伍拾贰元伍角贰分”。
[0080]
可选的,基于每个实体对应的预测结果将目标语句中的实体进行匹配,得到信息抽取结果的方法包括:基于每个实体对应的预测结果,确定目标语句中三元组的数量,其中,三元组包含的两个实体的类别相同,且符合预设关联关系;在三元组的数量为一个的情况下,将目标语句中的实体进行组合,得到信息抽取结果;在三元组的数量为多个的情况下,基于多个三元组包含的实体的类别,确定每个三元组对应的类别,并基于多个三元组对应的类别对目标语句中的实体进行组合,得到信息抽取结果。
[0081]
上述步骤中的预设关联关系可以是指两个实体指示同一个物体,例如,在金融应用场景中,三元组包含的两个实体中,一个是名称,另一个是取值,也即,预设关联关系可以是指key

value的关系。另外,三元组包含的两个实体的类别相同,因此,可以将两个实体的类别作为三元组的类别。
[0082]
进一步的,基于多个三元组对应的类别对目标语句中的实体进行组合,得到信息
抽取结果包括:在多个三元组对应的类别均不同的情况下,将目标语句中相同类别的实体进行组合,得到信息抽取结果;在多个三元组对应的类别均相同,且不同三元组包含的实体均不同的情况下,将目标语句中距离最近且符合预设关联关系的实体进行组合,得到信息抽取结果;在多个三元组对应的类别均相同,且不同三元组包含相同的实体的情况下,基于目标语句中实体之间的距离对目标语句中的实体进行补充,并将补充后的实体进行组合,得到信息抽取结果。
[0083]
需要说明的是,如果多个三元组对应的类别不完全相同,例如,部分三元组对应的类别为第一类别,其余部分三元组对应的类别为第二类别,则可以按照三元组对应的类别,将多个三元组划分为多个三元组集合,同一个三元组集合包含的三元组对应的类别相同,不同三元组集合包含的三元组对应的类别不同;对每个三元组集合包含的实体进行组合,得到每个三元组集合对应的抽取结果;将多个三元组集合对应的抽取结果进行汇总,得到信息抽取结果。进一步地,对每个三元组集合包含的实体进行组合,得到每个三元组集合对应的抽取结果包括:在一个三元组集合中不同三元组包含的实体均不同的情况下,将该三元组集合中距离最近且符合预设关联关系的实体进行组合,得到信息抽取结果;在一个三元组集合中不同三元组包含相同的实体的情况下,基于目标语句中实体之间的距离对目标语句中的实体进行补充,并将补充后的实体进行组合,得到信息抽取结果。
[0084]
在本公开实施例中,简单抽取场景下,一个语句中仅有一个三元组,例如,sample 1:class1_key,class1_answer。sample 2:class1_answer。在sample1场景下,可以直接将实体组合到三元组中;在sample2场景下,对应的实体key信息缺失,此时可以用预定义的类别名字作为key进行填充。
[0085]
多实体关系场景下,一个语句中包含多个三元组,即多个key

value对。例如,sample 3:class1_key,class1_answer,class2_key,class2_answer。sample 4:class1_key,class1_answer,class1_key,class1_answer。sample 5:class1_key,class1_answer,class1_answer。在sample 3场景下,同时存在两个关系class1

key

value、class2

key

value,此时按照对应的类别信息进行两两组合;在sample 4场景下,如果该语句中包含的多个三元组关系类型相同,可以采用就近原则,将实体两两组合到三元组中,也即,将前两个实体进行组合,后两个实体进行组合;在sample 5场景下,如果该语句中包含的多个三元组关系类型相同,且某个实体存在于多种关系中,可以采用关系重叠原则,选择class1_answer最近的class1_key进行补全。
[0086]
在本公开实施例中,针对不同场景,预先设定不同的处理规则,确保准确得到最终的信息抽取结果。
[0087]
在本公开实施例中,可以采用如下步骤构建初始训练语料:获取携带有标签的文本;基于第二预设粒度(如语句粒度)对携带有标签的文本进行切割,得到训练语句;对训练语句进行过滤,得到过滤语句;基于形态学特征对过滤语句进行处理,得到初始训练语料。
[0088]
上述步骤中的携带有标签的文本可以是人工标注的文本,为了减少人工标注成本,可以减少携带有标签的文本的数量,实现小样本场景。
[0089]
在本公开实施例中,可以由用户提供携带有标签的文本,或者由设备从网络获取携带有标签的公开文本,在获取到上述文本之后,以语句为单位进行切割,行程训练语句,然后对训练语句进行segment过滤,将与目标任务无关以及不含有标签的segment过滤掉,
最后通过形态学特征(如标点符号、空格、换行符)进一步切分,去除长度过短的segment,从而得到最终的初始训练语料,例如,对于过滤语句“今天,总租赁金额为xxx元”,需要切分掉“今天,”,仅保留“总租赁金额为xxx元”。通过上述方案可以最大程度减少初始训练语料中的噪声,提高序列标注模型的性能。
[0090]
需要说明的是,本实施例中的携带有标签的文本来自于公开数据集。
[0091]
图8是根据本公开第二实施例的模型训练方法的流程图,以合同文档的信息抽取为例,如图8所示,该流程包括:输入小样本标注的合同文档,以语句为单位进行切割,形成训练语句,然后进行segment过滤,形成初始训练语料;采用多个算法集合中的目标算法集合进行数据增强,得到目标训练语料,此处的多个算法集合包括:语句构造算法集合、语义相似算法集合和关键词检索算法集合;目标训练语料对预训练语言模型进行模型微调,并采用联合抽取的方法训练序列标注模型;在实际应用阶段中,将待抽取的合同文档以语句为单位进行切割,送入序列标注模型,得到每个字的bio

class

extraction标注结果,将标注结果以bio标注体系进行重组,得到语句中实体级别的预测结果class

extraction,最后基于后处理规则,得到最终的信息抽取结果,在多实体关系场景下,此处的后处理规则包括:就近原则、关系重叠。
[0092]
根据本公开的实施例,本公开还提供了一种模型训练装置,该装置用于实现上述实施例及优选实施方式,已经进行过说明的不再赘述。如以下所使用的,术语“模块”可以实现预定功能的软件和/或硬件的组合。尽管以下实施例所描述的装置较佳地以软件来实现,但是硬件,或者软件和硬件的组合的实现也是可能并被构想的。
[0093]
图9是根据本公开的模型训练装置的示意图,如图9所示,该装置包括:语料构建模块92,用于构建初始训练语料;数据增强模块94,用于基于目标算法集合包含的算法对初始训练语料进行数据增强,得到目标训练语料,其中,目标算法集合是从多个算法集合中确定的,不同算法集合用于对初始训练语料中不同粒度的语料进行数据增强;模型训练模块96,用于基于目标训练语料对语言模型进行训练,得到序列标注模型,其中,语言模型是基于文本语料预先训练得到的。
[0094]
可选的,多个算法集合包括如下至少之一:语句构造算法集合,用于基于初始训练语料中的语句,生成新语句;语义相似算法集合,用于对初始训练语料中的词进行替换,且替换后的词所在的语句与替换前的词所在的语句的语义相同;关键词检索算法集合,用于基于初始训练语料中的目标实体,进行关键词搜索,其中,对目标实体进行分词处理得到至少两个词。
[0095]
可选的,语句构造算法集合包括如下至少之一:随机打乱算法,用于将初始训练语料中的第一目标语句切分为多个部分,并随机对多个部分进行排序,得到新语句;上下文算法,用于将初始训练语料中满足预设窗口大小的连续多个语句进行组合,得到新语句;字替换算法,用于将初始训练语料中第二目标语句中的目标字替换为相同标签的替换字,得到新语句,其中,目标字基于第一预设概率确定;实体替换算法,用于将初始训练语料中第三目标语句中的实体替换为相同标签的替换实体,得到新语句。
[0096]
可选的,语义相似算法集合包括如下至少之一:词变换算法,用于将初始训练语料中的第一目标词替换为词表中语义和/或词性相同的第一替换词,其中,第一目标词基于第二预设概率和第一目标词所在语句的长度确定;词向量算法,用于基于词向量确定初始训
练语料中的第二目标词对应的第二替换词,并将第二目标词替换为第二替换词,其中,第二目标词与第二替换词的语义相同;回译算法,用于将初始训练语料中的已标注的实体进行回译处理,得到回译后的实体,并将已标注的实体替换为回译后的实体;模型算法,用于将初始训练语料中的第三目标词替换为掩码,利用语言模型对掩码所在的语句进行处理,得到掩码对应的第三替换词,并将第三目标词替换为第三替换词。
[0097]
可选的,关键词检索算法集合还用于利用序列标注模型对分词处理后的词进行处理,并基于序列标注模型的输出结果确定目标实体。
[0098]
可选的,该装置还包括集合确定模块,用于执行如下之一的步骤:基于输入的第一选择指令确定目标算法集合,其中,第一选择指令用于指示从多个算法集合中对目标算法集合进行选择;基于输入的第二选择指令确定目标组合策略,并确定目标组合策略对应的算法集合作为目标算法集合,其中,第二选择指令用于指示从多个组合策略中对组合策略进行选择,不同组合策略对应的算法集合不同;基于输入的语义损失度和/或数据增强复杂度确定目标算法集合。
[0099]
可选的,目标训练语料中的每个字对应三个标签,其中,第一标签用于表征一个字在其所属的实体中的位置,第二标签用于表征一个字所属实体的类别,第三标签用于表征一个字所属实体与其他实体的关联关系。
[0100]
可选的,信息抽取模块包括:切割单元,用于按照第一预设粒度对目标文本进行切割,得到目标语句;处理单元,用于利用序列标注模型对目标语句进行处理,得到目标语句中每个字对应的标注结果,其中,标注结果包括当前字对应的三个标签;组合单元,用于基于每个字的标注结果对目标语句中的字进行组合,得到目标语句中每个实体对应的预测结果,其中,预测结果包括:对应实体的类别,以及该实体与其他实体的关联关系;匹配单元,用于基于每个实体对应的预测结果将目标语句中的实体进行匹配,得到信息抽取结果。
[0101]
可选的,匹配单元还用于基于每个实体对应的预测结果,确定目标语句中三元组的数量,其中,三元组包含的两个实体的类别相同,且符合预设关联关系;在三元组的数量为一个的情况下,将目标语句中的实体进行组合,得到信息抽取结果;在三元组的数量为多个的情况下,基于多个三元组包含的实体的类别,确定每个三元组对应的类别,并基于多个三元组对应的类别对目标语句中的实体进行组合,得到信息抽取结果。
[0102]
可选的,匹配单元还用于在多个三元组对应的类别均不同的情况下,将目标语句中相同类别的实体进行组合,得到信息抽取结果;在多个三元组对应的类别均相同,且不同三元组包含的实体均不同的情况下,将目标语句中距离最近且符合预设关联关系的实体进行组合,得到信息抽取结果;在多个三元组对应的类别均相同,且不同三元组包含相同的实体的情况下,基于目标语句中实体之间的距离对目标语句中的实体进行补充,并将补充后的实体进行组合,得到信息抽取结果。
[0103]
可选的,语料构建模块包括:文本获取单元,用于获取携带有标签的文本;文本切割单元,用于按照第二预设粒度对携带有标签的文本进行切割,得到训练语句;语句过滤单元,用于对训练语句进行过滤,得到过滤语句;语句处理单元,用于基于形态学特征对过滤语句进行处理,得到初始训练语料。
[0104]
本公开的技术方案中,所涉及的文本的获取,存储和应用等,均符合相关法律法规的规定,且不违背公序良俗。
[0105]
根据本公开的实施例,本公开还提供了一种电子设备、一种可读存储介质和一种计算机程序产品。
[0106]
图10示出了可以用来实施本公开的实施例的示例电子设备1000的示意性框图。电子设备旨在表示各种形式的数字计算机,诸如,膝上型计算机、台式计算机、工作台、个人数字助理、服务器、刀片式服务器、大型计算机、和其它适合的计算机。电子设备还可以表示各种形式的移动装置,诸如,个人数字处理、蜂窝电话、智能电话、可穿戴设备和其它类似的计算装置。本文所示的部件、它们的连接和关系、以及它们的功能仅仅作为示例,并且不意在限制本文中描述的和/或者要求的本公开的实现。
[0107]
如图10所示,设备1000包括计算单元1001,其可以根据存储在只读存储器(rom)1002中的计算机程序或者从存储单元1008加载到随机访问存储器(ram)1003中的计算机程序,来执行各种适当的动作和处理。在ram 1003中,还可存储设备1000操作所需的各种程序和数据。计算单元1001、rom 1002以及ram 1003通过总线1004彼此相连。输入/输出(i/o)接口1005也连接至总线1004。
[0108]
设备1000中的多个部件连接至i/o接口1005,包括:输入单元1006,例如键盘、鼠标等;输出单元1007,例如各种类型的显示器、扬声器等;存储单元1008,例如磁盘、光盘等;以及通信单元1009,例如网卡、调制解调器、无线通信收发机等。通信单元1009允许设备1000通过诸如因特网的计算机网络和/或各种电信网络与其他设备交换信息/数据。
[0109]
计算单元1001可以是各种具有处理和计算能力的通用和/或专用处理组件。计算单元1001的一些示例包括但不限于中央处理单元(cpu)、图形处理单元(gpu)、各种专用的人工智能(ai)计算芯片、各种运行机器学习模型算法的计算单元、数字信号处理器(dsp)、以及任何适当的处理器、控制器、微控制器等。计算单元1001执行上文所描述的各个方法和处理,例如模型训练方法。例如,在一些实施例中,模型训练方法可被实现为计算机软件程序,其被有形地包含于机器可读介质,例如存储单元1008。在一些实施例中,计算机程序的部分或者全部可以经由rom1002和/或通信单元1009而被载入和/或安装到设备1000上。当计算机程序加载到ram 1003并由计算单元1001执行时,可以执行上文描述的模型训练方法的一个或多个步骤。备选地,在其他实施例中,计算单元1001可以通过其他任何适当的方式(例如,借助于固件)而被配置为执行模型训练方法。
[0110]
本文中以上描述的系统和技术的各种实施方式可以在数字电子电路系统、集成电路系统、场可编程门阵列(fpga)、专用集成电路(asic)、专用标准产品(assp)、芯片上系统的系统(soc)、负载可编程逻辑设备(cpld)、计算机硬件、固件、软件、和/或它们的组合中实现。这些各种实施方式可以包括:实施在一个或者多个计算机程序中,该一个或者多个计算机程序可在包括至少一个可编程处理器的可编程系统上执行和/或解释,该可编程处理器可以是专用或者通用可编程处理器,可以从存储系统、至少一个输入装置、和至少一个输出装置接收数据和指令,并且将数据和指令传输至该存储系统、该至少一个输入装置、和该至少一个输出装置。
[0111]
用于实施本公开的方法的程序代码可以采用一个或多个编程语言的任何组合来编写。这些程序代码可以提供给通用计算机、专用计算机或其他可编程数据处理装置的处理器或控制器,使得程序代码当由处理器或控制器执行时使流程图和/或框图中所规定的功能/操作被实施。程序代码可以完全在机器上执行、部分地在机器上执行,作为独立软件
包部分地在机器上执行且部分地在远程机器上执行或完全在远程机器或服务器上执行。
[0112]
在本公开的上下文中,机器可读介质可以是有形的介质,其可以包含或存储以供指令执行系统、装置或设备使用或与指令执行系统、装置或设备结合地使用的程序。机器可读介质可以是机器可读信号介质或机器可读储存介质。机器可读介质可以包括但不限于电子的、磁性的、光学的、电磁的、红外的、或半导体系统、装置或设备,或者上述内容的任何合适组合。机器可读存储介质的更具体示例会包括基于一个或多个线的电气连接、便携式计算机盘、硬盘、随机存取存储器(ram)、只读存储器(rom)、可擦除可编程只读存储器(eprom或快闪存储器)、光纤、便捷式紧凑盘只读存储器(cd

rom)、光学储存设备、磁储存设备、或上述内容的任何合适组合。
[0113]
为了提供与用户的交互,可以在计算机上实施此处描述的系统和技术,该计算机具有:用于向用户显示信息的显示装置(例如,crt(阴极射线管)或者lcd(液晶显示器)监视器);以及键盘和指向装置(例如,鼠标或者轨迹球),用户可以通过该键盘和该指向装置来将输入提供给计算机。其它种类的装置还可以用于提供与用户的交互;例如,提供给用户的反馈可以是任何形式的传感反馈(例如,视觉反馈、听觉反馈、或者触觉反馈);并且可以用任何形式(包括声输入、语音输入或者、触觉输入)来接收来自用户的输入。
[0114]
可以将此处描述的系统和技术实施在包括后台部件的计算系统(例如,作为数据服务器)、或者包括中间件部件的计算系统(例如,应用服务器)、或者包括前端部件的计算系统(例如,具有图形用户界面或者网络浏览器的用户计算机,用户可以通过该图形用户界面或者该网络浏览器来与此处描述的系统和技术的实施方式交互)、或者包括这种后台部件、中间件部件、或者前端部件的任何组合的计算系统中。可以通过任何形式或者介质的数字数据通信(例如,通信网络)来将系统的部件相互连接。通信网络的示例包括:局域网(lan)、广域网(wan)和互联网。
[0115]
计算机系统可以包括客户端和服务器。客户端和服务器一般远离彼此并且通常通过通信网络进行交互。通过在相应的计算机上运行并且彼此具有客户端

服务器关系的计算机程序来产生客户端和服务器的关系。服务器可以是云服务器,也可以为分布式系统的服务器,或者是结合了区块链的服务器。
[0116]
应该理解,可以使用上面所示的各种形式的流程,重新排序、增加或删除步骤。例如,本发公开中记载的各步骤可以并行地执行也可以顺序地执行也可以不同的次序执行,只要能够实现本公开公开的技术方案所期望的结果,本文在此不进行限制。
[0117]
上述具体实施方式,并不构成对本公开保护范围的限制。本领域技术人员应该明白的是,根据设计要求和其他因素,可以进行各种修改、组合、子组合和替代。任何在本公开的精神和原则之内所作的修改、等同替换和改进等,均应包含在本公开保护范围之内。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献