一种基于知识库的汽车领域文本实体识别方法与流程

未命名 09-29 阅读:107 评论:0


1.本发明属于汽车技术领域,具体涉及一种基于知识库的汽车领域文本实体识别方法。


背景技术:

2.随着互联网的飞速发展,结构化和非结构化的文本数据增长速度迅猛,如何从海量的文本数据中抽取有用信息已经成为当前研究的重点。命名实体识别(named entity recognition,ner)是信息抽取的子任务之一,是从无规则的非结构化文本中抽取有用信息的底层技术,命名实体识别的效果直接影响很多自然语言处理领域的任务。
3.现代社会汽车已经普及,从汽车文本数据中抽取命名实体信息也变得越来越重要。因此,面向汽车领域的命名实体识别研究具有重要的意义。目前,命名实体中,现存标注样本较少,识别精确率和召回率较低。另外,大量人工标注的数据由于实体的差异均无法使用,因此急需研发一种新的识别方法,使其能够结合历史数据及新的文本数据,进行命名实体识别数据扩充。


技术实现要素:

4.本发明的目的就在于提供一种基于知识库针对汽车领域文本进行命名实体识别方法,通过模型构建、数据构建、任务构建,将知识库引入预训练语言模型做命名实体识别任务,以解决减少汽车命名实体识别领域的标注工作量,以及辅助命名实体识别领域标注构建的问题。
5.本发明的目的是通过以下技术方案实现的:
6.一种基于知识库的命名实体识别方法,包括以下步骤:
7.a、通过文本及多个包含标签的参考文本推断汽车器件的实体词汇,完成知识库的辅助建模;
8.b、以文本为单位对知识进行存储,按照历史标注文本创建知识库;
9.b1、使用增加data attention的transformer模型训练历史数据;
10.b2、通过步骤b1训练的模型继续使用新数据进行训练;
11.b3、使用步骤b2得到的模型在小规模标注数据集进行微调;
12.c、基于知识库的汽车领域文本实体识别:
13.获取汽车领域数据集中的第一文本;将第一文本在知识库中检索;根据检索结果得到第二文本序列;将第一文本和第二文本序列处理并输入识别模型;获取第一文本对应的识别结果。
14.进一步地,步骤b1,具体为:将输入文本左右两端分别加入开始和结束符号并分词对文本进行处理;通过词表转为字对应的id;将该id对应的文本输入embedding模块,获取上述id对应的隐向量,此时文本用矩阵表示;将文本输入多层堆叠的transformer block,获取其表示矩阵,transformers将其输出作为文本的表示矩阵。
15.更进一步地,通过词表转为字对应的id时,每一个数字为这个字在文本中的位置。
16.更进一步地,文本用矩阵表示时,该矩阵的维度为文本长度,模型隐层大小。
17.更进一步地,多层堆叠的transformer block结构由add和norm两部分组成,假设输入为x,其操作可以使用如下公式表示:
18.x=layernorm(x+multiheadattention(x))
19.x=layernorm(x+feedforward(x))
20.其中,multiheadattention结构为transformerblock的核心结构。
21.更进一步地,multiheadattention结构形式化描述如下:
22.b11、将原文本表示x使用不同的线性映射进行修改,修改后的表示分别用q,k,v进行表示,输入x的维度为文本长度,模型隐层大小,此处修改模型隐层大小这一维度,q、k、v的维度为文本长度,关注度隐状态大小;
23.b12、将q,k,v按照head数切分;
24.b13、通过q,k得到attention矩阵,a=qk
t

25.b14、将attention矩阵进行缩放并归一化,其中d为上面提到的维度。
26.b15、将关注度矩阵与v相乘,并输出:x=a

v;
27.更进一步地,步骤b12,按照最简单的head=1来,即为不切分,若进行切分,即将上述q的文本长度,关注度隐状态大小维度切分为文本长度,头数,关注度隐状态大小/头数,即为将一个关注度隐状态切分为多个处理。
28.进一步地,步骤b2,具体为:通过步骤b1训练的模型继续使用新数据进行训练。
29.更进一步地,修改文本的输入输出,将标签作为一部分同样输入样本中,并将其部分随机进行掩盖。
30.进一步地,步骤b3,具体为:使用步骤b2得到的模型在小规模标注数据集进行微调:使用基于步骤b2训练方案训练的模型完成后,将其应用到新的小规模数据集中进行微调,具体步骤如下:
31.b31、检索:针对新数据集的样本先对老数据集进行检索;
32.b32、组合成batch将其进行微调,将上述batch进行预测训练。
33.与现有技术相比,本发明的有益效果是:
34.本发明基于知识库的汽车领域文本实体识别方法,借助原有标注数据构建知识库,通过知识库的辅助减少汽车命名实体识别领域的标注工作量,以及辅助命名实体识别领域标注构建。具体具有以下优点:
35.1、本发明将知识库与预训练语言模型引入命名实体识别任务中,提供了一种在预训练语言模型中引入知识库做命名实体识别任务的方法,能够有效利用历史标注数据在不同领域的迁徙;
36.2、本发明降低了人工标注的成本,在相同数据量条件下有效提升了新场景(数据)下领域内文本命名实体识别的精度。
附图说明
37.为了更清楚地说明本发明实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本发明的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
38.图1输入s为近光灯开启的示意图;
39.图2在小规模标注数据集进行微调的示意图;
40.图3基于知识库的汽车领域文本实体识别方法流程图。
具体实施方式
41.下面结合实施例对本发明作进一步说明:
42.下面结合附图和实施例对本发明作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释本发明,而非对本发明的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与本发明相关的部分而非全部结构。
43.应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。同时,在本发明的描述中,术语“第一”、“第二”等仅用于区分描述,而不能理解为指示或暗示相对重要性。
44.在进行基于深度学习的命名实体识别前,先对输入输出进行定义。本发明中,输入为一个汽车专业领域的文本,其字数为n,将这个文本用s表示,其中,s={c1,c2,

,cn},其中,ci为一个字。输出为文本对应的标签,长度为n的数组,其中的每一个位置代表该位置字的标签,将其用l表示,其中,的标签,将其用l表示,其中,li表示字ci的输出标签。
45.例如,输入s=“近|光|灯|开|启”,输出其中,f代表车辆器件,o代表不是汽车领域文本。此处仅为举例,相关内容仅作说明使用。
46.深度学习领域,需要通过模型预测上述内容,使用m表示该模型,其中,m的输入为文本对应的index,输出为上述标签对应的index。一般而言,模型为transformer模型,其中包括一个编码器(encoder),一个解码器(decoder)。深度学习的模型包含结构和参数,这里使用m表示其结构,使用θ表示其参数。由此,上述输入输出可以形式化为以下形式:
[0047][0048]
上述模型参数θ的训练需要一定数据,该数据包含多个匹配的文本s和人工标注标签y的对,将其记为d,若共有n个上述对应的对,那么d={(s1,y1),(s2,y2),

,(sn,yn)}。本发明通过损失函数计算y和之间的差异,得到模型的梯度,从而通过梯度更新模型参数,如图1所示。该部分内容为深度学习模型训练的基本方法,这里不再做赘述。
[0049]
上述内容即为一般情况下,深度学习模型训练、预测的过程。然而,仅以灯光这一实体为例,人工标注繁琐,且有大量数据无法得到有效使用。因此,本发明推出一种新的基于汽车领域的命名实体识别方法,本方法借助历史标注数据构建知识库,从而构建一套基于知识库的ner系统,充分挖掘历史数据的价值,减少人工标注工作量,提高模型准确性。
[0050]
本发明基于知识库的命名实体识别方法,具体包括以下步骤:
[0051]
第一步、知识库的辅助建模:
[0052]
知识库可以帮助文本获取其对应的ner标签。例如如下文本:“近光灯开启”,其参考文本为:“远光灯开启”、“倒车灯开启”参考文本包含标签,则可以通过上述文本推断,“近光灯”为一个汽车器件的实体词汇。
[0053]
第二步、创建知识库:
[0054]
知识库按照历史标注文本创建,知识以文本为单位进行存储,具体包括以下步骤:
[0055]
1、使用增加data attention的transformer模型训练历史数据。
[0056]
由于需要在transformer中引入知识库,本发明将原有的transformer在单条文本词之间的关注度扩展到文本和文本之间,从而保证知识和历史数据进行交互。首先介绍原有transformer结构:
[0057]
假设输入文本为s,例如,s=当前车灯关闭,首先将文本左右两端分别加入开始和结束符号并分词,文本被处理为s={[cls],当,前,车,灯,关,闭,[sep]},其中“[cls]”和“[sep]”分别为文本的开始和结束符号。然后,通过词表转为字对应的id,其中每一个数字为这个字在文本中的位置;然后,将该id对应的文本输入embedding模块,获取上述id对应的隐向量,此时文本用矩阵表示,该矩阵的维度为【文本长度,模型隐层大小】。然后,将文本输入多层堆叠的transformer block,获取其表示矩阵,transformers将其输出作为文本的表示矩阵。
[0058]
上述结构中,最为重要的即为多层堆叠的transformer block。其结构由add和norm两部分组成,假设输入为x,其操作可以使用如下公式表示:
[0059]
x=layernorm(x+multiheadattention(x))
[0060]
x=layernorm(x+feedforward(x))
[0061]
其中,multiheadattention结构为transformerblock的核心结构,其形式化描述如下:
[0062]
11、将原文本表示x使用不同的线性映射进行修改,修改后的表示分别用q,k,v进行表示。例如,若假设x=[x

,x

,x

,x

,x

,x

,x

],那么q=wqx+bq,k=wkx+bk,v=wvx+bv。其中,w和b均为线性映射的参数。输入x的维度为【文本长度,模型隐层大小】,此处修改模型隐层大小这一维度,q、k、v的维度为【文本长度,关注度隐状态大小】
[0063]
12、将q,k,v按照head数切分。这里先按照最简单的head=1来,即为不切分。若进行切分,即将上述q的【文本长度,关注度隐状态大小】维度切分为【文本长度,头数,关注度隐状态大小/头数】,即为将一个关注度隐状态切分为多个处理。
[0064]
13、通过q,k得到attention矩阵,a=qk
t
[0065]
14、将attention矩阵进行缩放并归一化,其中d为上面提到的维度。
[0066]
15、将关注度矩阵与v相乘,并输出:x=a
′v[0067]
由此可见,该处的attention仅关注句子内部的字,文本和文本之间无法交互(即为多个x都按照一样的方式进行处理)。由于深度学习一般而言以batch为单位进行训练,batch之间的信息被忽略了。因此,此处将其(multiheadattention)进行修改:
[0068]
针对multiheadattention的修改如下:
[0069]
假设输入为多个文本,x
input
=[x1,x2,

,xb],维度为【批大小,文本长度,关注度隐
状态大小】。其中,每一个x_i代表一个输入文本,b代表batch size(批大小)。本发明使用multiheadattention(x)代表上述步骤11-步骤15,这些步骤仅包含文本内部的交互。将修改的multiheadattention定义如下:
[0070]

、将x
input
维度调整为【批大小,文本长度*关注度隐状态大小】,记为x

input

[0071]

、将x

input
矩阵进行multiheadattention操作,此时输出为【批大小,文本长度*关注度隐状态大小】;
[0072]

、将x

input
矩阵调整为原来的维度,【批大小,文本长度,关注度隐状态大小】;
[0073]

、将x

input
进行multiheadattention操作。
[0074]
此时,文本关注度将从文本内部维度变为文本之间,文本相互参考。
[0075]
2、通过步骤1训练的模型继续使用新数据进行训练。
[0076]
与传统训练方式不同,此处需修改文本的输入输出。将标签作为一部分同样输入样本中,并将其部分随机使用[mask]进行掩盖。例如,输入修改为:原有输入:s={[cls],当,前,车,灯,关,闭,[sep]},新输入:s={[cls],当,前,车,灯,关,闭,[sep],时间,时间,其他,其他,其他,其他,[sep]},上述例子中,第一个[sep]后的为标签内容。然后将其部分随机掩盖,s=
[0077]
{[cls],当,前,车,灯,关,闭,[sep],[mask],[mask],其他,其他,其他,其他,[sep]},将掩盖的部分用于预测结果。
[0078]
使用这种方式训练的原因为:数据参考其他数据的文本无法知道对应标签,文本需要包含标签信息才可以相互学习。
[0079]
训练时,模型按照此种方式,在历史数据集上进行预训练。
[0080]
3、使用步骤2得到的模型在小规模标注数据集进行微调:
[0081]
使用基于步骤2训练方案训练的模型完成后,将其应用到新的小规模数据集中进行微调,具体步骤如下:
[0082]
31、检索:针对新数据集的样本x
new
,先使用bm25算法,对老数据集进行检索,将检索的数据记为x
search
,注意这里的x
search
包含多个数据;
[0083]
32、组合成batch:然后将x
new
和x
search
组合成一个batch(批次),将其进行微调,掩盖x
new
所有的标签,x
search
并所有的标签均不掩盖。将上述batch进行预测训练,具体方式如图2。
[0084]
第三步、基于知识库的汽车领域文本实体识别:
[0085]
获取汽车领域数据集中的第一文本;将第一文本在知识库中检索;根据检索结果得到第二文本序列;将第一文本和第二文本序列处理并输入识别模型;获取第一文本对应的识别结果。
[0086]
实施例1
[0087]
本发明基于知识库的命名实体识别方法,具体包括以下步骤:
[0088]
1、以“近光灯”为一个汽车器件的实体词汇,进行知识库的辅助建模。
[0089]
2、创建知识库,如表1所示:
[0090]
表1
[0091]
近光灯开启标签远光灯开启标签
倒车灯开启标签
[0092]
...
[0093]
21、使用增加data attention的transformer模型训练历史数据。
[0094]
假设输入文本为s,s=当前车灯关闭。首先,将文本左右两端分别加入开始和结束符号并分词,文本被处理为s={[cls],当,前,车,灯,关,闭,[sep]},其中“[cls]”和“[sep]”分别为文本的开始和结束符号。然后,通过词表转为字对应的id,其中每一个数字为这个字在文本中的位置;然后,将该id对应的文本输入embedding模块,获取上述id对应的隐向量,此时文本用矩阵表示,该矩阵的维度为【文本长度,模型隐层大小】。然后,将文本输入多层堆叠的transformer block,获取其表示矩阵,transformers将其输出作为文本的表示矩阵。
[0095]
其中,多层堆叠的transformer block由add和norm两部分组成,假设输入为x,其操作可以使用如下公式表示:
[0096]
x=layernorm(x+multiheadattention(x))
[0097]
x=layernorm(x+feedforward(x))
[0098]
其中,multiheadattention结构形式化描述如下:
[0099]
211、将原文本表示x使用不同的线性映射进行修改,修改后的表示分别用q,k,v进行表示。假设x=[x

,x

,x

,x

,x

,x

,x

],那么q=wqx+bq,k=wkx+bk,v=wvx+bv。其中,w和b均为线性映射的参数。输入x的维度为【文本长度,模型隐层大小】,此处修改模型隐层大小这一维度,q、k、v的维度为【文本长度,关注度隐状态大小】
[0100]
212、将q,k,v按照head数切分。这里先按照最简单的head=1来,即为不切分。若进行切分,即将上述q的【文本长度,关注度隐状态大小】维度切分为【文本长度,头数,关注度隐状态大小/头数】,即为将一个关注度隐状态切分为多个处理。
[0101]
213、通过q,k得到attention矩阵,a=qk
t
[0102]
214、将attention矩阵进行缩放并归一化,其中d为上面提到的维度。
[0103]
215、将关注度矩阵与v相乘,并输出:x=a

v。
[0104]
假设输入为多个文本,x
input
=[x1,x2,

,xb],维度为【批大小,文本长度,关注度隐状态大小】其中每一个x_i代表一个输入文本,b代表batch size(批大小)。使用multiheadattention(x)代表上述步骤11-步骤15。
[0105]
将x
input
维度调整为【批大小,文本长度*关注度隐状态大小】,记为x

input
;将x

input
矩阵进行multiheadattention操作,此时输出为【批大小,文本长度*关注度隐状态大小】;将x

input
矩阵调整为原来的维度,【批大小,文本长度,关注度隐状态大小】;将x

input
进行multiheadattention操作。
[0106]
22、通过步骤21训练的模型继续使用新数据进行训练。
[0107]
将标签作为一部分同样输入样本中,并将其部分随机使用[mask]进行掩盖。例如,输入修改为:原有输入:s={[cls],当,前,车,灯,关,闭,[sep]},新输入:s={[cls],当,前,车,灯,关,闭,[sep],时间,时间,其他,其他,其他,其他,[sep]},上述例子中,第一个[sep]后的为标签内容。然后将其部分随机掩盖,s=
[0108]
{[cls],当,前,车,灯,关,闭,[sep],[mask],[mask],其他,其他,其他,其他,[sep]},将掩盖的部分用于预测结果。训练时,模型按照此种方式,在历史数据集上进行预训练。
[0109]
23、使用步骤22得到的模型在小规模标注数据集进行微调:
[0110]
使用基于步骤22训练方案训练的模型完成后,将其应用到新的小规模数据集中进行微调如下:
[0111]
231、检索:针对新数据集的样本x
new
,先使用bm25算法,对老数据集进行检索,将检索的数据记为x
search
,注意这里的x
search
包含多个数据;
[0112]
232、组合成batch:然后将x
new
和x
search
组合成一个batch(批次),将其进行微调,掩盖x
new
所有的标签,x
search
并所有的标签均不掩盖。将上述batch进行预测训练,具体方式如图2。
[0113]
3、基于知识库的汽车领域文本实体识别:
[0114]
获取汽车领域数据集中的第一文本;将第一文本在知识库中检索;根据检索结果得到第二文本序列;将第一文本和第二文本序列处理并输入识别模型;获取第一文本对应的识别结果。
[0115]
注意,上述仅为本发明的较佳实施例及所运用技术原理。本领域技术人员会理解,本发明不限于这里所述的特定实施例,对本领域技术人员来说能够进行各种明显的变化、重新调整和替代而不会脱离本发明的保护范围。因此,虽然通过以上实施例对本发明进行了较为详细的说明,但是本发明不仅仅限于以上实施例,在不脱离本发明构思的情况下,还可以包括更多其他等效实施例,而本发明的范围由所附的权利要求范围决定。

技术特征:
1.一种基于知识库的命名实体识别方法,其特征在于,包括以下步骤:a、通过文本及多个包含标签的参考文本推断汽车器件的实体词汇,完成知识库的辅助建模;b、以文本为单位对知识进行存储,按照历史标注文本创建知识库;b1、使用增加data attention的transformer模型训练历史数据;b2、通过步骤b1训练的模型继续使用新数据进行训练;b3、使用步骤b2得到的模型在小规模标注数据集进行微调;c、基于知识库的汽车领域文本实体识别:获取汽车领域数据集中的第一文本;将第一文本在知识库中检索;根据检索结果得到第二文本序列;将第一文本和第二文本序列处理并输入识别模型;获取第一文本对应的识别结果。2.根据权利要求1所述的一种基于知识库的命名实体识别方法,其特征在于,步骤b1,具体为:将输入文本左右两端分别加入开始和结束符号并分词对文本进行处理;通过词表转为字对应的id;将该id对应的文本输入embedding模块,获取上述id对应的隐向量,此时文本用矩阵表示;将文本输入多层堆叠的transformer block,获取其表示矩阵,transformers将其输出作为文本的表示矩阵。3.根据权利要求2所述的一种基于知识库的命名实体识别方法,其特征在于:通过词表转为字对应的id时,每一个数字为这个字在文本中的位置。4.根据权利要求2所述的一种基于知识库的命名实体识别方法,其特征在于:文本用矩阵表示时,该矩阵的维度为文本长度,模型隐层大小。5.根据权利要求2所述的一种基于知识库的命名实体识别方法,其特征在于:多层堆叠的transformer block结构由add和norm两部分组成,假设输入为x,其操作可以使用如下公式表示:x=layernorm(x+multiheadattention(x))x=layernorm(x+feedforward(x))其中,multiheadattention结构为transformerblock的核心结构。6.根据权利要求5所述的一种基于知识库的命名实体识别方法,其特征在于,multiheadattention结构形式化描述如下:b11、将原文本表示x使用不同的线性映射进行修改,修改后的表示分别用q,k,v进行表示,输入x的维度为文本长度,模型隐层大小,此处修改模型隐层大小这一维度,q、k、v的维度为文本长度,关注度隐状态大小;b12、将q,k,v按照head数切分;b13、通过q,k得到attention矩阵,a=qk
t
;b14、将attention矩阵进行缩放并归一化,其中d为上面提到的维度。b15、将关注度矩阵与v相乘,并输出:x=a

v。7.根据权利要求6所述的一种基于知识库的命名实体识别方法,其特征在于:步骤b12,按照最简单的head=1来,即为不切分,若进行切分,即将上述q的文本长度,关注度隐状态
大小维度切分为文本长度,头数,关注度隐状态大小/头数,即为将一个关注度隐状态切分为多个处理。8.根据权利要求1所述的一种基于知识库的命名实体识别方法,其特征在于,步骤b2,具体为:通过步骤b1训练的模型继续使用新数据进行训练。9.根据权利要求8所述的一种基于知识库的命名实体识别方法,其特征在于,修改文本的输入输出,将标签作为一部分同样输入样本中,并将其部分随机进行掩盖。10.根据权利要求1所述的一种基于知识库的命名实体识别方法,其特征在于,步骤b3,具体为:使用步骤b2得到的模型在小规模标注数据集进行微调:使用基于步骤b2训练方案训练的模型完成后,将其应用到新的小规模数据集中进行微调,具体步骤如下:b31、检索:针对新数据集的样本先对老数据集进行检索;b32、组合成batch将其进行微调,将上述batch进行预测训练。

技术总结
本发明涉及一种基于知识库的命名实体识别方法,包括通过文本及多个包含标签的参考文本推断汽车器件的实体词汇,完成知识库的辅助建模;以文本为单位对知识进行存储,按照历史标注文本创建知识库;使用增加data attention的Transformer模型训练历史数据;通过训练的模型继续使用新数据进行训练;使用得到的模型在小规模标注数据集进行微调;汽车领域文本实体识别。本发明借助原有标注数据构建知识库,通过知识库的辅助减少汽车命名实体识别领域的标注工作量及辅助命名实体识别领域标注构建;能有效利用历史标注数据在不同领域的迁徙,降低成本,在相同数据量条件下有效提升了新场景下领域内文本命名实体识别的精度。新场景下领域内文本命名实体识别的精度。新场景下领域内文本命名实体识别的精度。


技术研发人员:郭宏伟 范新欣 田晓刚 张国龙 吉岩 朱海龙 衣鹏 于弘雨 邵凌宇 黄金山
受保护的技术使用者:中国第一汽车股份有限公司
技术研发日:2023.02.27
技术公布日:2023/9/25
版权声明

本文仅代表作者观点,不代表航家之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)

航空之家 https://www.aerohome.com.cn/

飞机超市 https://mall.aerohome.com.cn/

航空资讯 https://news.aerohome.com.cn/

分享:

扫一扫在手机阅读、分享本文

相关推荐