辅助学习和理解古汉语知识是当今的研究热点㊂
命名实体(NE:Named Entity )一词是在第6届信息理解会议(MUC⁃6:Message Understanding
Conferences)[1]上提出的,通常是指文本中具有特殊意义或根据任务需求预先定义好的实体㊂常见的命名实体有人名㊁地名㊁机构名等㊂命名实体识别(NER:Named Entity Recognition)任务主要是从自然语言文本中识别出命名实体,是自然语言处理(NLP:Natural Language Processing)的一项基础性任务㊂对古文文本进行命名实体识别是对古文进行自动化知识点标注的基础,但传统的命名实体识别方法无法充分学习古汉语复杂的句子结构信息,并且在长序列特征提取过程中容易带来信息损失问题㊂因此需要在分析古汉语语料特点的基础上,研究命名实体识别方法,以提升古汉语命名实体识别的效果㊂
针对上述需要,笔者在分析古汉语句法的基础上,结合人名㊁地名㊁组织名㊁职位名和书名相关重要实体的命名形式,结构特征以及分布特点,研究命名实体识别方法,提出了以BiLSTM⁃CRF(Bidirectional Long Short⁃Term Memory⁃Conditional Random Field)模型为基础融合SikuBERT(Siku Bidirectional Encoder Representation from Transformers)模型和多头注意力机制的古汉语命名实体识别方法,并进行实验验证,
以实现对古汉语实体识别效果的提升㊂
1 相关工作
1.1 古汉语命名实体及语料
表1是在分析古汉语句法的基础上,对人名㊁地名㊁组织名㊁职位名㊁书名相关重要实体的命名形
式㊁结构特征以及分布特点的简要分析㊂
表1 古汉语实体特点
Tab.1 The entity characteristics of ancient chinese
实体命名形式
结构特征
分布特点
人名一般由姓㊁氏㊁名㊁字组成㊂如屈原,姓芈㊁氏屈㊁名平㊁字原㊂
1)男子主要为: 氏+名/字”,如屈原;2)女子主要为: 夫姓+本姓”㊂1)在文本中首次出现时会提到 姓/氏㊁名㊁字”,再出现时,只提 名/字”;2)在文中主要充当主语㊁宾语㊂地名
通常以山水㊁地势㊁奇特现象以及人文因素命名,如泰山㊁
帝丘㊂
1)单子专名,如京;2)专名+通名,如泰山;3)双字专名,如甘鹿㊂1)介词之后;2)常以并列形式出现㊂
组织名命名主要源自表区域㊁表门类
的词等,如三省六部㊂
1)专名+通名,如兵仗局;2)本文采用的数据集将齐㊁楚㊁燕等国家以及部落如匈奴也作为组织名实体㊂
动词前后作主语或宾语,如 西戎反王室”㊂
职位名根据官位大小和工作性质
命名,如太傅指太子或帝王的
老师㊂
1)国君,如帝;2)中央官职,如丞相;3)地方官职,如太守;4)品级官职,如正一品太师㊂
多位于动词之后,如 征”等表官职变化的词后㊂
书名
通常以书的含义㊁人名命名㊂如‘礼“‘诸葛亮集“㊂
在文中结构大多为 ‘+书名+“”
1)多位于动词之后,如 命刑峦追撰‘孝文起居注“”;2)常以并列形式出现㊂
从表1可看出,掌握古汉语句子结构的规律以及学习古汉语的字词语义就能较准确理解句子,因此
古汉语结构位置㊁语义信息对识别古汉语命名实体尤为重要㊂另外,古汉语的一些相关字符序列过长,
模型识别实体时需要学习长距离的序列信息,可能带来信息损失问题㊂
1.2 命名实体识别方法
早期使用的NER 方法是基于规则匹配的方法,该方法需要专家构建规则,再从文本中查与该规则
匹配的字符串㊂但规则过度依赖于领域知识,可移植性极差㊂此时,机器学习的兴起,给人们带来了
字符串长度在线测试新的思路㊂
为了改进NER 方法,人们将目光投向了隐马尔可夫模型(HMM:Hidden Markov Model)[2]
㊁最大熵
模型(MEM:Maximum Entropy Model)
[3]
㊁支持向量机(SVM:Support Vector Machine)
[4]
㊁条件随机场
(CRF:Conditional Random Field)[5]等经典机器学习模型上㊂其中效果较好的是CRF模型,不仅能容纳上下文信息,还能进行全局归一化获得最优解,在农业[6]㊁医疗[7]等领域都取得了较好的效果㊂在古汉语领域,石民等[8]提出了基于CRF的分词标注一体化方法,有效降低了人工标注的工作量㊂但复杂的特征提取工作依然离不开人工的参与㊂此时,深度学习的出现解决了这个问题㊂
深度学习[9]允许由多个处理层组成的计算模型学习具有多个抽象层次的数据表示,避免了繁琐的人工特
征提取工作㊂经典的深度学习模型有卷积神经网络(CNN:Convolutional Neural Network)[10]㊁循环神经网络(RNN:Recurrent Neural Network)[11]等㊂其中,RNN因为具有较强的序列特征提取能力,在NER领域应用广泛㊂Lample等[12]提出的双向长短期记忆网络(BiLSTM:Bidirectional Long Short⁃Term Memory)是在RNN的基础上改进的,不仅在一定程度上解决了RNN存在的梯度爆炸或消失等问题,还具有获取上下文特征的能力;他们还将BiLSTM与CRF模型结合,在英语㊁德语等语料上验证了识别的有效性㊂BiLSTM⁃CRF模型也被人们应用于NER的司法[13]㊁中医[14]等多个领域,是目前较为主流的模型㊂同时,人们还热衷于将BiLSTM⁃CRF模型作为基线模型,并根据具体的NER任务对其进行改进㊂例如,李丽双等[15]构建了CNN⁃BiLSTM⁃CRF神经网络模型,利用CNN网络卷积获得表示单词形态特征的字符向量,用以补充词向量的不足㊂王昊等[16]建立以字向量作为输入的BiLSTM⁃CRF历史事件元素命名实体识别模型,避免了分词可能带来的错误㊂
近年来,因为注意力机制(Attention)具有扩展神经网络的能力,所以融合注意力的模型在深度学习的各个领域均得到广泛的应用[17]㊂例如,在识别化学药物命名实体时,杨培等[18]将Attention机制引入了BiLSTM⁃CRF模型中,提高了全文的一致性和缩写识别的准确率㊂罗熹等[19]在BiLSTM⁃CRF模型的基础上,结合相当于多个Attention机制拼接而成的多头注意力(MHA:Multi⁃Head Attention)机制捕获字符间潜在的语境和语义关联等多方面的特征,有效地提升了中文临床命名实体的识别能力㊂2017年, Vaswani等[20]提出了完全依赖于Attention机制的Transformer模型,因为其具有高效并行计算能力,从
而在NLP领域的应用颇为成功㊂基于此,Devlin等[21]提出了采用双向Transformer编码器结构的BERT (Bidirectional Encoder Representations from Transformers)预训练语言模型,能根据下游不同的NLP任务对神经网络输出层进行微调,提升模型的应用效果㊂目前常用的中文BERT是由Google官方提供的基于中文训练的包含简体和繁体中文的预训练模型㊂与中文BERT不同,王东波等[22]提供的SikuBERT是基于‘四库全书“繁体语料在BERT上进行继续训练的预训练模型,其设计面向‘左传“语料的命名实体识别等验证任务,验证了SikuBERT等预训练模型具有较强的古文词法㊁句法㊁语境学习能力和泛化能力㊂
因此,考虑到BERT模型[21]具有学习上下文结构位置和语义信息的能力㊁MHA机制[19]具有从多个角度捕获字符间的关联权重和降低序列信息损失的优势,并且由于本文针对的古汉语领域的命名实体识别任务的原始语料与‘四库全书“语料更为相近,SikuBERT比中文BERT更适合于增强文本的语义表示㊂因此笔者在BiLSTM⁃CRF模型的基础上融合SikuBERT模型与多头注意力机制,设计一种古汉语命名实体识别方法SikuBERT⁃BiLSTM⁃MHA⁃CRF,以实现古汉语命名实体识别效果的提升㊂
2 融合SikuBERT模型与MHA的古汉语命名实体识别模型
2.1 模型整体架构设计
图1是模型的整体架构图,主要包括SikuBERT层㊁BiLSTM层㊁MHA层和CRF层㊂为充分利用古汉语实
体之间的结构位置信息以及字词的语义信息,将具有预测结构位置㊁语义信息能力的SikuBERT 模型放到第1层对古汉语语料进行预训练㊂再将SikuBERT模型输出的信息向量输入到第2层具有获取上下文特征能力的BiLSTM模型中进行特征提取,使输出字符序列,如l=[l1,l2, ,l n],具有更多的上下文信息㊂但BiLSTM模型不能很好地处理过长的序列,会带来信息损失的问题,因此需要第3层MHA 机制提升关键字符在句子中的权重,减少信息的损失㊂最后通过第4层具有学习标签之间约束能力的CRF模型对MHA输出的特征信息进行解码,得到字符标签序列,获得最终的预测结果㊂
图1 模型的整体架构
Fig.1 Overall architecture of the model
2.2 SikuBERT 模型
BERT [21]模型是通过训练大规模无标注语料获得包含文本丰富信息向量的预训练语言模型㊂BERT
模型将字向量㊁文本向量㊁位置向量作为模型的输入㊂字向量用于表示文本中字的信息,文本向量用于表示文本全局的语义信息,并将文本向量和字向量融合,由于文本不同位置的字所携带的语义信息不同,因此给文本中每个字附加一个位置向量用以区分㊂并且BERT 模型的网络结构由多层双向Transformer 编码器结构叠加而成,使模型在学习和预测每个字时,可以参考前后双向的文本语义信息,获取文本的结构特点㊂因此BERT 模型输出的序列向量具有强大的语言表征能力㊂
SikuBERT 与BERT 的区别是预训练时使用的语料不同,SikuBERT [22]是基于‘四库全书“繁体语料在
BERT 上进行继续训练的预训练模型㊂笔者针对的古汉语领域的命名实体识别的原始语料与‘四库全书“
语料更为相近,因此SikuBERT 比中文BERT 更加适合本文的任务,以增强文本的语义表示㊂
2.3 BiLSTM 模型
如图1所示,BiLSTM 模型由双向的LSTM(Long Short⁃Term Memory)模型[23]组合而成,可以学习
文本双向的上下文特征㊂LSTM 模型在RNN 的基础上,采用遗忘门f 决定上一个细胞中需要抛弃的信息,输入门i 控制本细胞需要加入的信息,输出门ο决定当前阶段的输出信息㊂
3个门具体的计算公式为
f t =σ(W f [h t -1,x t ]+b f ),
(1)i t =σ(W i [h t -1,x t ]+b i ),
(2)o t =σ(W o [h t -1,x t ]+b o ),(3)c t =f t ㊃c t -1+i t ㊃tanh(W c [h t -1,x t ]+b c ),
(4)h t =o t ㊃tanh(c t ),(5)
其中f t ㊁i t ㊁οt 分别为遗忘门㊁输入门㊁输出门在t 时刻的结果;σ为sigmoid 激活函数;W ㊁b 分别为3个门的权重矩阵和偏置矩阵;x t 为t 时刻的输入内容;h t -1㊁h t 分别为t -1㊁t 时刻的输出内容;c t 为LSTM 在t 时刻的细胞状态;㊃为点积运算㊂
LSTM 通过引入 门控”的选择机制,有选择地保留或删除信息,解决了RNN 在处理长序列数据时
容易出现的梯度爆炸或消失问题㊂但单向的LSTM 无法保留后文的信息,因为其输入来自前文㊂而双向
LSTM 网络拼接成的BiLSTM 网络可以捕捉前后文信息,获取全局的前后文特征[12]㊂
2.4 多头注意力机制
虽然BiLSTM 能提取全局的前后文特征,但在处理过长的序列时会出现信息损失问题,不能充分
表达文本中关键字的重要性㊂因此,在此基础上,笔者引入多头注意力机制给BiLSTM 层的输出向量
分配不同的权重㊂通过分配权重,获取词与词之间的相关度,使模型关注重点词,抑制无用词,能有效解决BiLSTM 模型带来的信息损失问题,提高模型的识别效果㊂
多头注意力机制相当于多个单头注意力机制的拼接,单头注意力机制的计算过程为
A (Q ,K ,V )=S QK T
d æ
èçöø
÷k V ,(6)
其中A 为单头注意力机制的计算结果,S 为Softmax 函数,Q ㊁K ㊁V 分别为query㊁key 和value 的简写,K 和V 是一一对应的,Q ∈R n ×d k ,K ∈R m ×d k ,V ∈R m ×d k ,d k 为神经网络的隐藏层单元数㊂首先将上层模型(如BiLSTM 模型)的输出向量通过3次不同的映射转换成3个维度均为d k 的输入矩阵Q ㊁K ㊁V ,再根据Q 与K 的相似性计算权重,并利用softmax 函数对权重进行归一化处理,最后通过与V 相乘获得权重求和结果㊂
与单一注意力机制相比,多头注意力机制分别对Q ㊁K ㊁V 的各个维度进行多次线性映射,使模型的效果更佳:
M (Q ,K ,V )=C (h 1, ,h n )W O ,
(7)
其中M 为多头注意力机制的计算结果,C 为拼接操作,h i =A (QW Q i ,KW k i ,VW V
i )为多头注意力机制模块中
的第i 个头,W Q i ㊁W K i ㊁W V i ㊁W O 为线性映射用到的权重矩阵;n 为拼接数量㊂将Q ㊁K ㊁V 通过矩阵映射后,
重复执行n 次Attention 操作,最后将结果拼接,即为多头注意力机制㊂其能使用不同序列位置的不同子空间的表征信息进行序列数据处理㊂而在单一注意力机制中,这些不同位置不同子空间的表征信息由于取均值操作的存在,而将被模型丢弃[20]㊂
2.5 CRF 推理层
条件随机场CRF 模型是指在输入一组序列x =[x 1,x 2, ,x n ]的情况下,输出另一组序列y =[y 1,y 2,
,y n ]的条件概率分布模型㊂CRF 通过学习上层模型输出的状态特征关注当前位置的字符可以被转换成哪些实体标签,通过学习转移特征关注当前位置和其相邻位置的字符可以有哪些实体标签的组合,能
解决无约束标注可能带来的错误标签㊂预测序列y =[y 1,y 2, ,y n ]的得分为
S (x ,y )=
∑n
i =0
A y i
,
y i+1
+
∑n
i =1
P i ,y i
,(8)
其中A 为转移分数矩阵;A y i ,y i +1为y i 标签转移为标签y i +1的概率;P 为状态分数矩阵;P i ,y i 为第i 个字被标记为y i 的概率;n 为序列长度㊂显然S (x ,y )越高,预测越准确㊂所有可能的序列路径归一化后得到关于预测序列y 的概率为
P (y x )=
exp(S (x ,y ))
∑
~y ∈Y x
(S (x ,~y )),(9)
其中~y 为真实的标注序列;Y x 为所有可能的标注序列㊂在进行解码时,使用维特比算法,寻所有预测
序列y 中得分最高的序列y *,如下[24]:
y *=arg max ~
y ∈Y x
S (x ,~y )㊂(10)
3 实验与分析
3.1 实验数据的获取与整理
该实验主要使用的C⁃CLUE (Classical⁃Chinese Language Understanding Evaluation Benchmark)数据
集[25]是天津大学数据库课题组基于众包标注系统构建的文言文数据集㊂该系统引入 二十四史”的全部文
本内容,允许用户标注实体,并通过在线测试判断用户的专业度确保标注结果的准确性㊂该数据集被划分为训练集㊁验证集和测试集,实体主要包括人名㊁地名㊁组织名㊁职位名和书名,标注采用BIO (Begin Inside Outside)标注体系㊂表2是本文对实际获取的C⁃CLUE 原始数据集的统计情况,实体主要
包括人名㊁地名㊁组织名㊁职位名和书名,共22502个实体㊂
表2 C⁃CLUE 原始数据集的统计
经检查数据集的标注情况,笔者发现数据集中各类实体标注都存在漏标的情况(见图2),人名实体 袁绍㊁高幹”㊁职位名实体 并州牧”㊁地名实体 壶关口”㊁组织名实体 御史台”㊁书名实体 ‘典言“”㊁
‘质疑“”都是原始数据集中存在的漏标情况㊂
因此笔者基于原始数据集,根据C⁃CLUE 数据集的标注规则对实体进行了补标㊂表3是对实体进行
补标后C⁃CLUE 数据集的统计情况,总共有24982个实体㊂
图2 实体标注漏标情况的部分展示
Fig.2 Partial display of missing labels in entity labeling
表3 当前C⁃CLUE 数据集的统计
Tab.3 Statistics of the current C⁃CLUE dataset
实体类别训练集验证集测试集
人名(PER)1156011521180地名(LOC)3695265295组织名(ORG)2210
74141职位名(JOB)
3265535410书名(BOO)1353134实体总数
20865
2057
2060
为验证模型的有效性,笔者构建了自己的数据集
Siku 数据集㊂笔者通过python 对典籍‘四库全
书“中的‘史部“内容进行了批量获取,并划分为训练集㊁验证集和测试集,采用BIO 标注体系对其中的人名㊁地名㊁组织名㊁职位名和书名实体进行标注㊂该数据集格式如图3所示,其中实体类别数量如表4所示,共有25558个实体㊂
图3 Siku 数据集部分展示
Fig.3 Partial display of Siku dataset
表4 Siku 数据集的统计
Tab.4 Statistics of Siku dataset
实体类别训练集验证集测试集人名(PER)1120012001256地名(LOC)4500320312组织名(ORG)2100135130职位名(JOB)
3321432430书名(BOO)1434237实体总数
21264
2129
2165
3.2
实验设计
1)实验环境与参数设置㊂实验模型采用PyTorch
深度学习框架进行搭建,主要的实验环境如表5所示㊂
表5 实验环境
输入输出中使用Dropout 防止过拟合,取值为0.5㊂
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论