命名实体识别方法、装置、存储介质及电子设备与流程

文档序号:29803073发布日期:2022-04-23 20:48阅读:88来源:国知局
命名实体识别方法、装置、存储介质及电子设备与流程

1.本公开涉及自然语言处理领域,具体地,涉及一种命名实体识别方法、装置、存储介质及电子设备。


背景技术:

2.命名实体识别(named entity recognition,简称ner)是生物医学领域自然语言处理应用的关键组成部分。在临床环境中,命名实体识别可用于从电子病历中提取和汇总相关信息,如隐藏在非结构化电子病历中的症状表现,病灶部位与诊断结果等。然而,目前的命名实体识别方法针对生物医学领域内复杂类型的命名实体(例如,嵌套式实体、非连续实体),通常无法有效识别。


技术实现要素:

3.本公开的目的是提供一种命名实体识别方法、装置、存储介质及电子设备。
4.为了实现上述目的,本公开第一方面,提供了一种命名实体识别方法,所述方法包括:
5.获取待识别文本;
6.将所述待识别文本作为预设实体识别模型的输入,以使所述预设实体识别模型输出所述待识别文本中的命名实体;
7.其中,所述预设实体识别模型用于获取由所述待识别文本中的每个字符形成的缓存队列,获取所述缓存队列中队首字符与预设归约栈中现存待定实体的关联度,根据所述关联度确定所述队首字符和/或所述待定实体对应的动作类型,所述动作类型为入栈动作,归约类动作或者出栈动作,通过执行所述动作类型对应的目标动作,以更新所述缓存队列中的所述队首字符和/或所述预设归约栈中的待定实体,并在所述目标动作包括所述出栈动作的情况下,将出栈后的所述待定实体作为所述待识别文本中的所述命名实体;
8.其中,所述归约类动作,用于将所述队首字符与最后入栈的预设数量个所述待定实体进行拼接后形成新的待定实体,并根据新的待定实体更新所述预设归约栈中现存的待定实体。
9.可选地,所述预设实体识别模型,用于:
10.获取所述缓存队列中每个字符对应的第一特征向量;
11.获取当前所述预设归约栈中最后入栈的预设数量个目标待定实体对应的第二特征向量;
12.根据每个字符对应的所述第一特征向量和每个所述目标待定实体的所述第二特征向量确定该目标待定实体对应的注意力向量,所述注意力向量用于表征所述目标待定实体与所述缓存队列中每个字符的关联度;
13.根据所述注意力向量确定所述缓存队列中队首字符和/或所述目标待定实体对应的动作类型;
14.根据所述动作类型更新所述预设归约栈中的所述待定实体和所述缓存队列;
15.循环执行所述获取所述缓存队列中每个字符对应的第一特征向量,至所述根据所述动作类型更新所述预设归约栈中的所述待定实体和所述缓存队列的步骤,直至所述预设归约栈和未识别的所述缓存队列均为空的情况下,将所述动作类型为出栈动作的待定实体确定为所述待识别文本中的命名实体。
16.可选地,所述预设实体识别模型包括注意力层,所述根据每个字符对应的所述第一特征向量和每个所述目标待定实体的所述第二特征向量确定该目标待定实体对应的注意力向量,包括:
17.将所述目标待定实体的所述第二特征向量与所述缓存队列中每个字符对应的第一特征向量作为所述注意力层的输入,以使所述注意力层输出所述目标待定实体的对应的注意力向量。
18.可选地,所述预设实体识别模型包括分类层,所述根据所述注意力向量确定所述缓存队列中队首字符和/或所述目标待定实体对应的动作类型,包括:
19.获取所述分类层上一次输出的历史动作类型对应的动作特征向量;
20.将所述动作特征向量和每个所述目标待定实体对应的注意力向量作为所述分类层的输入,以使所述分类层输出当前所述队首字符和/或所述目标待定实体对应的所述动作类型。
21.可选地,所述获取所述缓存队列中每个字符对应的第一特征向量,包括:
22.获取当前所述缓存队列中每个字符对应的字符特征向量,以及每个字符对应的上下文特征向量;
23.将每个字符对应的字符特征向量与该字符对应的所述上下文特征向量进行拼接,以得到所述缓存队列中每个字符对应的第一特征向量。
24.可选地,所述获取当前所述预设归约栈中最后入栈的预设数量个目标待定实体对应的第二特征向量,包括:
25.获取所述目标待定实体被压入所述预设归约栈之前,所述预设归约栈中每个待定实体的第三特征向量;
26.获取所述目标待定实体对应的第一特征向量;
27.将所述预设归约栈中每个待定实体的第三特征向量和所述目标待定实体对应的第一特征向量进行拼接,以得到每个所述目标待定实体对应的第二特征向量。
28.可选地,所述预设实体识别模型通过以下方式训练得到:
29.获取多个待识别文本样本,所述待识别文本样本包括命名实体的标注数据;
30.将所述多个待识别文本样本作为训练数据,通过所述训练数据对预设初始模型进行模型训练,以得到所述预设实体识别模型;
31.其中,所述预设初始模型包括注意力层和分类层;
32.所述预设初始模型,用于获取所述待识别文本样本中未识别的字符序列中每个字符对应的第一特征向量;获取当前预设归约栈中最后入栈的预设数量个目标待定实体样本对应的第二特征向量,并通过所述注意力层根据每个字符对应的所述第一特征向量和每个所述目标待定实体样本的所述第二特征向量确定该目标待定实体样本对应的注意力向量,所述注意力向量用于表征所述目标待定实体样本与所述字符序列中每个字符的关联度,并
通过所述分类层获取所述分类层上一次输出的历史动作类型对应的动作特征向量;根据所述动作特征向量和每个所述目标待定实体样本对应的注意力向量确定当前所述待识别文本样本中未识别的字符序列中的队首字符和/或所述目标待定实体样本对应的所述动作类型。
33.本公开第二方面,提供了一种命名实体识别装置,所述装置包括:
34.获取模块,被配置为获取待识别文本;
35.确定模块,被配置为将所述待识别文本作为预设实体识别模型的输入,以使所述预设实体识别模型输出所述待识别文本中的命名实体;
36.其中,所述预设实体识别模型用于获取由所述待识别文本中的每个字符形成的缓存队列,获取所述缓存队列中队首字符与预设归约栈中现存待定实体的关联度,根据所述关联度确定所述队首字符和/或所述待定实体对应的动作类型,所述动作类型为入栈动作,归约类动作或者出栈动作,通过执行所述动作类型对应的目标动作,以更新所述缓存队列中的所述队首字符和/或所述预设归约栈中的待定实体,并在所述目标动作包括所述出栈动作的情况下,将出栈后的所述待定实体作为所述待识别文本中的所述命名实体;
37.其中,所述归约类动作,用于将所述队首字符与最后入栈的预设数量个所述待定实体进行拼接后形成新的待定实体,并根据新的待定实体更新所述预设归约栈中现存的待定实体。
38.可选地,所述预设实体识别模型,用于:
39.获取所述缓存队列中每个字符对应的第一特征向量;
40.获取当前所述预设归约栈中最后入栈的预设数量个目标待定实体对应的第二特征向量;
41.根据每个字符对应的所述第一特征向量和每个所述目标待定实体的所述第二特征向量确定该目标待定实体对应的注意力向量,所述注意力向量用于表征所述目标待定实体与所述缓存队列中每个字符的关联度;
42.根据所述注意力向量确定所述缓存队列中队首字符和/或所述目标待定实体对应的动作类型;
43.根据所述动作类型更新所述预设归约栈中的所述待定实体和所述缓存队列;
44.循环执行所述获取所述缓存队列中每个字符对应的第一特征向量,至所述根据所述动作类型更新所述预设归约栈中的所述待定实体和所述缓存队列的步骤,直至所述预设归约栈和未识别的所述缓存队列均为空的情况下,将所述动作类型为出栈动作的待定实体确定为所述待识别文本中的命名实体。
45.可选地,所述预设实体识别模型包括注意力层,所述预设实体识别模型,用于:
46.将所述目标待定实体的所述第二特征向量与所述缓存队列中每个字符对应的第一特征向量作为所述注意力层的输入,以使所述注意力层输出所述目标待定实体的对应的注意力向量。
47.可选地,所述预设实体识别模型包括分类层,所述预设实体识别模型,用于:
48.获取所述分类层上一次输出的历史动作类型对应的动作特征向量;
49.将所述动作特征向量和每个所述目标待定实体对应的注意力向量作为所述分类层的输入,以使所述分类层输出当前所述队首字符和/或所述目标待定实体对应的所述动
作类型。
50.可选地,所述预设实体识别模型,用于:
51.获取当前所述缓存队列中每个字符对应的字符特征向量,以及每个字符对应的上下文特征向量;
52.将每个字符对应的字符特征向量与该字符对应的所述上下文特征向量进行拼接,以得到所述缓存队列中每个字符对应的第一特征向量。
53.可选地,所述预设实体识别模型,用于:
54.获取所述目标待定实体被压入所述预设归约栈之前,所述预设归约栈中每个待定实体的第三特征向量;
55.获取所述目标待定实体对应的第一特征向量;
56.将所述预设归约栈中每个待定实体的第三特征向量和所述目标待定实体对应的第一特征向量进行拼接,以得到每个所述目标待定实体对应的第二特征向量。
57.可选地,所述装置还包括模型训练模块,所述模型训练模块,被配置为:
58.获取多个待识别文本样本,所述待识别文本样本包括命名实体的标注数据;
59.将所述多个待识别文本样本作为训练数据,通过所述训练数据对预设初始模型进行模型训练,以得到所述预设实体识别模型;
60.其中,所述预设初始模型包括注意力层和分类层;
61.所述预设初始模型,用于获取所述待识别文本样本中未识别的字符序列中每个字符对应的第一特征向量;获取当前预设归约栈中最后入栈的预设数量个目标待定实体样本对应的第二特征向量,并通过所述注意力层根据每个字符对应的所述第一特征向量和每个所述目标待定实体样本的所述第二特征向量确定该目标待定实体样本对应的注意力向量,所述注意力向量用于表征所述目标待定实体样本与所述字符序列中每个字符的关联度,并通过所述分类层获取所述分类层上一次输出的历史动作类型对应的动作特征向量;根据所述动作特征向量和每个所述目标待定实体样本对应的注意力向量确定当前所述待识别文本样本中未识别的字符序列中的队首字符和/或所述目标待定实体样本对应的所述动作类型。
62.本公开第三方面,提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现以上第一方面所述方法的步骤。
63.本公开第四方面,提供了一种电子设备,包括:
64.存储器,其上存储有计算机程序;
65.处理器,用于执行所述存储器中的所述计算机程序,以实现以上第一方面所述方法的步骤。
66.上述技术方案,通过将所述待识别文本作为预设实体识别模型的输入,以使所述预设实体识别模型输出所述待识别文本中的命名实体;其中,所述预设实体识别模型用于获取由所述待识别文本中的每个字符形成的缓存队列,获取所述缓存队列中队首字符与预设归约栈中现存待定实体的关联度,根据所述关联度确定所述队首字符和/或所述待定实体对应的动作类型,通过执行所述动作类型对应的目标动作,以更新所述缓存队列中的所述队首字符和/或所述预设归约栈中的待定实体,并在所述目标动作包括所述出栈动作的情况下,将出栈后的所述待定实体作为所述待识别文本中的所述命名实体,能够有效识别
各种类型的命名实体,从而能够有效提升命名实体的识别率。
67.本公开的其他特征和优点将在随后的具体实施方式部分予以详细说明。
附图说明
68.附图是用来提供对本公开的进一步理解,并且构成说明书的一部分,与下面的具体实施方式一起用于解释本公开,但并不构成对本公开的限制。在附图中:
69.图1是本公开一示例性实施例示出的一种命名实体识别方法的流程图;
70.图2是根据本公开图1所示实施例示出的一种命名实体识别方法的流程图;
71.图3是本公开一示例性实施例示出的一种模型训练方法的流程图;
72.图4是本公开一示例性实施例示出的一种命名实体识别装置的框图;
73.图5是根据一示例性实施例示出的一种电子设备的框图;
74.图6是根据一示例性实施例示出的另一种电子设备的框图。
具体实施方式
75.以下结合附图对本公开的具体实施方式进行详细说明。应当理解的是,此处所描述的具体实施方式仅用于说明和解释本公开,并不用于限制本公开。
76.在详细介绍本公开的具体实施方式之前,首先对本公开的应用场景进行以下说明,本公开可以应用于命名实体的识别过程,例如可以应用于识别电子病历中命名实体,以实现对电子病历中症状表现,病灶部位以及诊断结果等信息进行提取和汇总的过程中。由于生物医学领域内经常出现复杂类型的命名实体,例如,嵌套式实体以及非连续实体,相关技术中的命名实体识别方法,通常无法有效识别复杂类型的命名实体,不能保证针对各种类型的命名实体,均具有较高的识别率。
77.为了解决以上技术问题,本公开提供了一种命名实体识别方法、装置、存储介质及电子设备,该命名实体识别方法通过将该待识别文本作为预设实体识别模型的输入,以使该预设实体识别模型输出该待识别文本中的命名实体;其中,该预设实体识别模型用于获取由待识别文本中的每个字符形成的缓存队列,获取缓存队列中队首字符与预设归约栈中现存待定实体的关联度,根据该关联度确定所述队首字符和/或该待定实体对应的动作类型,通过执行该动作类型对应的目标动作,以更新该缓存队列中的该队首字符和/或该预设归约栈中的待定实体,并在该目标动作包括该出栈动作的情况下,将出栈后的该待定实体作为该待识别文本中的该命名实体,能够有效识别各种类型的命名实体,从而能够有效提升命名实体的识别率。
78.下面结合具体实施例对本公开的实施方式进行详细阐述。
79.图1是本公开一示例性实施例示出的一种命名实体识别方法的流程图;如图1所示,该方法可以包括:
80.步骤101,获取待识别文本。
81.步骤102,将该待识别文本作为预设实体识别模型的输入,以使该预设实体识别模型输出该待识别文本中的命名实体。
82.其中,该预设实体识别模型用于获取由该待识别文本中的每个字符形成的缓存队列,获取该缓存队列中队首字符与预设归约栈中现存待定实体的关联度,根据该关联度确
定该队首字符和/或该待定实体对应的动作类型,该动作类型为入栈动作,归约类动作或者出栈动作,通过执行该动作类型对应的目标动作,以更新该缓存队列中的该队首字符和/或该预设归约栈中的待定实体,并在该目标动作为该出栈动作的情况下,将出栈后的该待定实体作为该待识别文本中的该命名实体,该归约类动作,用于将该队首字符与最后入栈的预设数量个该待定实体进行拼接后形成新的待定实体,并根据该新的待定实体更新该预设归约栈中现存的待定实体。
83.需要说明的是,该预设实体识别模型中可以预先设置有预设缓存模块和预设归约栈,该预设缓存模块用于缓存当前该待识别文本中的暂未识别的字符序列,以形成该缓存队列,该预设归约栈用于暂存该待识别文本中已识别到的待定实体。该归约类动作可以包括归约动作,左归约动作,以及右归约动作,该归约动作用于将当前队首字符与该该归约栈中栈首的预设数量个待定实体进行拼接后生成新的待定实体,并将新的待定实体压入该预设归约栈中,该左归约动作可以是将该队首字符与该栈首的指定数量个待定实体进行拼接后得到新的待定实体,并对该新的待定实体执行出栈动作,同时保留预设归约栈内的栈首的该待定实体;该右归约动作可以是将该队首字符与栈首的指定数量个(例如两个)待定实体进行拼接后得到新的待定实体,并对该新的待定实体执行出栈动作,同时,将该新的待定实体保存在该预设归约栈内,其中,对该新的待定实体执行出栈动作,即将该新的待定实体作为一个命名实体输出,该入栈动作即将该队首字符作为待定实体存于该预设归约栈中,另外,该动作类型还可以包括删除动作,该删除动作用于将该字符序列中的队首字符或者预设归约栈中的待定实体进行删除。
84.另外,该队首字符与预设归约栈中现存待定实体的关联度用于表征该队首字符与现存的待定实体之间形成命名实体的概率,该关联度越高,该队首字符与现存的待定实体之间形成命名实体的概率越大,该关联度可以通过自注意力机制,多头注意力机制,或者其他机器学习模型获取得到。
85.示例地,以待识别文本为“腿部刺痛,麻木”为例进行说明,在获取到该待识别文本后,以字符为单位进行分割,并将分割后的字符依次缓存至该预设缓存模块中,从而形成该待识别文本对应的缓存队列,该缓存队列按照先入先出的原则更新排列在队首的字符(即队首字符),针对该缓存队列中的每个队首字符,获取该队首字符与当前该预设归约栈中栈首的预设数量个(例如,可以是两个,三个或者四个等)待定实体的关联度,例如,该缓存队列中初始的字符序列为“腿部刺痛,麻木”,对应的队首字符为“腿”,当前该未识别的字符序列为“腿部刺痛,麻木”,该预设归约栈中现存的待定实体为空,获取该当前的队首字符“腿”与当前该预设归约栈中现存的待定实体空的关联度(需要强调的是,在该待定实体为空时,可以采用预设的特征数据计算与该队首字符的关联度)。在获取到该队首字符与当前该预设归约栈中栈首的预设数量个待定实体的关联度该关联度之后,根据该关联度确定该队首字符和/或该待定实体对应的动作类型,通过执行该动作类型对应的目标动作,以更新该缓存队列中的该队首字符和/或该预设归约栈中的待定实体。
86.若获取到该“腿”与当前该预设归约栈中现存的待定实体空的关联度满足第一预设条件(例如该关联度处于预设取值范围内),则确定该队首字符“腿”对应的动作类型为入栈动作,即将该“腿”存于该预设归约栈,从而使该预设归约栈中现存的待定实体更新为“腿”,使该缓存队列中当前未识别的字符序列为“部刺痛,麻木”,当前的队首字符更新为“部”;获取当前的队首字符“部”与当前该预设归约栈中现存的待定实体“腿”的关联度,在该“部”与“腿”的关联度满足第二预设条件(例如,该“部”与“腿”的关联度大于第一预设关联度阈值)的情况下,确定该“部”和“腿”对应的动作类型为右归约动作,即将该队首字符“部”与该“腿”拼接后形成新的待定实体“腿部”,然后将新的待定实体“腿部”作为命名实体输出,并将新的待定实体“腿部”压入该预设归约栈,同时删除该预设归约栈中的“腿”和该缓存队列中的“部”以使该预设归约栈中当前现存的待定实体更新为“腿部”,并将该缓存队列中未识别的字符序列更新为“刺痛,麻木”,更新后的队首字符为“刺”,针对更新后的队首字符“刺”,获取与更新后现存的待定实体“腿部”之间的关联度,在“刺”分别与“腿部”之间的关联度满足第三预设条件(例如“刺”与“腿部”的关联度大于第二预设关联度阈值),则确定针对该队首字符“刺”与当前的待定实体“腿部”进行归约动作,即将该“腿部”与该“刺”拼接形成新的待定实体“腿部刺”,并将该“腿部刺”压入该预设归约栈,以使该预设归约栈中当前现存的待定实体包括“腿部”和“腿部刺”,并将该缓存队列中未识别的字符序列更新为“痛,麻木”,缓存队列中当前的队首字符更新为“痛”,获取该“痛”与当前现存的待定实体包括“腿部”和“腿部刺”之间的关联度,若该“痛”与该“腿部”的关联度,以及该“痛”与该“腿部刺”的关联度满足第四预设条件(例如该“痛”与该“腿部”的关联度,以及该“痛”与该“腿部刺”的关联度均大于该第二预设关联度阈值,且该“痛”与该“腿部刺”的关联度与该“痛”与该“腿部”的关联度的差值大于预设差值阈值),则对该“痛”与该“腿部”和“腿部刺”执行左归约动作,即将该“腿部刺”与该“痛”进行拼接后形成新的待定实体“腿部刺痛”,并对该“腿部刺痛”执行出栈动作后,将该栈首的“腿部”保留在该预设归约栈中,该预设归约栈中现存的待定实体为“腿部”,且当前待识别文本对应的未识别的字符序列更新为“,麻木”,当前的队首字符更新为“,”,此时,获取到该“,”与“腿部”的关联度小于预设关联度阈值,因此对该“,”执行删除动作,即将该“,”直接删除,并将该当前待识别文本对应的未识别的字符序列更新为“麻木”,当前的队首字符更新为“麻”,获取该“麻”与“腿部”的关联度,在该“麻”与“腿部”的关联度满足该第三预设条件(例如“麻”与“腿部”的关联度大于第二预设关联度阈值),则确定针对该队首字符“麻”与当前的待定实体“腿部”进行归约动作,即将该“腿部”与该“麻”拼接形成新的待定实体“腿部麻”,并将该“腿部麻”压入该预设归约栈,从而使该预设归约栈中现存的待定实体为“腿部”和“腿部麻”,此时缓存模块中未识别的字符序列为“木”,该缓存队列中的队首字符更新为“木”,获取该“木”与该“腿部”和“腿部麻”对应的关联度,在该“木”与该“腿部”的关联度,以及该“木”与“腿部麻”的关联度满足该第四预设条件(例如该“木”与该“腿部”的关联度,以及该“木”与该“腿部麻”的关联度均大于该第二预设关联度阈值,且该“木”与该“腿部麻”的关联度与该“痛”与该“腿部”的关联度的差值大于预设差值阈值),则对该“木”与该“腿部”和“腿部麻”进行左归约动作,即将“腿部麻”与“木”拼接后形成“腿部麻木”后出栈,并将该“腿部”保存在该预设归约栈中,即当前该预设归约栈中现存的待定实体为“腿部”,该未识别的字符序列为空,获取该空与该待定实体“腿部”的关联度,由于该关联度小于预设关联度阈值,因此,将该“腿部”删除,此时该未识别的字符序列为空,且该预设归约栈为空,则将该出栈动作对应的“腿部”“腿部疼痛”以及“腿部麻木”作为该待识别文本“腿部刺痛,麻木”对应的命名实体。
87.以上技术方案,能够通过该预设实体识别模型,获取该待识别文本中未识别的字符序列,并获取该字符序列中每个字符与预设归约栈中最后入栈的预设数量个待定实体的
关联度,根据该关联度确定待出栈的待定实体,并将出栈后的该待定实体作为该待识别文本中的该命名实体,能够有效识别各种类型的命名实体,从而能够有效提升命名实体的识别率。
88.图2是根据本公开图1所示实施例示出的一种命名实体识别方法的流程图;如图2所示,该命名实体识别方法通过图1中所示的预设实体识别模型执行以下步骤:
89.s1,获取该缓存队列中每个字符对应的第一特征向量。
90.其中,该缓存队列由待识别文本中未识别的字符序列形成。
91.本步骤中,可以先获取当前该缓存队列中每个字符对应的字符特征向量,以及每个字符对应的上下文特征向量;然后将每个字符对应的字符特征向量与该字符对应的该上下文特征向量进行拼接,以得到该缓存队列中每个字符对应的第一特征向量。
92.需要说明的是,在获取该缓存队列中每个字符对应的字符特征向量时,可以将该该待识别文本输入一个bilstm网络,由该bilstm网络输出每个字符对应的字符特征向量;在获取每个字符对应的上下文特征向量时,可以将该待识别文本作为bert预训练语言模型的输入,由该bert预训练语言模型输出每个字符对应的上下文特征向量。
93.示例地,若第i个字符对应的字符特征向量为:第i个字符对应的上下文特征向量为bert(t
1∶n
)i,则该第i个字符对应的第一特征向量可以表示为其中,n为该待识别文本对应的字符长度,1≤i≤n。
94.s2,获取当前该预设归约栈中最后入栈的预设数量个目标待定实体对应的第二特征向量。
95.其中,该预设归约栈中的不同待定实体形成了一个先入后出的队列,栈内第一个元素为最后入栈的那个待定实体,在该预设数量为3的情况下,该最后入栈的预设数量个目标待定实体可以是该预设归约栈内的前三个元素对应的待定实体。
96.本步骤中,一种可能的实施方式中,可以将该目标待定实体被压入该预设归约栈之前,该预设归约栈中的待定实体序列(该待定实体序列包括当前该预设归约栈中的待定实体)和该目标待定实体对应的第一特征向量输入预设lstm网络,以获取到该预设lstm网络输出的该第二特征向量,ai=lstm(a
1∶m
,ci),其中m为该待定实体序列的字符长度,该待定实体序列由该目标待定实体被压入该预设归约栈之前,该预设归约栈中的每个待定实体组成。
97.需要说明的是,在将该目标待定实体被压入该预设归约栈之前,该预设归约栈中每个待定实体形成的待定实体序列为空时,可以将预设指定字符作为该待定实体序列输入该预设lstm网络,该预设指定字符可以是用于表征空的字符,例如“k”,或者其他指定的用于表征空的字符。
98.示例地,若在目标待定实体a1被压入预设归约栈前,该预设归约栈中有待定实体a2和待定实体a3两个待定实体,则可以将该待定实体a2和待定实体a3组成的待定实体序列和该目标待定实体a1对应的第一特征向量输入该预设lstm网络,从而得到同理,在目标待定实体a2被压入预设归约栈前,该预设归约栈中仅有待定实体a3,则可以将该待定实体a3和该目标待定实体a2对应的第一特征向量输入该
预设lstm网络,从而得到
99.本步骤中,另一种可能的实施方式中可以包括以下s21至s23所示的步骤:
100.s21,获取该目标待定实体被压入该预设归约栈之前,该预设归约栈中每个待定实体的第三特征向量。
101.本步骤中,在获取每个待定实体的第三特征向量时,可以将该目标待定实体被压入该预设归约栈之前,该预设归约栈中每个待定实体形成的待定实体序列输入预设特征提取网络,得到该预设归约栈中每个待定实体对应的第三特征向量,其中该预设特征提取网络可以是bert网络,也可以是bilstm网络,还可以是其他网络,本公开对此不作限定。
102.示例地,若在目标待定实体a0被压入预设归约栈前,该预设归约栈中有待定实体a1和待定实体a2两个待定实体,则可以将该待定实体a1和待定实体a2组成的待定实体序列输入该预设特征提取网络,以获取该预设特征提取网络输出的该待定实体a1对应的第三特征向量,以及该待定实体a2对应的第三特征向量。
103.s22,获取该目标待定实体对应的第一特征向量。
104.其中,目标待定实体为当前要被压入该预设归约栈的字符,该目标待定实体对应的第一特征向量可以是该目标待定实体为该待识别文本中未识别的字符序列中的字符时,通过以上步骤s1中所示的实施方式获取到的第一特征向量。
105.s23,将该预设归约栈中每个待定实体的第三特征向量和该目标待定实体对应的第一特征向量进行拼接,以得到每个该目标待定实体对应的第二特征向量。
106.示例地,仍以上述步骤s21中的示例为例进行说明,若该目标待定实体a0为待定实体a1对应的第三特征向量为a
1∶2
,待定实体a2对应的第三特征向量为a
2∶2
,则该第二特征向量可以是
107.s3,根据每个字符对应的该第一特征向量和每个该目标待定实体的该第二特征向量确定该目标待定实体对应的注意力向量。
108.其中,该注意力向量用于表征该目标待定实体与该缓存队列中每个字符的关联度;该预设实体识别模型包括注意力层。
109.本步骤中,可以将该目标待定实体的该第二特征向量与该缓存队列中每个字符对应的第一特征向量作为该注意力层的输入,以使该注意力层输出该目标待定实体的对应的注意力向量,其中,第i个目标待定实体对应的注意力向量可以表示为:以上公式中si为第i个目标待定实体对应的第二特征向量,c为由该缓存队列中每个字符对应的第一特征向量形成的矩阵,wa为可学习的参数矩阵。
110.示例地,若在目标待定实体a0被压入预设归约栈前,该预设归约栈中有待定实体a1和待定实体a2两个待定实体,该目标待定实体a0对应的第二特征向量为当前该待识别文本中未识别的字符序列包括b1、b2、b3、b4、b5、b6,则将该b1-b6对应的第一特征向量以及目标待定实体a0对应的该第二特征向量输入该注意力层,以获取该注意力层输出的该目标待定实体a0对应的注意力向量该注意力向量表征目标待定实体a0与该字符序列(b1-b6)中的每个
字符的关联度,该关联度可以为0至100%的百分数,其中关联度越大,表征该目标待定实体与该字符形成命名实体的可能性越大。
111.s4,根据该注意力向量确定该缓存队列中队首字符和/或该目标待定实体对应的动作类型。
112.其中,该预设实体识别模型包括分类层,例如该分类层可以是softmax分类器。
113.本步骤中,可以获取该分类层上一次输出的历史动作类型对应的动作特征向量;将该动作特征向量和每个该目标待定实体对应的注意力向量作为该分类层的输入,以使该分类层输出当前该队首字符和/或该目标待定实体对应的该动作类型。
114.需要说明的是,该历史动作类型可以是入栈动作、删除动作、归约动作,左归约动作,右归约动作,以及出栈动作等,还可以是空,例如,在对该待识别文本中的第一个字符进行动作类型确定时,由于在该第一字符之前,分类层还没有输出过动作类型,因此该历史动作类型为空。其中,每种历史动作类型对应有预先设置的动作特征向量,例如,在该历史动作类型为空时,该动作特征向量可以为a
empty
,在该历史动作类型为入栈动作时,该动作特征向量可以为ay,在该历史动作类型为删除动作时,该动作特征向量可以为as,在该历史动作类型为归约动作时,该动作特征向量可以为ag,在该历史动作类型为左归约动作时,该动作特征向量可以为a
z1
,在该历史动作类型为右归约动作时,该动作特征向量可以为a
z2
,在该历史动作类型为出栈动作时,该动作特征向量可以为ac。
115.s5,根据该动作类型更新该预设归约栈中的该待定实体和该缓存队列。
116.本步骤中,在该动作类型为入栈的情况下,将该待识别文本中未识别的字符序列中的待出列字符压入该预设归约栈,执行该压栈动作表征该字符为命名实体的一部分,其中,该待出列字符可以是缓存队列中的队首字符,该缓存队列以缓存队列的形式存储在预设缓存模块中,该缓存队列中的队首字符为当前的待出列字符。在该动作类型为归约动作的情况下,可以将该队首字符与预设归约栈中栈首的预设数量个元素(例如前两个元素,每个元素可以看作一个待定实体)进行拼接,并将拼接后得到的新的待定实体重新压入栈;在该动作类型为左归约动作的情况下,将该队首字符与预设归约栈中的前两个元素进行拼接,以得到拼接后新的待定实体,并对该新的待定实体执行出栈动作,同时保留预设归约栈内的栈首的二个元素;在该动作类型为右归约动作的情况下,可以将该队首字符与预设归约栈中的栈首的预设数量个元素(例如前两个元素)进行拼接,以得到拼接后新的待定实体,并对该新的待定实体执行出栈动作,并将新的待定实体重新压入栈内;在该动作类型为删除动作的情况下,将该待识别文本中未识别的缓存队列中的待出列字符删除或者预设归约栈中的待定实体进行删除;在该动作类型为出栈动作的情况下,将该预设归约栈中的当前生成的待定实体输出,并输出该当前生成的待定实体对应的命名实体类型,该命名实体类型可以是人名,地名,病情症状或者病灶位置等预先定义的实体类型。
117.s6,确定该预设归约栈和该缓存队列是否均为空。
118.本步骤中,在确定该预设归约栈和该缓存队列中任一个为非空的情况下,循环执行以上s1至s5中所述的步骤;在确定该预设归约栈和该缓存队列均为空的情况下,执行以下s7所示的步骤。
119.s7,将该动作类型为出栈动作的待定实体确定为该待识别文本中的命名实体。
120.以上技术方案,通过将该待识别文本作为预设实体识别模型的输入,以使该预设
实体识别模型输出该待识别文本中的命名实体;其中,该预设实体识别模型用于获取由待识别文本中的每个字符形成的缓存队列,获取缓存队列中队首字符与预设归约栈中现存待定实体的关联度,根据该关联度确定该队首字符和/或该待定实体对应的动作类型,通过执行该动作类型对应的目标动作,以更新该缓存队列中的该队首字符和/或该预设归约栈中的待定实体,并在该目标动作包括该出栈动作的情况下,将出栈后的该待定实体作为该待识别文本中的该命名实体,能够有效识别各种类型的命名实体,从而能够有效提升命名实体的识别率。
121.图3是本公开一示例性实施例示出的一种模型训练方法的流程图;如图3所示,该预设实体识别模型可以通过以下步骤训练得到:
122.步骤301,获取多个待识别文本样本,该待识别文本样本包括命名实体的标注数据。
123.其中该命名实体的标注数据可以包括对命名实体类型的标注,该命名实体类型可以是人名,地名,病情症状或者病灶位置等。
124.步骤302,将该多个待识别文本样本作为训练数据,通过该训练数据对预设初始模型进行模型训练,以得到该预设实体识别模型。
125.其中,该预设初始模型包括注意力层和分类层;
126.该预设初始模型,用于获取该待识别文本样本中未识别的字符序列中每个字符对应的第一特征向量;获取当前预设归约栈中最后入栈的预设数量个目标待定实体样本对应的第二特征向量,并通过该注意力层根据每个字符对应的该第一特征向量和每个该目标待定实体样本的该第二特征向量确定该目标待定实体样本对应的注意力向量,该注意力向量用于表征该目标待定实体样本与该字符序列中每个字符的关联度,并通过该分类层获取该分类层上一次输出的历史动作类型对应的动作特征向量;根据该动作特征向量和每个该目标待定实体样本对应的注意力向量确定当前该待识别文本样本中未识别的字符序列中的队首字符和/或该目标待定实体样本对应的该动作类型,该未识别的字符序列可以形成一个缓存队列,存储在预设缓存模块中。
127.以上技术方案,能够训练得到有效识别非嵌套式实体以及非连续实体的预设实体识别模型,通过该预设实体识别模型,能够有效识别各种类型的命名实体,从而能够有效提升命名实体的识别率。
128.图4是本公开一示例性实施例示出的一种命名实体识别装置的框图;如图4所示,该装置可以包括:
129.获取模块401,被配置为获取待识别文本;
130.确定模块402,被配置为将该待识别文本作为预设实体识别模型的输入,以使该预设实体识别模型输出该待识别文本中的命名实体;
131.其中,该预设实体识别模型用于获取由该待识别文本中的每个字符形成的缓存队列,获取该缓存队列中队首字符与预设归约栈中现存待定实体的关联度,根据该关联度确定该队首字符和/或该待定实体对应的动作类型,该动作类型为入栈动作,归约类动作或者出栈动作,通过执行该动作类型对应的目标动作,以更新该缓存队列中的该队首字符和/或该预设归约栈中的待定实体,并在该目标动作包括该出栈动作的情况下,将出栈后的该待定实体作为该待识别文本中的该命名实体;
132.其中,该归约类动作,用于将该队首字符与最后入栈的预设数量个该待定实体进行拼接后形成新的待定实体,并根据新的待定实体更新该预设归约栈中现存的待定实体。
133.上述技术方案,通过将该待识别文本作为预设实体识别模型的输入,以使该预设实体识别模型输出该待识别文本中的命名实体;其中,该预设实体识别模型用于获取由待识别文本中的每个字符形成的缓存队列,获取缓存队列中队首字符与预设归约栈中现存待定实体的关联度,根据该关联度确定该队首字符和/或该待定实体对应的动作类型,通过执行该动作类型对应的目标动作,以更新该缓存队列中的该队首字符和/或该预设归约栈中的待定实体,并在该目标动作包括该出栈动作的情况下,将出栈后的该待定实体作为该待识别文本中的该命名实体,能够有效识别各种类型的命名实体,从而能够有效提升命名实体的识别率。
134.可选地,该预设实体识别模型,用于:
135.获取该缓存队列中每个字符对应的第一特征向量;
136.获取当前该预设归约栈中最后入栈的预设数量个目标待定实体对应的第二特征向量;
137.根据每个字符对应的该第一特征向量和每个该目标待定实体的该第二特征向量确定该目标待定实体对应的注意力向量,该注意力向量用于表征该目标待定实体与该缓存队列中每个字符的关联度;
138.根据该注意力向量确定该缓存队列中队首字符和/或该目标待定实体对应的动作类型;
139.根据该动作类型更新该预设归约栈中的该待定实体和该缓存队列;
140.循环执行该获取该缓存队列中每个字符对应的第一特征向量,至该根据该动作类型更新该预设归约栈中的该待定实体和该缓存队列的步骤,直至该预设归约栈和缓存队列均为空的情况下,将该动作类型为出栈动作的待定实体确定为该待识别文本中的命名实体。
141.可选地,该预设实体识别模型包括注意力层,该预设实体识别模型,用于:
142.将该目标待定实体的该第二特征向量与该缓存队列中每个字符对应的第一特征向量作为该注意力层的输入,以使该注意力层输出该目标待定实体的对应的注意力向量。
143.可选地,该预设实体识别模型包括分类层,该预设实体识别模型,用于:
144.获取该分类层上一次输出的历史动作类型对应的动作特征向量;
145.将该动作特征向量和每个该目标待定实体对应的注意力向量作为该分类层的输入,以使该分类层输出当前该队首字符和/或该目标待定实体对应的该动作类型。
146.可选地,该预设实体识别模型,用于:
147.获取当前该缓存队列中每个字符对应的字符特征向量,以及每个字符对应的上下文特征向量;
148.将每个字符对应的字符特征向量与该字符对应的该上下文特征向量进行拼接,以得到该缓存队列中每个字符对应的第一特征向量。
149.可选地,该预设实体识别模型,用于:
150.获取该目标待定实体被压入该预设归约栈之前,该预设归约栈中每个待定实体的第三特征向量;
151.获取该目标待定实体对应的第一特征向量;
152.将该预设归约栈中每个待定实体的第三特征向量和该目标待定实体对应的第一特征向量进行拼接,以得到每个该目标待定实体对应的第二特征向量。
153.可选地,该装置还包括模型训练模块403,该模型训练模块403,被配置为:
154.获取多个待识别文本样本,该待识别文本样本包括命名实体的标注数据;
155.将该多个待识别文本样本作为训练数据,通过该训练数据对预设初始模型进行模型训练,以得到该预设实体识别模型;
156.其中,该预设初始模型包括注意力层和分类层;
157.该预设初始模型,用于获取该待识别文本样本中未识别的字符序列中每个字符对应的第一特征向量;获取当前预设归约栈中最后入栈的预设数量个目标待定实体样本对应的第二特征向量,并通过该注意力层根据每个字符对应的该第一特征向量和每个该目标待定实体样本的该第二特征向量确定该目标待定实体样本对应的注意力向量,该注意力向量用于表征该目标待定实体样本与该字符序列中每个字符的关联度,并通过该分类层获取该分类层上一次输出的历史动作类型对应的动作特征向量;根据该动作特征向量和每个该目标待定实体样本对应的注意力向量确定当前该待识别文本样本中未识别的字符序列中的队首字符和/或该目标待定实体样本对应的该动作类型。
158.以上技术方案,能够训练得到有效识别非嵌套式实体以及非连续实体的预设实体识别模型,通过该预设实体识别模型,能够有效识别各种类型的命名实体,从而能够有效提升命名实体的识别率。
159.关于上述实施例中的装置,其中各个模块执行操作的具体方式已经在有关该方法的实施例中进行了详细描述,此处将不做详细阐述说明。
160.图5是根据一示例性实施例示出的一种电子设备的框图。如图5所示,该电子设备500可以包括:处理器501,存储器502。该电子设备500还可以包括多媒体组件503,输入/输出(i/o)接口504,以及通信组件505中的一者或多者。
161.其中,处理器501用于控制该电子设备500的整体操作,以完成上述的命名实体识别方法中的全部或部分步骤。存储器502用于存储各种类型的数据以支持在该电子设备500的操作,这些数据例如可以包括用于在该电子设备500上操作的任何应用程序或方法的指令,以及应用程序相关的数据,例如联系人数据、收发的消息、图片、音频、视频等等。该存储器502可以由任何类型的易失性或非易失性存储设备或者它们的组合实现,例如静态随机存取存储器(static random access memory,简称sram),电可擦除可编程只读存储器(electrically erasable programmable read-only memory,简称eeprom),可擦除可编程只读存储器(erasable programmable read-only memory,简称eprom),可编程只读存储器(programmable read-only memory,简称prom),只读存储器(read-only memory,简称rom),磁存储器,快闪存储器,磁盘或光盘。多媒体组件503可以包括屏幕和音频组件。其中屏幕例如可以是触摸屏,音频组件用于输出和/或输入音频信号。例如,音频组件可以包括一个麦克风,麦克风用于接收外部音频信号。所接收的音频信号可以被进一步存储在存储器502或通过通信组件505发送。音频组件还包括至少一个扬声器,用于输出音频信号。i/o接口504为处理器501和其他接口模块之间提供接口,上述其他接口模块可以是键盘,鼠标,按钮等。这些按钮可以是虚拟按钮或者实体按钮。通信组件505用于该电子设备500与其他
设备之间进行有线或无线通信。无线通信,例如wi-fi,蓝牙,近场通信(near field communication,简称nfc),2g、3g或4g,或它们中的一种或几种的组合,因此相应的该通信组件505可以包括:wi-fi模块,蓝牙模块,nfc模块。
162.在一示例性实施例中,电子设备500可以被一个或多个应用专用集成电路(application specific integrated circuit,简称asic)、数字信号处理器(digital signal processor,简称dsp)、数字信号处理设备(digital signal processing device,简称dspd)、可编程逻辑器件(programmable logic device,简称pld)、现场可编程门阵列(field programmable gate array,简称fpga)、控制器、微控制器、微处理器或其他电子元件实现,用于执行上述的命名实体识别方法。
163.在另一示例性实施例中,还提供了一种包括程序指令的计算机可读存储介质,该程序指令被处理器执行时实现上述的命名实体识别方法的步骤。例如,该计算机可读存储介质可以为上述包括程序指令的存储器502,上述程序指令可由电子设备500的处理器501执行以完成上述的命名实体识别方法。
164.图6是根据一示例性实施例示出的另一种电子设备的框图。例如,电子设备1900可以被提供为一服务器。参照图6,电子设备1900包括处理器1922,其数量可以为一个或多个,以及存储器1932,用于存储可由处理器1922执行的计算机程序。存储器1932中存储的计算机程序可以包括一个或一个以上的每一个对应于一组指令的模块。此外,处理器1922可以被配置为执行该计算机程序,以执行上述的命名实体识别方法。
165.另外,电子设备1900还可以包括电源组件1926和通信组件1950,该电源组件1926可以被配置为执行电子设备1900的电源管理,该通信组件1950可以被配置为实现电子设备1900的通信,例如,有线或无线通信。此外,该电子设备1900还可以包括输入/输出(i/o)接口1958。电子设备1900可以操作基于存储在存储器1932的操作系统,例如windows server
tm
,mac os x
tm
,unix
tm
,linux
tm
等等。
166.在另一示例性实施例中,还提供了一种包括程序指令的计算机可读存储介质,该程序指令被处理器执行时实现上述的命名实体识别方法的步骤。例如,该计算机可读存储介质可以为上述包括程序指令的存储器1932,上述程序指令可由电子设备1900的处理器1922执行以完成上述的命名实体识别方法。
167.以上结合附图详细描述了本公开的优选实施方式,但是,本公开并不限于上述实施方式中的具体细节,在本公开的技术构思范围内,可以对本公开的技术方案进行多种简单变型,这些简单变型均属于本公开的保护范围。
168.另外需要说明的是,在上述具体实施方式中所描述的各个具体技术特征,在不矛盾的情况下,可以通过任何合适的方式进行组合,为了避免不必要的重复,本公开对各种可能的组合方式不再另行说明。
169.此外,本公开的各种不同的实施方式之间也可以进行任意组合,只要其不违背本公开的思想,其同样应当视为本公开所公开的内容。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1