中文命名实体识别方法、装置、计算机设备和存储介质与流程

文档序号:18870091发布日期:2019-10-14 19:20阅读:339来源:国知局
本申请涉及信息处理领域,特别是涉及一种中文命名实体识别方法、装置、计算机设备和存储介质。
背景技术
::命名实体识别(namedentityrecognition,简称ner),又称作“专名识别”,是指识别文本中具有特定意义的实体,主要包括人名、地名、机构名、专有名词等。命名实体识别作为自然语言处理任务中的基础任务,它的效果会直接影响实体链接、机器翻译、关系抽取等任务。由于中文没有天然的分割符来分割每个单词,因此基于字的中文命名实体识别相比于基于词的方法是一个更好的选择。常用的命名实体识别方法有bilstm(bi-directionallongshort-termmemory,双向长短期记忆)结合crf(conditionalrandomfields,条件随机场)等方法,通过训练,识别出每个字的标签,然后将相同类型的标签结合组成一个实体,这种方法依赖于较大的实体词典,然而,当添加较大的实体词典时,识别效率较低。技术实现要素:本申请的目的在于提供一种中文命名实体识别方法、装置、计算机设备和可读存储介质,可以无需依赖实体字典,有效提高识别效率。本申请的目的通过如下技术方案实现:一种中文命名实体识别方法,所述方法包括:获取待识别语句,将所述待识别语句输入预设神经网络的嵌入层,输出所述待识别语句的输出字向量;将所述输出字向量分别同步输入预设的双向长短期记忆网络和预设的空洞卷积网络得到输出矩阵;将所述输出矩阵输入预设的分段长短期记忆网络,得到多个预测序列;采用条件随机场算法从所述预测序列中选取最优序列,根据所述最优序列获取识别出的实体。在一个实施例中,所述预设神经网络的嵌入层包括word2vec工具、分词器和bichar特征。在一个实施例中,所述将所述待识别语句输入预设神经网络的嵌入层,输出所述待识别语句的输出字向量的步骤,包括:采用word2vec工具获取所述待识别语句的word2vec字向量;采用所述分词器对所述待识别语句进行分词得到分词向量;根据所述bichar特征获取所述待识别语句的bichar向量;将所述word2vec字向量、所述分词向量和所述bichar向量组合得到所述输出字向量。在一个实施例中,所述word2vec工具包括固定的word2vec和微调的word2vec。在一个实施例中,所述采用word2vec工具获取所述待识别语句的word2vec字向量的步骤,包括:采用固定的word2vec获取所述待识别语句的第一字向量;采用微调的word2vec获取所述待识别语句的第二字向量;将所述第一字向量和所述第二字向量利用加权平均的方法结合得到所述word2vec字向量。在一个实施例中,所述将所述输出字向量分别同步输入预设的双向长短期记忆网络和预设的空洞卷积网络得到输出矩阵的步骤,包括:将所述输出字向量输入预设的长短期记忆网络进行特征变换得到第一输出序列;同步将所述输出字向量输入预设的空洞卷积网络进行特征变换得到第二输出序列;根据所述第一输出序列和所述第二输出序列计算所述输出矩阵。在一个实施例中,所述根据所述第一输出序列和所述第二输出序列计算所述输出矩阵的步骤,包括:采用如下公式计算所述输出矩阵:duali=αi*hi+(1-αi)*di式中:wdt和b是固定参数;αi表示第i个字的权重;hi表示所述第一输出序列;di表示所述第二输出序列。一种中文命名实体识别装置,所述装置包括:嵌入模块,用于获取待识别语句,将所述待识别语句输入预设神经网络的嵌入层,输出所述待识别语句的输出字向量;双通道模块,用于将所述输出字向量分别同步输入预设的双向长短期记忆网络和预设的空洞卷积网络得到输出矩阵;分段模块,用于将所述输出矩阵输入预设的分段长短期记忆网络,得到多个预测序列;识别模块,用于采用条件随机场算法从所述预测序列中选取最优序列,根据所述最优序列获取识别出的实体。一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现上述任一实施例所述的步骤。一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述任一实施例所述的步骤。本申请提供的中文命名实体识别方法,其获取待识别语句,将所述待识别语句输入预设神经网络的嵌入层,输出所述待识别语句的输出字向量;将所述输出字向量分别同步输入预设的双向长短期记忆网络和预设的空洞卷积网络得到输出矩阵;将所述输出矩阵输入预设的分段长短期记忆网络,得到多个预测序列;采用条件随机场算法从所述预测序列中选取最优序列,根据所述最优序列获取识别出的实体。同步采用双向长短期记忆网络和预设的空洞卷积网络进行特征变换,可以有效提取特征,无需赖于实体词典,提高识别效率。附图说明图1为一个实施例中中文命名实体识别方法的应用环境图;图2为一个实施例中中文命名实体识别系统结构示意图;图3为一个实施例中中文命名实体识别方法的流程示意图;图4为一个示例中标注数据示意图;图5为另一个实施例中中文命名实体识别装置的结构框图;图6为一个实施例中计算机设备的内部结构图。具体实施方式下面详细描述本发明的实施例,所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,仅用于解释本发明,而不能解释为对本发明的限制。本
技术领域
:技术人员可以理解,除非特意声明,这里使用的单数形式“一”、“一个”、“所述”和“该”也可包括复数形式。应该进一步理解的是,本发明的说明书中使用的措辞“包括”是指存在所述特征、整数、步骤、操作、元件和/或组件,但是并不排除存在或添加一个或多个其他特征、整数、步骤、操作、元件、组件和/或它们的组。本
技术领域
:技术人员可以理解,除非另外定义,这里使用的所有术语(包括技术术语和科学术语),具有与本发明所属领域中的普通技术人员的一般理解相同的意义。还应该理解的是,诸如通用字典中定义的那些术语,应该被理解为具有与现有技术的上下文中的意义一致的意义,并且除非像这里一样被特定定义,否则不会用理想化或过于正式的含义来解释。本申请提供的中文命名实体识别方法,可以应用于如图1所示的应用环境中。具体的,服务器获取待识别语句,将所述待识别语句输入预设神经网络的嵌入层,输出所述待识别语句的输出字向量;服务器将所述输出字向量分别同步输入预设的双向长短期记忆网络和预设的空洞卷积网络得到输出矩阵;服务器将所述输出矩阵输入预设的分段长短期记忆网络,得到多个预测序列;服务器采用条件随机场算法从所述预测序列中选取最优序列,根据所述最优序列获取识别出的实体。本
技术领域
:技术人员可以理解,这里所使用的“服务器”可以用独立的服务器或者是多个服务器组成的服务器集群来实现。在一个实施例中,本申请的中文命名实体识别方法,可以采用一种定制的中文命名实体识别系统形式在图1所示的服务器上实现,如图2所示,该中文命名实体识别系统包括embedding(嵌入)层、dualchannel(双通道)层、分段lstm(segmentlongshort-termmemory,分段长短期记忆)层和crf(conditionalrandomfield,条件随机场)层,各层功能如下:(1)embedding层综合考虑了字向量特征、分词特征、bichar特征;(2)双通道结构:双通道结构指将同时使用bilstm(bi-longshort-termmemory,双向长短期记忆)结构和idcnn(iterateddilatedconvolutionalneuralnetworks,空洞卷积网络)结构进行特征变换并将bilstm的输出与idcnn输出进行加权求和,采用双通道结构可以显著提高ner模型表现。(3)分段lstm(segmentlstm):segmentlstm的输入是dualchannel层的输出序列,在segmentlstm结构中,将输入序列分为多个segment;而在segment内,采用self-attention模型(自注意力模型)输出这一段对应的输出结果。在segment(段)之间,使用lstm(longshort-termmemory,长短期记忆)模型传递信息。(4)crf层:从分段lstm输出的序列中选取最优序列,得到识别出的实体。在一个实施例中,如图3所示,提供了一种中文命名实体识别方法,以该方法应用于图1中的服务器为例进行说明,包括以下步骤:步骤s202,获取待识别语句,将所述待识别语句输入预设神经网络的嵌入层,输出所述待识别语句的输出字向量。本步骤中,预设神经网络的嵌入层包括word2vec工具、分词器和bichar特征;其中,分词器采用的是jieba分词器。在一个实施例中,步骤s202的将所述待识别语句输入预设神经网络的嵌入层,输出所述待识别语句的输出字向量的步骤,包括:(1)采用word2vec工具获取所述待识别语句的word2vec字向量。具体的,word2vec工具包括固定的word2vec和fine-tune字向量(微调的word2vec),同时采用固定的word2vec和fine-tune字向量,可以防止过拟合,并且可以保留最后得到的word2vec字向量中本身的语义信息。具体的,采用word2vec工具获取所述待识别语句的word2vec字向量包括:a、采用固定的word2vec获取所述待识别语句的第一字向量;b、采用微调的word2vec获取所述待识别语句的第二字向量;c、将所述第一字向量和所述第二字向量利用加权平均的方法结合得到所述word2vec字向量。固定向量和fine-tune字向量的结合方式如下:eci=αi*ec(cj)+(1-αi)*ef(cj)(2)ec和ef表示固定字向量和fine-tune字向量对应的字向量lookup表,ec(cj)表示第i个字对应的固定字向量,ef(cj)表示第i个字对应的fine-tune字向量,wet和b表示参数。αi表示权重,通过公式(1)计算,最终第i个字对应的字向量eci通过公式(2)计算。(2)采用所述分词器对所述待识别语句进行分词得到分词向量。具体的,采用jieba分词作为分词器,将分词结果分为4类:开始(b)、中间(i)、结尾(e)、单字(s),通过可fine-tune的向量lookup表转换为向量。esi=es(seg(cj))(3)公式(3)中,es表示分词标记向量lookup表,esi表示第i个字的分词向量。(3)根据所述bichar特征获取所述待识别语句的bichar向量。具体的,bichar特征:通过使模型看到下一个字来提高模型能力。ebi=eb(cj,cj+1)(4)公式(4)中,eb表示可fine-tune的bichar向量lookup表,ebi表示bichar向量。(4)将所述word2vec字向量、所述分词向量和所述bichar向量组合得到所述输出字向量。本步骤中,最终的字向量表示为:ei=[eci;esi;ebi](5)公式(5)中,ei表示第i个字的向量。步骤s204,将所述输出字向量分别同步输入预设的双向长短期记忆网络和预设的空洞卷积网络得到输出矩阵。在具体实施过程中,同时使用bilstm结构和idcnn结构进行特征变换并将bilstm的输出与idcnn输出进行加权求和,采用双通道模型可以让lstm与idcnn互补,更加有效的提取特征。具体的,步骤s204的将所述输出字向量分别同步输入预设的双向长短期记忆网络和预设的空洞卷积网络得到输出矩阵的步骤,包括:(1)将所述输出字向量输入预设的bilstm进行特征变换得到第一输出序列;(2)同步将所述输出字向量输入预设的空洞卷积网络进行特征变换得到第二输出序列;(3)根据所述第一输出序列和所述第二输出序列计算所述输出矩阵。具体的,双通道结构计算方式如下:duali=αi*hi+(1-αi)*di(7)公式(6)和(7)中wdt和b是参数,αi表示第i个字的权重,hi和di分别是bilstm和idcnn结构的输出。步骤s206,将所述输出矩阵输入预设的分段长短期记忆网络,得到多个预测序列。在本步骤中,segmentlstm的输入是dualchannel层的输出序列c_1,c_2,c_3,…,c_n,在segmentlstm结构中,将输入序列分为多个segment(段);而在segment内,采用self-attention模型输出这一段对应的输出结果;在segment之间,使用lstm模型传递信息。具体的,本步骤中的segmentlstm的每个段的大小是固定的。具体计算过程如下:在segment内部,使用self-attention机制(自注意力机制)来学习segment内任意两个字符之间的依赖关系并输出预测结果。self-attention的multi-headattention(多头注意力)机制计算方式如下:其中,q为querymatrix(查询矩阵);k为keysmatrix(键矩阵);v为valuematrix(值矩阵)。q,k,v均由输入矩阵进行不同的线性变换多次得到。d是segmentlstm层输入矩阵的维度。计算multi-headattention的方法是:首先对输入矩阵h进行分别进行h次不同的线性变换得到qi,ki,vii=1,2,...,h。然后分别对h个q,k,v进行attention(注意力)计算。最后的输出结果h′来自于h个attention结果拼接得到。计算方式如下:h′=[head1;head2;...;headh]wo(10)在得到multi-headattention的输出h′后,在经过一个前馈神经网络后即得到self-attention最终的输出,公式如下:output=relu(layernorm(h+h′)wd+bd)(11)segmentlstm结构计算方式:公式(12)和(13)中duali为双通道输出结果序列中属于第i个segment的部分。hi为第i步lstm单元的输出结果。对于第i个segment,使用self-attention结构进行模型预测,输入为拼接上一步lstm的输出与双通道层的输出的拼接输出为segmentlstm中第i个segment预测结果序列si。将si作为第i步lstm单元的输入,利用lstm结构来传递每一段输出结果si包含的信息,lstm的每步输出就保留了前面所有片段的输出结果信息。利用self-attention结构强大的特征提取能力来判断每个字符的可能输出。利用lstm控制信息传递的记忆能力,segmentlstm可以在segment之间传递输出结果信息。步骤s208,采用条件随机场算法从所述预测序列中选取最优序列,根据所述最优序列获取识别出的实体。本步骤中,损失函数采用crf层损失函数,预测时采用viterbi解码算法(维特比算法)来发现最优序列。上述的中文命名实体识别方法,通过获取待识别语句,将所述待识别语句输入预设神经网络的嵌入层,输出所述待识别语句的输出字向量;将所述输出字向量分别同步输入预设的双向长短期记忆网络和预设的空洞卷积网络得到输出矩阵;将所述输出矩阵输入预设的分段长短期记忆网络,得到多个预测序列;采用条件随机场算法从所述预测序列中选取最优序列,根据所述最优序列获取识别出的实体。同步采用双向长短期记忆网络和预设的空洞卷积网络进行特征变换,可以有效提取特征,无需赖于实体词典,提高识别效率。下面将结合具体示例和实验数据来阐述本申请中的中文命名实体识别方法的效果。(1)构建标注数据集:将中文文本按字标注,以图4为例;(2)将标注数据集按8:1:1的比例划分训练集、验证集、测试集并训练模型,参数设置见table1;(3)选取在测试集和验证集中表现最好的模型保存。table1参数设置msra数据集(levow,2006)是中文命名实体识别领域影响力最广的数据集,以下是本申请的识别结果与目前业界的多个模型结果对比:相比于传统的bilstm-crf模型,本申请的双通道segmentlstm模型有更强的能力。对于zhangatal.(2018)的模型来说,通过lattice结构来添加实体词典提高模型的能力,而对于mengatal.(2019)在zhangatal.(2018)基础上添加了汉字字形信息,他们的实验证明添加词典和汉字字形都对ner任务有显著的帮助。在使用了dualchannel层与changingsegmentlstm层后,本申请的结果达到了92.93的成绩。本申请只通过模型结构的改变,没有添加额外的特征,获得有竞争力的结果(f1指标低于zhangatal.(2018)0.24,低于mengatal.(2019)0.95)。如图5所示,图5为一个实施例中中文命名实体识别装置的结构示意图,本实施例中提供一种中文命名实体识别装置,包括嵌入模块501、双通道模块502、分段模块503和识别模块504,其中:嵌入模块501,用于获取待识别语句,将所述待识别语句输入预设神经网络的嵌入层,输出所述待识别语句的输出字向量;双通道模块502,用于将所述输出字向量分别同步输入预设的双向长短期记忆网络和预设的空洞卷积网络得到输出矩阵;分段模块503,用于将所述输出矩阵输入预设的分段长短期记忆网络,得到多个预测序列;识别模块504,用于采用条件随机场算法从所述预测序列中选取最优序列,根据所述最优序列获取识别出的实体。关于中文命名实体识别装置的具体限定可以参见上文中对于中文命名实体识别方法的限定,在此不再赘述。上述中文命名实体识别装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。如图6所示,图6为一个实施例中计算机设备的内部结构示意图。该计算机设备包括通过装置总线连接的处理器、非易失性存储介质、存储器和网络接口。其中,该计算机设备的非易失性存储介质存储有操作装置、数据库和计算机可读指令,数据库中可存储有控件信息序列,该计算机可读指令被处理器执行时,可使得处理器实现一种中文命名实体识别方法。该计算机设备的处理器用于提供计算和控制能力,支撑整个计算机设备的运行。该计算机设备的存储器中可存储有计算机可读指令,该计算机可读指令被处理器执行时,可使得处理器执行一种中文命名实体识别方法。该计算机设备的网络接口用于与终端连接通信。本领域技术人员可以理解,图6中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。在一个实施例中,提出了一种计算机设备,计算机设备包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,处理器执行计算机程序时实现如下步骤:获取待识别语句,将所述待识别语句输入预设神经网络的嵌入层,输出所述待识别语句的输出字向量;将所述输出字向量分别同步输入预设的双向长短期记忆网络和预设的空洞卷积网络得到输出矩阵;将所述输出矩阵输入预设的分段长短期记忆网络,得到多个预测序列;采用条件随机场算法从所述预测序列中选取最优序列,根据所述最优序列获取识别出的实体。在其中一个实施例中,处理器执行计算机程序时所述预设神经网络的嵌入层包括word2vec工具、分词器和bichar特征。在其中一个实施例中,处理器执行计算机程序时所述将所述待识别语句输入预设神经网络的嵌入层,输出所述待识别语句的输出字向量的步骤,包括:采用word2vec工具获取所述待识别语句的word2vec字向量;采用所述分词器对所述待识别语句进行分词得到分词向量;根据所述bichar特征获取所述待识别语句的bichar向量;将所述word2vec字向量、所述分词向量和所述bichar向量组合得到所述输出字向量。在其中一个实施例中,处理器执行计算机程序时所述word2vec工具包括固定的word2vec和微调的word2vec。在其中一个实施例中,处理器执行计算机程序时所述采用word2vec工具获取所述待识别语句的word2vec字向量的步骤,包括:采用固定的word2vec获取所述待识别语句的第一字向量;采用微调的word2vec获取所述待识别语句的第二字向量;将所述第一字向量和所述第二字向量利用加权平均的方法结合得到所述word2vec字向量。在其中一个实施例中,处理器执行计算机程序时所述将所述输出字向量分别同步输入预设的双向长短期记忆网络和预设的空洞卷积网络得到输出矩阵的步骤,包括:将所述输出字向量输入预设的长短期记忆网络进行特征变换得到第一输出序列;同步将所述输出字向量输入预设的空洞卷积网络进行特征变换得到第二输出序列;根据所述第一输出序列和所述第二输出序列计算所述输出矩阵。在其中一个实施例中,处理器执行计算机程序时所述根据所述第一输出序列和所述第二输出序列计算所述输出矩阵的步骤,包括:采用如下公式计算所述输出矩阵:duali=αi*hi+(1-αi)*di;式中:wdt和b是固定参数;αi表示第i个字的权重;hi表示所述第一输出序列;di表示所述第二输出序列。在一个实施例中,提出了一种存储有计算机可读指令的存储介质,该计算机可读指令被一个或多个处理器执行时,使得一个或多个处理器执行如下步骤:获取待识别语句,将所述待识别语句输入预设神经网络的嵌入层,输出所述待识别语句的输出字向量;将所述输出字向量分别同步输入预设的双向长短期记忆网络和预设的空洞卷积网络得到输出矩阵;将所述输出矩阵输入预设的分段长短期记忆网络,得到多个预测序列;采用条件随机场算法从所述预测序列中选取最优序列,根据所述最优序列获取识别出的实体。在其中一个实施例中,计算机可读指令被处理器执行时所述预设神经网络的嵌入层包括word2vec工具、分词器和bichar特征。在其中一个实施例中,计算机可读指令被处理器执行时所述将所述待识别语句输入预设神经网络的嵌入层,输出所述待识别语句的输出字向量的步骤,包括:采用word2vec工具获取所述待识别语句的word2vec字向量;采用所述分词器对所述待识别语句进行分词得到分词向量;根据所述bichar特征获取所述待识别语句的bichar向量;将所述word2vec字向量、所述分词向量和所述bichar向量组合得到所述输出字向量。在其中一个实施例中,计算机可读指令被处理器执行时所述word2vec工具包括固定的word2vec和微调的word2vec。在其中一个实施例中,计算机可读指令被处理器执行时所述采用word2vec工具获取所述待识别语句的word2vec字向量的步骤,包括:采用固定的word2vec获取所述待识别语句的第一字向量;采用微调的word2vec获取所述待识别语句的第二字向量;将所述第一字向量和所述第二字向量利用加权平均的方法结合得到所述word2vec字向量。在其中一个实施例中,计算机可读指令被处理器执行时所述将所述输出字向量分别同步输入预设的双向长短期记忆网络和预设的空洞卷积网络得到输出矩阵的步骤,包括:将所述输出字向量输入预设的长短期记忆网络进行特征变换得到第一输出序列;同步将所述输出字向量输入预设的空洞卷积网络进行特征变换得到第二输出序列;根据所述第一输出序列和所述第二输出序列计算所述输出矩阵。在其中一个实施例中,计算机可读指令被处理器执行时所述根据所述第一输出序列和所述第二输出序列计算所述输出矩阵的步骤,包括:采用如下公式计算所述输出矩阵:duali=αi*hi+(1-αi)*di;式中:wdt和b是固定参数;αi表示第i个字的权重;hi表示所述第一输出序列;di表示所述第二输出序列。应该理解的是,虽然附图的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,其可以以其他的顺序执行。而且,附图的流程图中的至少一部分步骤可以包括多个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,其执行顺序也不必然是依次进行,而是可以与其他步骤或者其他步骤的子步骤或者阶段的至少一部分轮流或者交替地执行。以上所述仅是本申请的部分实施方式,应当指出,对于本
技术领域
:的普通技术人员来说,在不脱离本申请原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本申请的保护范围。当前第1页12当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1