一种多任务命名实体识别方法、系统、介质及终端与流程

文档序号:23720097发布日期:2021-01-24 07:37阅读:102来源:国知局
一种多任务命名实体识别方法、系统、介质及终端与流程

[0001]
本发明涉及计算机应用领域,尤其涉及一种多任务命名实体识别方法、系统、介质及终端。


背景技术:

[0002]
随着计算机技术的发展,自然语言文本信息处理技术是目前在各类应用中的不可或缺的一部分,其中,关于文本的非结构化数据抽取是一个重要的课题。在目前的研究及应用中,命名实体识别作为重要方向,旨在识别文本中特定实体信息,如人名、地名、机构名等,在信息抽取,信息检索,智能问答,机器翻译中都有广泛应用。
[0003]
目前,现有命名实体识别技术主要包括:基于规则的抽取,基于开源工具如hanlp的抽取,基于深度学习方法如crf、bilstm+crf等的抽取,基于大规模语料预训练模型的方法bert+crf的抽取。其中基于

x

+crf的实体抽取模型均能在各自语言模型基础上获得最优效果,其中

x

表示不同的语言模型,如bilstm、cnn、bert等。
[0004]
在实体识别任务中,通常将其转化为一个序列标注的单项任务,即给每个“实体类型”都分配一个b与i的标签,然后进行字的标签分类。但是,当实体类别较多时,如几百类或上千类实体,标签词表规模将会很大,相当于在每个字上都要做一次类别数较大的分类任务,会影响识别的精度。此外,如果应用crf,那么较大的转移矩阵的计算将大幅增加训练、推理时间及内存消耗。


技术实现要素:

[0005]
鉴于以上所述现有技术的缺点,本发明提供一种多任务命名实体识别方法、系统、介质及终端,以解决上述技术问题。
[0006]
本发明提供的多任务命名实体识别方法,包括:
[0007]
预先定义实体序列标志和用于表示不同实体类别的实体类型,并获取二者之间的映射关系,建立多任务命名实体识别模型;
[0008]
将待识别的文本输入至训练后的多任务命名实体识别模型,通过所述训练后的多任务命名实体识别模型的不同层级,依次获取第一特征向量矩阵、待识别文本中实体序列和第二特征向量矩阵;所述第一特征向量矩阵包括由每个字符的语义向量构成的文本整体语义向量矩阵,所述第二特征向量矩阵通过查找所有实体在第一特征向量矩阵的特征向量表示获取;
[0009]
根据第二特征向量矩阵,获取每个实体对应的实体类型。
[0010]
可选的,所述多任务命名实体识别模型包括用于自然语言模型编码的第一层级、用于实体标志类型分类的第二层级、用于实体类型分类的第三层级。
[0011]
可选的,将待识别的文本输入到模型的第一层级中,生成第一特征向量矩阵;
[0012]
将生成第一特征向量矩阵输入到模型的第二层级中,生成待识别文本中实体序列;
[0013]
通过所述待识别文本中实体序列,查找所有实体在第一特征向量矩阵的特征向量表示,并构成第二特征向量矩阵;
[0014]
将所述第二特征向量矩阵输入到模型的第三层级中,获取每个实体对应的实体类型。
[0015]
可选的,对待识别训练文本中的文本数据按字符进行编码,获取第一特征向量矩阵,所述第一特征向量矩阵包括由每个字符的语义向量构成的文本整体语义向量矩阵;
[0016]
根据所述第一特征向量矩阵中的实体的头、尾语义特征向量的均值,获取第二特征向量矩阵,所述第二特征向量矩阵包括实体语义特征向量矩阵。
[0017]
可选的,所述第三层级为全连接层。
[0018]
可选的,根据实体序列标志类型和实体类型构建字典编码,所述字典编码包括将实体序列标志类型与一个有序数组一一对应,以及将实体类型与一个有序数组一一对应。
[0019]
可选的,所述实体序列标志类型包括实体的头部、实体的非头部和非实体部分,通过所述实体标志类型确定输入的待识别文本中的实体。
[0020]
本发明还提供一种多任务命名实体识别系统,包括:
[0021]
配置模块,用于预先定义实体序列标志和用于表示不同实体类别的实体类型,并获取二者之间的映射关系,
[0022]
建模模块,用于建立多任务命名实体识别模型并进行训练,
[0023]
将待识别的文本输入至训练后的多任务命名实体识别模型,通过所述训练后的多任务命名实体识别模型的不同层级,依次获取第一特征向量矩阵、待识别文本中实体序列和第二特征向量矩阵;所述第一特征向量矩阵包括由每个字符的语义向量构成的文本整体语义向量矩阵,所述第二特征向量矩阵通过查找所有实体在第一特征向量矩阵的特征向量表示获取;
[0024]
输入输出模块,用于输入待识别的文本,通过所述多任务命名实体识别模型根据第二特征向量矩阵,获取每个实体对应的实体类型。
[0025]
本发明还提供一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述中任一项所述方法。
[0026]
本发明还提供一种电子终端,包括:处理器及存储器;
[0027]
所述存储器用于存储计算机程序,所述处理器用于执行所述存储器存储的计算机程序,以使所述终端执行如上述中任一项所述方法。
[0028]
本发明的有益效果:本发明中的多任务命名实体识别方法、系统、介质及终端,通过将实体识别任务分解为两阶段的子任务,第一阶段任务专注于识别文本中的实体,暂不判断实体的类型,第二阶段任务则判断实体的类型,利用第一阶段识别到的实体,获取其对应的实体的特征向量表示,最终转化为一个多分类任务,提升模型实体识别的精度,本发明通过任务分解,当实体类别较多时,能大幅度降低分类数量,此外,例如在常用的crf层中,减小转移矩阵学习规模,使整个模型的推理与内存消耗上会大幅降低。
附图说明
[0029]
图1是本发明实施例中多任务命名实体识别方法的流程示意图。
[0030]
图2是本发明实施例中的多任务命名实体识别模型结构示意图。
具体实施方式
[0031]
以下通过特定的具体实例说明本发明的实施方式,本领域技术人员可由本说明书所揭露的内容轻易地了解本发明的其他优点与功效。本发明还可以通过另外不同的具体实施方式加以实施或应用,本说明书中的各项细节也可以基于不同观点与应用,在没有背离本发明的精神下进行各种修饰或改变。需说明的是,在不冲突的情况下,以下实施例及实施例中的特征可以相互组合。
[0032]
需要说明的是,以下实施例中所提供的图示仅以示意方式说明本发明的基本构想,遂图式中仅显示与本发明中有关的组件而非按照实际实施时的组件数目、形状及尺寸绘制,其实际实施时各组件的型态、数量及比例可为一种随意的改变,且其组件布局型态也可能更为复杂。
[0033]
在下文描述中,探讨了大量细节,以提供对本发明实施例的更透彻的解释,然而,对本领域技术人员来说,可以在没有这些具体细节的情况下实施本发明的实施例是显而易见的,在其他实施例中,以方框图的形式而不是以细节的形式来示出公知的结构和设备,以避免使本发明的实施例难以理解。
[0034]
如图1所示,本实施例中的多任务命名实体识别方法,包括:
[0035]
s1、预先定义实体序列标志和用于表示不同实体类别的实体类型,并获取二者之间的映射关系,建立多任务命名实体识别模型;
[0036]
s2、将待识别的文本输入至训练后的多任务命名实体识别模型,通过所述训练后的多任务命名实体识别模型的不同层级,依次获取第一特征向量矩阵、待识别文本中实体序列和第二特征向量矩阵;所述第一特征向量矩阵包括由每个字符的语义向量构成的文本整体语义向量矩阵,所述第二特征向量矩阵通过查找所有实体在第一特征向量矩阵的特征向量表示获取;
[0037]
s3、根据第二特征向量矩阵,获取每个实体对应的实体类型。
[0038]
在本实施例中,首先预定义实体序列标志、实体类型,得到实体序列标志、实体类型映射字典。
[0039]
具体包括:
[0040]
步骤1.1、定义实体序列标志类型,作为是否为实体标志的判断标志,本实施例中的实体标志类型为bio的标记,其中b表示为实体的头部,i表示实体的非头部,o表示非实体部分,即总计三种类型;
[0041]
步骤1.2、根据确定的实体序列标志类型,构建实体序列标志类型的字典编码,即将实体序列标志类型与一个有序数组一一对应,最终生成的字典编码可以如:{b:0,i:1,o:2};
[0042]
步骤1.3、定义待识别文本中可能存在的实体类型,作为待识别实体类型的范围,这里的实体类型通常为:品牌、电子产品、产地、国籍、出生地等,应当定义所有需要识别的实体类型。
[0043]
步骤1.4、根据上述定义好的实体类型,构建实体类型的字典编码,即一种实体类型与一个有序数组一一对应,最终生成实体类型字典码,所述的字典码可以如:{品牌:0,电子产品:1,产地:2,国籍:3,

,出生地:n}。
[0044]
在本实施例中,将待识别的文本输入至训练后的多任务命名实体识别模型,通过
所述训练后的多任务命名实体识别模型的不同层级,依次获取第一特征向量矩阵、待识别文本中实体序列和第二特征向量矩阵;所述第一特征向量矩阵包括由每个字符的语义向量构成的文本整体语义向量矩阵,所述第二特征向量矩阵通过查找所有实体在第一特征向量矩阵的特征向量表示获取;再根据第二特征向量矩阵,获取每个实体对应的实体类型。
[0045]
具体的包括如下步骤:
[0046]
步骤2、将待识别的文本按字分割输入到模型第一层级当中,生成第一特征向量矩阵。
[0047]
具体包括:
[0048]
步骤2.1、对于待识别的文本按字级别划分并编码,输入到模型第一层级编码器当中,所述的模型第一层级编码器是某类自然语言模型编码器。具体地,这里不妨以bert作为编码器,对于待识别的文本通过分字组件tokenizer进行分割,并映射为token序列编码,构成bert的标注输入,然后输入到bert编码器当中。
[0049]
步骤2.2、对于经过bert编码器的待识别文本token序列,bert的最终输出层为每个输入字符的语义向量构成的文本整体语义向量矩阵,其中也包含标识符的语义向量,即为所述的第一特征向量矩阵。若输入的长度为l,l包括待识别文本分割后的最大长度与标识符长度,则第一特征向量矩阵的维度为[l,768],其中768为bert的词嵌入维度。
[0050]
步骤3、将生成第一特征向量矩阵输入到模型第二层级当中,生成待识别文本中实体序列。
[0051]
具体包括:
[0052]
步骤3.1、将步骤2.2中生成第一特征向量矩阵输入到模型第二层级当中,所述模型第二层级为实体标志类型分类层,所述实体标志分类层可以为条件随机场、全连接层,具体地,这里不妨以条件随机场crf为实体标志类型分类层,即对于第一特征向量矩阵中每个输入字符的语义向量输入到crf中进行转移矩阵的学学习与分类。因实体标志类型为bio的类型,则最终的实体标志类为三类,即对于每个文本字符进行分类后将属于b\i\o三种类型的一种。对于crf层,除了对于每个字符进行分类外,还要进行b\i\o之间的转移概率学习,用于识别相邻间的序列类别是否合理,故最终需要学习一个3*3的转移矩阵。转移矩阵可以表示为如下表格:
[0053] biob0.050.80.15i0.10.40.5o0.20.010.79
[0054]
表1
[0055]
如上述表格,其中b->i的转移概率为0.8,表示b后面为i的合理性为0.8,即通常b后面都为i,如bi、bii,显然符合一个实体的情况;又如b->b的概率为0.05,显然连续两个字符都为实体开头的概率较小,即一般为识别错误的情况。具体地,如有一待识别文本为”苹果手机进口于美国”,则经过模型第二层级生成的实体序列为[b,i,b,i,o,o,o,b,i],可以通过对应位置的实体序列类型得出

苹果



手机



美国

为该待识别文本中的实体部分。
[0056]
步骤4、通过生成待识别文本中实体序列,查找所有实体在第一特征向量矩阵的特征向量表示并构成第二特征向量矩阵。
[0057]
具体包括:
[0058]
步骤4.1、对于步骤3中已经得到了待识别文本中的实体部分,如:

苹果



手机



美国

,但尚未确定每个实体所属的实体类型,故需要对已经获得的所有实体进行实体类型的分类。对于每个已经获得的实体,可以通过在实体序列对应的位置,获取每个实体头位置序列与尾位置序列,当然也可以获得实体中每个字的位置序列,为了便于所有实体统一表示,我们均只获取位置序列与尾位置序列,即一个实体由头尾位置唯一确定,对于单字实体,则头尾相同。
[0059]
步骤4.2、对于上述获得的实体头位置序列、实体尾位置序列,并结合由步骤2获得每个字符的语义向量构成第一特征向量矩阵,分别查找每个实体头尾在第一特征向量矩阵中对应的语义特征向量,并分别构成实体头语义特征向量序列、实体尾语义特征向量序列;特别地,这里的每个字符的语义向量是融合了上下文场景语境的语义向量,即每个字在不同场景的语义向量并不相同;如实体

苹果

,则分别获取实体头



与实体尾



在当前上下文场景的语义向量,即通过对应的位置在第一特征向量矩阵中查找即可。
[0060]
步骤4.3、将所述实体头语义特征向量序列、实体尾语义特征向量序列,分别取出每个实体的头、尾语义特征向量,并取头、尾语义特征向量的均值作为该实体的语义特征向量,最终构成实体语义特征向量矩阵,即为所述第二特征向量矩阵。如实体

苹果

,则获取实体头



与实体尾



的语义特征向量均值作为实体

苹果

的语义特征向量;对于大于两个字的实体,按上述统一方法仍只取实体头尾的语义特征向量均值作为该实体的语义特征向量,所有实体的语义特征向量则构成了实体语义特征向量矩阵,若待识别文本中的已识别出的个数为n,则第二特征向量矩阵的维度为[n,768],其中768为bert的词嵌入维度。
[0061]
步骤5、将第二特征向量矩阵输入到模型第三层级当中,得到每个实体对应的实体类型。
[0062]
具体包括
[0063]
步骤5.1、将所述所有实体的语义特征向量则构成了实体语义特征向量矩阵,即第二特征向量矩阵,输入到模型第三层级当中,所述模型第三层级为实体类型分类层,这里直接为一个多分类的全连接层,即对于每一个实体向量进行多分类,多分类类别为预定义的实体类型的类别,最终可以得到每个实体对应的实体类型类别序号。
[0064]
步骤5.2、对于得到的每个实体对应的实体类型类别序号结合实体类型字典码,可以得到每个实体的实际实体类型,再通过已得到各个实体的位置序列,最终可以得到待识别文本所有实体的位置范围及该实体的具体类型。
[0065]
相应的,本实施例还提供一种多任务命名实体识别系统,包括:
[0066]
配置模块,用于预先定义实体序列标志和用于表示不同实体类别的实体类型,并获取二者之间的映射关系,
[0067]
建模模块,用于建立多任务命名实体识别模型并进行训练,
[0068]
将待识别的文本输入至训练后的多任务命名实体识别模型,通过所述训练后的多任务命名实体识别模型的不同层级,依次获取第一特征向量矩阵、待识别文本中实体序列和第二特征向量矩阵;所述第一特征向量矩阵包括由每个字符的语义向量构成的文本整体语义向量矩阵,所述第二特征向量矩阵通过查找所有实体在第一特征向量矩阵的特征向量表示获取;
[0069]
输入输出模块,用于输入待识别的文本,通过所述多任务命名实体识别模型根据第二特征向量矩阵,获取每个实体对应的实体类型。
[0070]
本实施例中的多任务命名实体识别系统利用上述方法,通过将实体识别任务分解为两阶段的子任务,第一阶段任务专注于识别文本中的实体,暂不判断实体的类型,其中实体的判别标识任务为一个bio的三分类任务;第二阶段任务则判断实体的类型,利用第一阶段识别到的实体,获取其对应的实体的特征向量表示,最终转化为一个多分类任务,其中分类类别为实体类别。对于当前的主流方法,直接识别实体及其类别,则分类类别=实体类别*2+1,通常分类任务中,类别数量越多,识别精度会下降,本实施例通过任务分解,总的分类类别=3+实体类别,当实体类别较多时,如1000类,主流方法分裂类别=1000*2+1=2001,本发明的总分类类别=3+1000=1003,则能降低约50%的分类数量,可以提高最终的识别精度。此外,在常用的crf层中,crf层的训练、推理时间占模型整体用时的比例较大,当实体类别较多时,如1000类,则较3*3的转移矩阵训练与(实体类别*2+1)*(实体类别*2+1)=2001*2001的转移矩阵训练,本发明在整个模型的训练、推理与内存消耗上会大幅降低。
[0071]
本实施例还提供一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现本实施例中的任一项方法。
[0072]
本实施例还提供一种电子终端,包括:处理器及存储器;
[0073]
所述存储器用于存储计算机程序,所述处理器用于执行所述存储器存储的计算机程序,以使所述终端执行本实施例中任一项方法。
[0074]
本实施例中的计算机可读存储介质,本领域普通技术人员可以理解:实现上述各方法实施例的全部或部分步骤可以通过计算机程序相关的硬件来完成。前述的计算机程序可以存储于一计算机可读存储介质中。该程序在执行时,执行包括上述各方法实施例的步骤;而前述的存储介质包括:rom、ram、磁碟或者光盘等各种可以存储程序代码的介质。
[0075]
本实施例提供的电子终端,包括处理器、存储器、收发器和通信接口,存储器和通信接口与处理器和收发器连接并完成相互间的通信,存储器用于存储计算机程序,通信接口用于进行通信,处理器和收发器用于运行计算机程序,使电子终端执行如上方法的各个步骤。
[0076]
在本实施例中,存储器可能包含随机存取存储器(random access memory,简称ram),也可能还包括非易失性存储器(non-volatile memory),例如至少一个磁盘存储器。
[0077]
上述的处理器可以是通用处理器,包括中央处理器(central processing unit,简称cpu)、网络处理器(network processor,简称np)等;还可以是数字信号处理器(digital signal processing,简称dsp)、专用集成电路(application specific integrated circuit,简称asic)、现场可编程门阵列(field-programmable gate array,简称fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。
[0078]
在上述实施例中,除非另外规定,否则通过使用“第一”、“第二”等序号对共同的对象进行描述,只表示其指代相同对象的不同实例,而非是采用表示被描述的对象必须采用给定的顺序,无论是时间地、空间地、排序地或任何其他方式。在上述实施例中,说明书对“本实施例”的提及表示结合实施例说明的特定特征、结构或特性包括在至少一些实施例中,但不必是全部实施例。“本实施例”的多次出现不一定全部都指代相同的实施例。
[0079]
在上述实施例中,尽管已经结合了本发明的具体实施例对本发明进行了描述,但
是根据前面的描述,这些实施例的很多替换、修改和变形对本领域普通技术人员来说将是显而易见的。例如,其他存储结构(例如,动态ram(dram))可以使用所讨论的实施例。本发明的实施例旨在涵盖落入所附权利要求的宽泛范围之内的所有这样的替换、修改和变型。
[0080]
本发明可用于众多通用或专用的计算系统环境或配置中。例如:个人计算机、服务器计算机、手持设备或便携式设备、平板型设备、多处理器系统、基于微处理器的系统、置顶盒、可编程的消费电子设备、网络pc、小型计算机、大型计算机、包括以上任何系统或设备的分布式计算环境等等。
[0081]
本发明可以在由计算机执行的计算机可执行指令的一般上下文中描述,例如程序模块。一般地,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、数据结构等等。也可以在分布式计算环境中实践本发明,在这些分布式计算环境中,由通过通信网络而被连接的远程处理设备来执行任务。在分布式计算环境中,程序模块可以位于包括存储设备在内的本地和远程计算机存储介质中。
[0082]
上述实施例仅示例性说明本发明的原理及其功效,而非用于限制本发明。任何熟悉此技术的人士皆可在不违背本发明的精神及范畴下,对上述实施例进行修饰或改变。因此,但凡所属技术领域中具有通常知识者在未脱离本发明所揭示的精神与技术思想下所完成的一切等效修饰或改变,仍应由本发明的权利要求所涵盖。
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1