序列标注方法及系统、事件要素抽取方法及系统
技术领域
本发明涉及自然语言处理技术领域,特别涉及一种基于BERT预训练模型的序列标注方法及系统、事件要素抽取方法及系统。
背景技术
序列标注就是对一个一维线性输入序列,给线性序列中的每个元素打上标签集合中的某个标签。所以,其本质上是对线性序列中每个元素根据上下文进行分类的问题。命名实体识别(Named Entity Recognition,简称NER),又称作“专名识别”,是指识别文本中具有特定意义的实体,主要包括人名、地名、机构名、专有名词等。简单的讲,就是识别自然文本中的实体指称的边界和类别。BERT (Bidirectional Encoder Representations fromTransformers) 是谷歌公司发布的基于双向Transformer的大规模预训练语言模型,该预训练模型能分别捕捉词语和句子级别的表示,高效抽取文本信息并应用于各种NLP任务。BERT预训练模型一般需要强大计算能力和大量的语料花费大量时间才能训练完成,所以一般由大型公司如谷歌公司等训练完成,其他用户只需要通过下载训练好的预训练模型微调(finetuning)使用。通过BERT进行序列标注时,一般通过加载预训练好的模型,进行微调后, BERT通过Softmax来预测每个 token 的标签,具有较高的准确率。也正是由于BERT的分类准确率较高,且只需要进行微调即可,因此BERT预训练模型成为了序列标注时序列标注的首选。
发明内容
本发明的目的在于提供一种基于BERT预训练模型的序列标注方法及系统,以及事件要素抽取方法及系统,可以进一步提高序列标注结果的准确性。
为了实现上述发明目的,本发明实施例提供了以下技术方案:
一方面,本发明实施例中提供了一种基于BERT预训练模型的序列标注方法,增加BERT预训练模型的输入层并参与训练,并基于训练后得到的分类模型对待标注文本进行序列标注;增加的输入层为辅助分类识别的特征词表示层。
上述方案中,通过增加一层或多层输入层,增加的输入层也会参与训练,且增加的输入是辅助分类识别的特征词表示层,即通过增加输入层引入了新的辅助分类识别的信息,因此可以提高序列标注结果的准确性。而且,无需向基础模型提供方请求模型结构改进或新增特征,因此不受基础模型提供方的限制,操作方便。
上述序列标注方法包括以下步骤:
基于指定的任务,对准备的文本语料进行人工标注,并对人工标注后的文本语料中的辅助分类识别的特征词进行标注;
将特征词表示层作为BERT预训练模型新增的输入向量层,并对每个向量初始化赋值,将标注后的文本语料送入BERT预训练模型进行微调,并将特征词表示层同时训练,通过反向传播的梯度进行变化,最终得到特征词表示层的向量矩阵以及训练好的分类模型;
将待标注文本输入训练好的分类模型进行推理,并将待分类文本中的所述辅助分类识别的特征词以所述向量矩阵索引输入,输出序列标注结果。
所述指定的任务为事件要素抽取任务,所述辅助分类识别的特征词为命名实体。基于不同的任务,辅助分类识别的特征词不同。
另一方面,本发明实施例提供了一种基于BERT预训练模型的事件要素抽取方法,包括以下步骤:
基于事件要素的定义,对准备的文本语料中的事件要素进行标注,并标注出事件要素的类型;
将NER特征表示层作为BERT预训练模型新增的输入向量层,并对每个向量初始化赋值;
将处理后的文本语料送入BERT预训练模型进行微调,并将NER特征表示层同时训练,通过反向传播的梯度进行变化,最终得到NER特征表示层的向量矩阵,以及训练好的分类模型;
将待抽取文本输入训练好的分类模型进行推理,并将待抽取文本中的命名实体用预先训练好的NER工具标注出命名实体,使得待抽取文本中的命名实体以所述向量矩阵索引输入,输出事件要素预测结果;
基于事件要素预测结果进行事件要素抽取。
另一方面,本发明实施例同时提供了一种基于BERT预训练模型的序列标注系统,包括序列标注装置和预下载的BERT预训练模型,序列标注装置用于增加所述BERT预训练模型的输入层并参与训练,并基于训练后得到的分类模型对待标注文本进行序列标注;增加的输入层为辅助分类识别的特征词表示层。
所述序列标注装置包括:
语料标注模块:基于指定的任务,对准备的文本语料进行人工标注,并对人工标注后的文本语料中的辅助分类识别的特征词进行标注;
模型训练模块:将特征词表示层作为BERT预训练模型新增的输入向量层,并对每个向量初始化赋值,将标注后的文本语料送入BERT预训练模型进行微调,并将特征词表示层同时训练,通过反向传播的梯度进行变化,最终得到特征词表示层的向量矩阵以及训练好的分类模型;
序列标注模块:将待标注文本输入训练好的分类模型进行推理,并将待分类文本中的所述辅助分类识别的特征词以所述向量矩阵索引输入,输出序列标注结果。
再一方面,本发明实施例同时提供了一种基于BERT预训练模型的事件要素抽取系统,包括:
语料标注模块:基于事件要素的定义,对准备的文本语料中的事件要素进行标注,并标注出事件要素的类型;
模型训练模块:将NER特征表示层作为BERT预训练模型新增的输入向量层,并对每个向量初始化赋值,将处理后的文本语料送入BERT预训练模型进行微调,并将NER特征表示层同时训练,通过反向传播的梯度进行变化,最终得到NER特征表示层的向量矩阵,以及训练好的分类模型;
事件要素预测模块:将待抽取文本输入训练好的分类模型进行推理,并将待抽取文本中的命名实体以所述向量矩阵索引输入,输出事件要素预测结果;
事件要素抽取模块:基于事件要素预测结果进行事件要素抽取。
与现有技术相比,本发明具有以下有益效果:本发明提出了一种新的序列标注方法,通过增加BERT预训练模型的输入层的方式,增加了模型序列标注识别时的参考特征量,因此可以提高序列标注结果的准确性。另外,本发明没有对BERT预训练模型的结构进行改变,因此无需请求提供BERT预训练模型的谷歌公司等对BERT模型进行改进,即本发明方法并不受基础模型提供公司的限制,也不存在任何不便利性的问题。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍, 应当理解,以下附图仅示出了本发明的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
图1为实施例中所述的序列标注方法的流程图。
图2a为传统序列标注方法中BERT预训练模型的输入层表示图。
图2b为本发明序列标注方法中BERT预训练模型的输入层表示图。
图2c为实施例所述事件抽取方法中BERT预训练模型的输出层表示图。
图2d为本发明序列标注方法中NER特征表示层的初始化向量矩阵示意图。
图2e为本发明序列标注方法中训练好的NER特征表示层的BIEO向量矩阵示意图。
图3为实施例中基于BERT预训练模型的事件要素抽取方法流程图。
图4为实施例中基于BERT预训练模型的序列标注系统的示意框图。
图5为实施例中基于BERT预训练模型的事件要素抽取系统的示意框图。
图6为实施例中所述的电子设备的组成框图。
具体实施方式
下面将结合本发明实施例中附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本发明实施例的组件可以以各种不同的配置来布置和设计。因此,以下对在附图中提供的本发明的实施例的详细描述并非旨在限制要求保护的本发明的范围,而是仅仅表示本发明的选定实施例。基于本发明的实施例,本领域技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本发明保护的范围。
本实施例中提供的基于BERT预训练模型的序列标注方法,其核心思想是通过增加BERT预训练模型的输入层的方式来引入新的辅助序列标注的信息,并参与模型训练,继而提高序列标注的准确率。也就是说,在该方法中,增加BERT预训练模型的输入层并参与训练,增加的输入层为辅助分类识别的特征词表示层,然后基于训练后得到的分类模型对待标注文本进行序列标注。
具体地,请参阅图1,上述基于BERT预训练模型的序列标注方法,包括以下步骤:
S1,基于指定的任务,对准备的文本语料进行人工标注,并对人工标注后的文本语料中的辅助分类识别的特征词进行标注。基于不同的任务,辅助分类识别的特征词不同,例如,命名实体识别任务,辅助分类识别的特征词可以是命名实体的具体类型,例如人名,公司名。
S2,将特征词表示层作为BERT预训练模型新增的输入向量层,并对每个向量初始化赋值,例如每个向量初始化为0,然后将标注后的文本语料送入BERT预训练模型进行微调,并将特征词表示层同时训练,通过反向传播的梯度进行变化,最终得到特征词表示层的向量矩阵以及训练好的分类模型。
可以参阅图2a和图2b,图2a为传统序列标注方法中BERT预训练模型的输入,包括3层;图2b为本发明序列标注方法中BERT预训练模型的输入,包括4层,增加了NER Embedding(即NER特征表示层)层。图2b所展示的是基于命名实体识别任务,所以增加的是NEREmbedding层。
S3,将待标注文本输入训练好的分类模型进行推理,并将待分类文本中的所述辅助分类识别的特征词以所述向量矩阵索引输入,输出序列标注结果。
此处,以事件要素抽取这个序列标注任务为例,说明本发明基于BERT预训练模型的序列标注方法。
请参阅图3,本实施例中提供了一种基于BERT预训练模型的事件要素抽取方法,包括以下步骤:
S10,准备一个训练好(用户自己训练或者其他用户训练)的NER工具,可以识别人名、公司名等实体,识别的实体是事件要素的属性,如事件主体,可能是人名或公司名。
S20,基于事件要素的定义,对准备的文本语料进行标注,人工标注事件的各个要素。本次应用定义中,事件要素即是实体,因此这里只要标注事件要素即可,且对实体类型进行标注,例如,人名,公司名等。
S30,将BERT预训练模型的输入向量增加一层,即增加NER特征表示层,NER特征表示层即为文本语料中各个字符的实体类型表示,每个向量初始化为0。
如图2b所示,相比于传统方法,增加了NER Embedding(即NER特征表示层)层,体现实体类型。图2b中V_0向量表示不是任何实体,V_1向量表示人名实体,V_2表示公司名实体,V_3表示职位名实体。NER特征表示层的初始化向量结构表示如图2d所示,初始值为0。
S40,将处理后的文本语料送入BERT预训练模型进行微调(fine-tuning),将NER特征表示层同时训练,通过反向传播的梯度进行变化,最终得到NER特征表示层的向量矩阵,即(C+1)*n矩阵,其中C表示实体类别数量,n表示向量长度。一个训练好的(C+1)*n矩阵的BIEO向量表示如图2e所示。图2d和图2e中,C=4。
S50,将待抽取文本输入训练好的分类模型进行推理(inference),及通过所述NER工具将待抽取文本中的命名实体标注出来,使得待抽取文本中的命名实体通过之前NER特征表示层训练好的向量矩阵(C+1)*n索引输入,输出得到事件要素预测结果。
S60,对预测结果信息进行事件要素抽取,即完成事件要素抽取过程。
请参阅图2c,为本发明事件要素抽取方法中BERT预训练模型的输出,通过增加NER特征表示层,输出得到NER结果的BIEO的向量表示矩阵。例如“张三”是人名,即被标注为“B_EVENT”“E_EVENT”。因为采用的是BIEO标注法进行标注,因此得到字符的向量表示也是BIEO字符表示。
需要说明的是,上述各个步骤中除了有必要的逻辑关系以外,各个步骤之间没有执行的先后顺序之分,例如步骤S10可以在步骤S50之前的任意位置。
同时采用传统方法和本发明方法对同一个事件要素抽取准确率对比,本发明方法的准确率为74.20%,而传统方法的准确率为62.06%。可见本发明方法由于引入了NER结果,有效地提升了事件要素抽取的准确率。
本发明方法不仅可以提事件要素抽取的准确率,而且方法步骤也简单,也无需受BERT预训练模型的提供方的限制,使用便利。
请参阅图4,本实施例中提供了一种基于BERT预训练模型的序列标注系统,包括序列标注装置和从谷歌服务器预下载的BERT预训练模型,序列标注装置用于增加所述BERT预训练模型的输入层并参与训练,并基于训练后得到的分类模型对待标注文本进行序列标注;增加的输入层为辅助序列标注的特征词表示层。
具体地,序列标注装置包括:
语料标注模块:基于指定的任务,对准备的文本语料进行人工标注,并对人工标注后的文本语料中的辅助分类识别的特征词进行标注;
模型训练模块:将特征词表示层作为BERT预训练模型新增的输入向量层,并对每个向量初始化赋值,将标注后的文本语料送入BERT预训练模型进行微调,并将特征词表示层同时训练,通过反向传播的梯度进行变化,最终得到特征词表示层的向量矩阵以及训练好的分类模型;
序列标注模块:将待标注文本输入训练好的分类模型进行推理,并将待分类文本中的所述辅助分类识别的特征词以所述向量矩阵索引输入,输出序列标注结果。
请参阅图5,本实施例中同时也提供了一种基于BERT预训练模型的事件要素抽取系统,包括:
语料标注模块:基于事件要素的定义,对准备的文本语料中的事件要素进行标注,并标注出事件要素的类型;
模型训练模块:将NER特征表示层作为BERT预训练模型新增的输入向量层,并对每个向量初始化赋值,将处理后的文本语料送入BERT预训练模型进行微调,并将NER特征表示层同时训练,通过反向传播的梯度进行变化,最终得到NER特征表示层的向量矩阵,以及训练好的分类模型;
事件要素预测模块:将待抽取文本输入训练好的分类模型进行推理,并将待抽取文本中的命名实体以所述向量矩阵索引输入,输出事件要素预测结果;
事件要素抽取模块:基于事件要素预测结果进行事件要素抽取。
系统结构是与前述方法相对应的,此处对于系统结构未描述之处可以参见前述方法描述内容。
如图6所示,本实施例同时提供了一种电子设备,该电子设备可以包括处理器51和存储器52,其中存储器52耦合至处理器51。值得注意的是,该图是示例性的,还可以使用其他类型的结构来补充或替代该结构,实现数据提取、报告生成、通信或其他功能。
如图6所示,该电子设备还可以包括:输入单元53、显示单元54和电源55。值得注意的是,该电子设备也并不是必须要包括图6中显示的所有部件。此外,电子设备还可以包括图6中没有示出的部件,可以参考现有技术。
处理器51有时也称控制器或操作控件,可以包括微处理器或其他处理器装置和/或逻辑装置,该处理器51接收输入并控制电子设备的各个部件的操作。
其中,存储器52例如可以是缓存器、闪存、硬驱、可移动介质、易失性存储器、非易失性存储器或其他合适装置中的一种或多种,可存储上述处理器51的配置信息、处理器51执行的指令等信息。处理器51可以执行存储器52存储的程序,以实现信息存储或处理等。在一个实施例中,存储器52中还包括缓冲存储器,即缓冲器,以存储中间信息。
输入单元53例如用于向处理器51提供文本数据。显示单元54用于显示处理过程中的各种结果,例如输入的文本数据、模型输出结果等,该显示单元例如可以为LCD显示器,但本发明并不限于此。电源55用于为电子设备提供电力。
本发明实施例还提供一种计算机可读指令,其中当在电子设备中执行所述指令时,所述程序使得电子设备执行本发明方法所包含的操作步骤。
本发明实施例还提供一种存储有计算机可读指令的存储介质,其中所述计算机可读指令使得电子设备执行本发明方法所包含的操作步骤。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分,或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-OnlyMemory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的模块,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成模块及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
在本申请所提供的几个实施例中,应该理解到,所揭露的系统,可以通过其它的方式实现。例如,以上所描述的系统实施例仅仅是示意性的,例如,所述模块的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个模块或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应所述以权利要求的保护范围为准。