一种基于字词信息融合的中文命名实体识别方法与流程

未命名 10-18 阅读:113 评论:0


1.本发明涉及自然语言处理技术领域,具体为一种基于字词信息融合的中文命名实体识别方法。


背景技术:

2.命名实体识别(ner)(也称为实体识别、实体分块和实体提取)是自然语言处理领域中的一个重要研究方向,主要目标是定位给定文本中的命名实体并分类为预先定义的类别,如人物名、地名、组织机构名等实体,是一种序列标注问题。命名实体识别的研究方法有早期的基于规则和词典的方法、传统机器学习方法(如隐马尔可夫模型hmm、条件随机场crf)、深度学习方法和基于注意力机制方法。深度学习技术的发展使得命名实体识别在近年有很大的进步。
3.现有技术中,相较于英文命名实体识别,中文命名实体识别难度更大。因为中文并不能像英文那样自然切分,词边界非常模糊,造成了在分析文本前需要进行分词,然后将词级序列标注的模型应用于分词的句子。但是,中文分词不可避免地会出现分词错误的情况,这将导致词边界和实体类别的预测上出现错误。因此,中文实体识别领域提出了直接使用单字进行识别的方法.
4.但是这种方法没有充分利用文本中的词信息,而这些词信息对于实体识别是非常重要的。如何充分挖掘中文文本中的词信息,充分利用文本结构特征,提高命名实体识别任务的准确率,是当前需要重视解决的问题。


技术实现要素:

5.本发明的目的在于提供一种基于字词信息融合的中文命名实体识别方法,以解决上述背景技术中提出的问题。
6.为实现上述目的,本发明提供如下技术方案:一种基于字词信息融合的中文命名实体识别方法,所述方法包括以下步骤:
7.s1.单字信息编码;
8.s2.单字信息和词信息编码;
9.s3.向量xa和向量xb融合得到向量xc;
10.s4.使用crf对向量xc进行解码。
11.优选的,单字信息编码用于生成单字向量序列xa,原始数据集x
org
采用bio方法标注,以x
o r
中一条数据为例,转换为单字序列n为一条数据中的单字个数,和对应的标签序列
12.优选的,单字信息编码具体操作包括:
13.s11:初始化单字向量序列xa为空集,初始化单字序列编号i=1;
14.s12:通过向量化模型得到单字的向量
15.s13:将向量输入bilstm,得到上下文特征向量
16.s14:将向量添加到单字向量序列xa;
17.s15:设置i=i+1;
18.s16:如果i≤n,转s12,否则转s17;
19.s17:单字向量序列xa经过线性变换得到最终的向量序列xa。
20.优选的,单字信息和词信息编码用于生成单字信息和词信息融合编码向量序列xb,对原始单字序列组成的字符串进行分词;对分词得到的词进行向量化;将单字和词编码进行融合。
21.优选的,单字信息和词信息编码的具体操作包括:
22.s21:将原始数据集中的单字序列x
cstr
转为字符串x
str

23.s22:将字符串x
str
进行分词,得到分词后的字符串序列x
strl

24.分词后的字符串序列表示为m是分词得到的字符串序列长度;
25.s23:初始化向量序列xb为空集;
26.s24:初始化i=1,sidx=1;
27.s25:的长度为leni,eidx=sidx+len
i-1;
28.s26:通过向量化模型得到的向量
29.s27:生成单字对应的融合编码向量
30.优选的,生成单字对应的融合编码向量用于生成单字对应的融合编码向量,词中各个字的向量分别加上词向量得到各个字的融合编码向量。
31.优选的,生成单字对应的融合编码向量的具体操作包括:
32.s271:设置j=sidx;
33.s272:设置
34.s273:添加到向量序列集合xb;
35.s274:设置j=j+1;
36.s275:如果j≤eidx,转s272,否则转s28;
37.s278:设置i=i+1;
38.s279:如果i≤m,则sidx=eidx+1,然后转s25,否则转s2a;
39.s2a:向量序列xb经过线性变换得到最终的单字和词融合编码向量序列xb。
40.优选的,向量xa和向量xb融合得到向量xc用于融合向量xa和向量xb得到向量xc,向量xa和向量xb分别在最后一个维度上进行softmax变换,然后引入超参数λ对向量进行融合,得到向量xc。
41.优选的,向量xa和向量xb融合得到向量xc的具体操作如下:
42.s31:初始化向量xc为空集;
43.s32:初始化向量序号i=1;
44.s33:对向量在最后一个维度上经过softmax层变换得到
45.s34:对向量在最后一个维度上经过softmax层变换得到
46.s35:λ为超参数,按经验取值,把添加到xc;
47.s36:设置i=i+1;
48.s37:如果i≤n,n为向量xa和xb的长度,则转s33,否则转s38;
49.s38:返回向量xc。
50.与现有技术相比,本发明的有益效果是:
51.本发明提出的基于字词信息融合的中文命名实体识别方法,对原始文本进行编码时,不仅进行单个字的向量化,而且对字符串序列先进行分词,然后对分词得到的词进行向量化,并将单字向量和由单字组成的词的向量进行融合,充分挖掘了文本中的单字和词的信息,充分利用了文本的结构特征,加强了模型对文本的理解,提升了命名实体识别的准确率。
附图说明
52.图1为本发明方法流程图。
具体实施方式
53.为了使本发明的目的、技术方案进行清楚、完整地描述,及优点更加清楚明白,以下结合附图对本发明实施例进行进一步详细说明。应当理解,此处所描述的具体实施例是本发明一部分实施例,而不是全部的实施例,仅仅用以解释本发明实施例,并不用于限定本发明实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
54.实施例一
55.请参阅图1,本发明提供一种技术方案:一种基于字词信息融合的中文命名实体识别方法,所述方法包括以下步骤:
56.s1:单字信息编码;
57.本步骤用于生成单字向量序列xa。原始数据集x
org
采用bio方法标注,示例见下文“本发明对应的实施例”部分。现以x
org
中一条数据为例,将其转换为单字序列(n为一条数据中的单字个数)和对应的标签序列进一步,所述步骤s1中具体包括:
58.s11:初始化单字向量序列xa为空集,初始化单字序列编号i=1;
59.s12:通过向量化模型得到单字的向量
60.s13:将向量输入bilstm,得到上下文特征向量
61.s14:将向量添加到单字向量序列xa;
62.s15:设置i=i+1;
63.s16:如果i≤n,转s12,否则转s17;
64.s17:单字向量序列xa经过线性变换得到最终的向量序列xa;
65.s2:单字信息和词信息编码
66.本步骤用于生成单字信息和词信息融合编码向量序列xb。首先,对原始单字序列组成的字符串进行分词;然后,对分词得到的词进行向量化;最后,将单字和词编码进行融合。进一步,所述步骤s2中具体包括:
67.s21:将原始数据集中的单字序列x
cstr
转为字符串x
str

68.s22:将字符串x
str
进行分词,得到分词后的字符串序列x
strl

69.分词后的字符串序列表示为m是分词得到的字符串序列长度;
70.s23:初始化向量序列xb为空集;
71.s24:初始化i=1,sidx=1;
72.s25:的长度为leni,eidx=sidx+len
i-1;
73.s26:通过向量化模型得到的向量
74.s27:生成单字对应的融合编码向量
75.本步骤用于生成单字对应的融合编码向量,词中各个字的向量分别加上词向量得到各个字的融合编码向量。进一步,所述步骤s27中具体包括:
76.s271:设置j=sidx;
77.s272:设置
78.s273:添加到向量序列集合xb;
79.s274:设置j=j+1;
80.s275:如果j≤eidx,转s272,否则转s28;
81.s28:设置i=i+1;
82.s29:如果i≤m,则sidx=eidx+1,然后转s25,否则转s2a;
83.s2a:向量序列xb经过线性变换得到最终的单字和词融合编码向量序列xb;
84.s3:向量xa和向量xb融合得到向量xc85.本步骤用于融合向量xa和向量xb得到向量xc。首先,向量xa和向量xb分别在最后一个维度上进行softmax变换,然后引入超参数λ对向量进行融合,得到向量xc。进一步,所述步骤s3中具体包括:
86.s31:初始化向量xc为空集;
87.s32:初始化向量序号i=1;
88.s33:对向量在最后一个维度上经过softmax层变换得到
89.s34:对向量在最后一个维度上经过softmax层变换得到
90.s35:(λ为超参数,按经验取值),把添加到xc;
91.s36:设置i=i+1;
92.s37:如果i≤n(n为向量xa和xb的长度),则转s33,否则转s38;
93.s38:返回向量xc;
94.s4:使用crf对向量xc进行解码
95.将xc和标签序列输入到crf层,crf根据全局标签概率解码得到全局最优的标签序列。
96.向量xc对应的标签序列记为y,y=[y1,y2,...,yn],是多个可能的标注序列,crf的标记过程为:
[0097][0098]
式中,s(x,y)为序列x的标签等于y的评分,o
i,yi
表示第i个字标记为yi的概率,矩阵t是转移矩阵,t
i,j
表示由标签i转移到标签j的概率;
[0099]
标记序列的似然公式为公式(2):
[0100][0101][0102][0103]
式中,y
x
表示所有可能的标记集合,最终的解码阶段通过标准viterbi算法求解最大的概率,最后通过公式(4)预测出最优的命名实体识别序列y
*

[0104]
实施例二
[0105]
在实施例一的基础上,设训练集x
org
包含4种不同类型的实体:人名、时间、地名、组织机构名,分别标示为name、time、loc、org。训练集x
org
示例如下:
[0106]
q1、“5/b-time月/i-time 8/i-time日/i-time上/i-time午/i-time,/o王/b-name涛/i-name来/o到/o北/b-loc京/i-loc市/i-loc海/i-loc淀/i-loc区/i-loc的/o颐/b-org和/i-org园/i-org游/o玩/o。/o”[0107]
执行s1:对单字进行编码得到向量xa;
[0108]
执行s11:初始化单字向量序列为空集,初始化单字序列编号;
[0109]
执行s12:首先,通过transformers.berttokenizer加载哈工大讯飞联合实验室(hfl)发布的bert-wwm-ext模型进行文本向量化。对于数据集的每条文本,截取长度128。如果长度不足,则填充符号“o”。使用bert-wwm-ext模型编码器逐个处理每条数据中的单个字,得到文本的字向量序列。所有字向量序列构成的集合,就是数据集的文本向量化数据集。
[0110]
执行s13:将文本向量化数据集输入到bilstm,得到上下文特征向量;
[0111]
执行s17:将得到的单字向量序列xa经过线性变换得到最终的向量序列xa;
[0112]
执行s2:单字信息和词信息编码;
[0113]
执行s21:将原始数据集中的字符序列x
cstr
转为字符串x
str

[0114]
执行s22:将字符串x
str
进行分词,得到分词后的字符串序列x
strl

[0115]
分词后的字符串序列表示为m是分词得到的字符串序列长度;
[0116]
执行s23:初始化向量序列xb为空集;
[0117]
执行s24:初始化i=1,sidx=1;
[0118]
执行s25:的长度为leni,eidx=sidx+len
i-1;
[0119]
执行s26:通过向量化模型得到的向量
[0120]
执行s27:生成单个字符对应的融合编码向量
[0121]
执行s271:设置j=sidx;
[0122]
执行s272:设置
[0123]
执行s273:添加到向量序列集合xb;
[0124]
执行s274:设置j=j+1;
[0125]
执行s275:如果j≤eidx,转s272,否则转s28;
[0126]
执行s28:设置i=i+1;
[0127]
执行s29:如果i≤m,则sidx=eidx+1,然后转s25,否则转s2a;
[0128]
执行s2a:向量序列xb经过全连接层得到最终的字符和词融合编码向量序列xb;
[0129]
执行s3:融合向量xa和向量xb得到向量xc;
[0130]
执行s31:初始化向量xc为空集;
[0131]
执行s32:初始化向量序号i=1;
[0132]
执行s33:对向量在最后一个维度上经过softmax层变换得到
[0133]
执行s34:对向量在最后一个维度上经过softmax层变换得到
[0134]
执行s35:(λ为超参数,按经验取值为0.4),把添加到xc;
[0135]
执行s36:设置i=i+1;
[0136]
执行s37:如果i≤n,则转s33,否则转s38;
[0137]
执行s38:返回向量xc;
[0138]
执行s4:模型训练
[0139]
执行s41:使用torchcrf.crf构建crf层;
[0140]
执行s42:将xc输入crf层进行解码,得到最优标签概率序列;
[0141]
执行s43:使用torch.nn.modules.crossentropyloss构建交叉熵损失计算函数;
[0142]
执行s44:将标签序列和最优标签概率序列输入到交叉熵损失计算函数计算损失;
[0143]
执行s45:损失进行反向传播,进行模型训练;
[0144]
执行s46:如果损失满足训练停止条件,则转s47,否则转s44;
[0145]
执行s47:停止训练,保存模型model;
[0146]
执行s5:模型推理
[0147]
执行s51:将待标注原始字符序列转为单字序列x
p

[0148]
执行s52:转s1,执行到s38得到向量x
cp

[0149]
执行s53:加载模型model;
[0150]
执行s53:将向量x
cp
输入模型model,得到全局最优的标签序列y
p

[0151]
尽管已经示出和描述了本发明的实施例,对于本领域的普通技术人员而言,可以理解在不脱离本发明的原理和精神的情况下可以对这些实施例进行多种变化、修改、替换和变型,本发明的范围由所附权利要求及其等同物限定。

技术特征:
1.一种基于字词信息融合的中文命名实体识别方法,其特征在于:所述方法包括以下步骤:s1.单字信息编码;s2.单字信息和词信息编码;s3.向量x
a
和向量x
b
融合得到向量x
c
;s4.使用crf对向量x
c
进行解码。2.根据权利要求1所述的一种基于字词信息融合的中文命名实体识别方法,其特征在于:单字信息编码用于生成单字向量序列x
a
,原始数据集x
org
采用bio方法标注,以x
or
中一条数据为例,转换为单字序列n为一条数据中的单字个数,和对应的标签序列3.根据权利要求2所述的一种基于字词信息融合的中文命名实体识别方法,其特征在于:单字信息编码具体操作包括:s11:初始化单字向量序列x
a
为空集,初始化单字序列编号i=1;s12:通过向量化模型得到单字的向量s13:将向量输入bilstm,得到上下文特征向量s14:将向量添加到单字向量序列x
a
;s15:设置i=i+1;s16:如果i≤n,转s12,否则转s17;s17:单字向量序列x
a
经过线性变换得到最终的向量序列x
a
。4.根据权利要求1所述的一种基于字词信息融合的中文命名实体识别方法,其特征在于:单字信息和词信息编码用于生成单字信息和词信息融合编码向量序列x
b
,对原始单字序列组成的字符串进行分词;对分词得到的词进行向量化;将单字和词编码进行融合。5.根据权利要求4所述的一种基于字词信息融合的中文命名实体识别方法,其特征在于:单字信息和词信息编码的具体操作包括:s21:将原始数据集中的单字序列x
cstr
转为字符串x
str
;s22:将字符串x
str
进行分词,得到分词后的字符串序列x
strl
;分词后的字符串序列表示为m是分词得到的字符串序列长度;s23:初始化向量序列x
b
为空集;s24:初始化i=1,sidx=1;s25:的长度为len
i
,eidx=sidx+len
i-1;s26:通过向量化模型得到的向量s27:生成单字对应的融合编码向量6.根据权利要求5所述的一种基于字词信息融合的中文命名实体识别方法,其特征在于:生成单字对应的融合编码向量用于生成单字对应的融合编码向量,词中各个字的向
量分别加上词向量得到各个字的融合编码向量。7.根据权利要求6所述的一种基于字词信息融合的中文命名实体识别方法,其特征在于:生成单字对应的融合编码向量的具体操作包括:s271:设置j=sidx;s272:设置s273:添加到向量序列集合x
b
;s274:设置j=j+1;s275:如果j≤eidx,转s272,否则转s28;s278:设置i=i+1;s279:如果i≤m,则sidx=eidx+1,然后转s25,否则转s2a;s2a:向量序列x
b
经过线性变换得到最终的单字和词融合编码向量序列x
b
。8.根据权利要求1所述的一种基于字词信息融合的中文命名实体识别方法,其特征在于:向量x
a
和向量x
b
融合得到向量x
c
用于融合向量x
a
和向量x
b
得到向量x
c
,向量x
a
和向量x
b
分别在最后一个维度上进行softmax变换,然后引入超参数λ对向量进行融合,得到向量x
c
。9.根据权利要求8所述的一种基于字词信息融合的中文命名实体识别方法,其特征在于:向量x
a
和向量x
b
融合得到向量x
c
的具体操作如下:s31:初始化向量x
c
为空集;s32:初始化向量序号i=1;s33:对向量在最后一个维度上经过softmax层变换得到s34:对向量在最后一个维度上经过softmax层变换得到s35:λ为超参数,按经验取值,把添加到x
c
;s36:设置i=i+1;s37:如果i≤n,n为向量x
a
和x
b
的长度,则转s33,否则转s38;s38:返回向量x
c


技术总结
本发明涉及自然语言处理技术领域,具体为一种基于字词信息融合的中文命名实体识别方法,包括以下步骤:单字信息编码;单字信息和词信息编码;向量X


技术研发人员:赵志航 潘心冰 李明明 魏金雷
受保护的技术使用者:浪潮云信息技术股份公司
技术研发日:2023.07.18
技术公布日:2023/10/11
版权声明

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

飞行汽车 https://www.autovtol.com/

分享:

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

相关推荐