APP下载

基于藏文BERT的藏医药医学实体识别

2023-03-21朱亚军尼玛扎西

计算机与现代化 2023年1期
关键词:藏文字符语料

朱亚军,拥 措,尼玛扎西

(1.西藏大学信息科学技术学院,西藏 拉萨 850000;2.西藏自治区藏文信息技术人工智能重点实验室,西藏 拉萨 850000;3.藏文信息技术教育部工程研究中心,西藏 拉萨 850000)

0 引 言

藏医药学是中国医药学重要的组成部分[1]。藏医药学者从不同的角度对藏医药做了相应的研究,无论是在临床使用上[2-3],还是在藏药的理化分析上[4-5],藏医药都取得了长足的发展,但是在藏医药的知识发现上却少有研究。

藏医药学文本指的是有关藏医药学经验和知识的文字记录,其中蕴含着极其丰富的藏医药学常识、经验和知识[6]。比如藏医药典籍、医院就诊患者的诊疗记录等,这些文本往往是一些非结构化的藏文文字记录。藏文的语法结构非常复杂,其中包括以下4 个主要问题:

1)语序。藏文的语序主要为主语-宾语-谓语,比如在“རུ་རྟ་བསྣན་པོས་རླུང་ཁྲགི་སྤྱིསྤྱི་ལ་ཕན།(川木香益气血)”中,宾语“རླུང་ཁྲགི་(气血)”在谓语“ལ་ཕན(有利于)”的前面。

2)大部分形容词具有一般形式、比较级和最高级。比如“好”有3 个级别:“ཡིགི་པོཔོ།(好)”、“ཅུང་ཡིགི་པོ།(较好)”、“ཡིགི་ཤཔོས་(最好)”。

3)动词分现在时、过去时、未来时和命令式。

4)助词在藏文中具有重要作用,比如“གིསྤྱི”表示领属关系,“ལ”表示领有关系等。

语法结构越复杂语言模型对藏文的拟合难度越大,字符的上下文环境也越复杂。因此如何对大量的非结构化文本进行知识发现成为极具挑战的问题,而藏医药文本中的医学实体识别则成了基础而重要的工作[7]。

命名实体识别(Named Entity Recognition,NER)一直被看作是序列标注问题。2001 年,Lafferty 等[8]提出基于条件随机场(Conditional Random Fields,CRF)来解决分词和序列标注问题。邵诗韵等[9]和张磊[10]分别使用CRF 模型对电力工程标书文本和特定领域中的命名实体进行了识别;万静等[11]和高佳奕等[12]分别将CRF 模型应用在中文医药领域文本的命名实体识别,实现了症状信息的自动化抽取。2015年Huang 等[13]将 长 短 期 记 忆(Long Short Term Memory,LSTM)[14]神经网络和CRF 相结合并应用于序列标注任务,在多项文本理解任务中获得了SOTA结果。Gajendran 等[15]使用BiLSTM 对生物医学命名实体识别进行了研究,将字符级别和词级别的嵌入进行融合,丰富了字符嵌入的信息;Ch等[16]则分别使用CNN 和BiLSTM 对同一语料进行词嵌入的学习,进一步从多角度收集了文本的上下文信息,在2 种语料库JNLPBA 和NCBI-Disease 上 的F1 值 分 别 达 到 了86.93%、75.31%;殷章志等[17]和冯云霞等[18]均将字词信息融合后用于命名实体识别,充分利用了字和词的上下文信息,有效地提高了中文电子病历实体识别的效果;张艺品等[19]和高甦等[20]分别基于BiLSTMCRF 模型从中医典籍中抽取了中国传统医学相关实体;牧杨子[21]基于BiLSTM-CRF 模型,结合传统的半监督学习方法,扩展数据提高了模型的识别能力。值得一提的是,何家欢等[22]基于BiLSTM-CRF 模型对藏医药中的药理命名实体进行了研究,是较早的对藏医药实体识别的研究。王银瑞等[23]使用双向的LSTM建立语言预测模型,并使用迁移学习的思想将语言模型的知识迁移到命名实体识别模型上,F1值达80.4%;朱岩等[24]使用RoBERTa-WWM 生成电子病历的语义表示,然后通过BiLSTM 和CRF 模型进行特征提取实现相关医学实体的识别,F1 值达83.4%;景慎旗等[25]使用BERT 对上下文信息进行表示,并通过图卷积神经网络(GCN)提取相关实体特征,完成电子病历文书中相关医学实体的识别工作,F1值达84.2%。

BiLSTM-CRF 模型的输入层使用的是Embedding网络,虽然也能够编码字符嵌入,但是Embedding 网络层数不够深,对文本的学习能力不足。

本文的主要工作有:

1)首次对藏医药学藏文文本中的医学实体识别进行了研究。以往有关藏医药的命名实体识别研究数据主要来源于藏医药典籍的藏译汉版,在翻译过程中存在信息的丢失和改变等信息壁垒,直接对藏文版医学著作进行研究可以跨越信息传递的壁垒。

2)使用5 GB不同领域的藏文新闻语料训练了藏文BERT[26]模型。藏文BERT 模型可以灵敏地捕捉藏文字符间的关系,较好地拟合藏文的内部规律。经BERT初始化的藏文字符嵌入包含了更加丰富的语法和语义信息,增强了字符嵌入对藏文字符的表示能力。

3)基于藏文BERT 模型构建了藏医药医学实体识别模型BERT-BiLSTM-CRF,将藏文BERT 模型接入命名实体识别模型来初始化BiLSTM-CRF 模型输入层的表示,藏文BERT 模型能够实现根据不同的语境对藏医药文本字符进行灵活地表示,使字符嵌入对藏医药文本字符更能确切地表达,然后通过BiLSTMCRF 模型学习字符到标签的映射关系和标签间的转移规律。在藏医药文本医学实体识别数据集上,BERT-BiLSTM-CRF 模型相比BiLSTM-CRF 模型召回率R提升了2.1个百分点,F1值提升了0.0429,藏医药医学实体识别效果有明显提升。

1 基于BERT 的藏医药医学实体识别模型

基于BERT 的藏医药医学实体识别模型使用藏文BERT 模型初始化BiLSTM-CRF 模型的输入,然后使用BiLSTM 层抽取字符特征,最后使用CRF 层为标注序列添加转移约束,解码标注序列。BERTBiLSTM-CRF模型整体结构如图1所示。

图1 BERT-BiLSTM-CRF模型结构

1.1 基于BERT的字符嵌入层

藏文BERT 模型事先使用大量藏文新闻文本训练得到预训练的语言模型,再将其应用到藏医药文本字符嵌入的初始化层。如图1右所示。

Lample 等[27]的研究表明基于字符级别的表示能够获得与基于词级别的表示相同的效果。对于藏文而言,每一个具有意义的藏文词由至少一个藏文音节组成,并由音节点连接。因此综合藏文语言特点和NER 任务特点,藏文BERT 模型在训练时主要学习藏文音节间的关系。本文对开源预训练语言模型BERT 的源码进行了修改,重新实现了BERT 的tokenization 文件,以此实现基于音节点对藏文文本中的音节进行切分,对藏文BERT 模型的训练进行适配。此外,藏文文本在处理藏文特殊字符时,比如“༼”、“ༀ”、“།”,仍按一个音节处理。

在使用藏文BERT 模型对藏医药文本字符嵌入初始化时,首先将藏医药文本中的字符转换为其对应的字典序,即字符编码;再对字符所属的句子进行标识,即句子标识编码;为了获取文本语法信息和上下文信息,还要提供每个字符的位置信息,即位置编码。将字符编码、句子标识和位置编码求和后送入编码器进行关系学习。

编码器的核心是Multi-Head Attention。Attention 机制[28]能够基于文本建立字符之间的关联关系,并依据关联关系形成藏医药文本的字符嵌入。如图2所示,首先基于字符表示生成3个向量:查询向量q、键向量k和值向量v。为了计算“རུ་རྟ་བསྣན་པོས་རླུང་ཁྲགི་སྤྱིསྤྱི་ལ་ཕན།”中“རུ་”与其他词语之间的关联关系,用“རུ་”的查询向量q1分别与藏医药文本中每一个字符的键向量kj做内积得到“རུ་”与每一个字符的关联得分scr1j,得分越高表示“རུ་”与该词语的关系越大。然后将计算结果除以权值矩阵维度的平方根(8),缩放后权重wght1j在梯度下降时会平稳变化。接着使用Softmax 函数对计算结果进行归一化处理。最后,用Softmax 函数的计算结果分别与对应字符的值向量vj相乘并加和得到“རུ་”的向量表示E1,如公式(1)~公式(3)所示。

图2 Attention基于全文学习字符嵌入

其中L表示文本的长度。

这样一方面增强了一些词语对“རུ་”的向量表示的贡献,另一方面削减了其他词语对“རུ་”的向量表示的影响。“རུ་”的字符嵌入来源于整个文本,但每一个字符的贡献又有所不同。

藏文BERT 模型通过学习藏医药文本中字符的上下文特征基于不同语境初始化字符嵌入,增强了字符嵌入对藏医药文本中字符及其上下文信息的表示。接下来将通过基于BiLSTM的特征抽取层对藏医药文本中的上下文信息进行进一步提取。

1.2 特征抽取层

LSTM 改进了RNN,添加了遗忘门、输入门和输出门,使模型忘记不重要的信息,保留有用信息,并提示下一个时间步哪些信息比较重要,在一定程度上改善了RNN 长文本上下文信息获取能力不足的问题。BiLSTM 采用双向的LSTM,能够获取文本更大长度、更丰富的上下文信息。

如图1左图所示,BiLSTM 层使用来自BERT 模型的藏医药文本字符嵌入作为输入层的表示,通过前向LSTM 得到当前字符左侧的隐状态hl,通过后向LSTM得到当前字符右侧的隐含状态hr,拼接后得到当前字符的隐含状态h,如公式(4)所示。

为防止过拟合,先经过dropout 层后,再利用一个全连接层将隐状态向量h映射到K(标注集的标签数)维的向量,最后经过Softmax层得到向量p,p的第i维pi可看成是将字符映射为第i个标签的分值。这样BiLSTM 层自动化提取文本特征,完成了字符向标签的映射(发射矩阵)。

1.3 标注序列解码

序列标注模型可以看作概率图,概率图边上的权值由字符到标签的映射概率或标签到标签的转移概率表示。这使得CRF 模型使用维特比算法基于动态规划的思想来求解最短路径对标注序列进行解码。

对于序列标注问题给定观测序列X={x1,x2,…,xn}对应的标记序列Y={y1,y2,…,yn}的得分如公式(5)。

其中,P是字符与标签之间的映射关系,叫发射矩阵;A是标签与标签之间的转移关系,叫转移矩阵。Pi,yi为输入序列X第i个位置xi映射为yi的发射得分;Ai-1,i为标签序列Y从yi-1转移到yi的转移得分。从而最优标注序列Y*为公式(6):

在BERT-BiLSTM-CRF 模型中发射矩阵由BiLSTM 层获取,而转移矩阵仍由CRF 层统计得到,在求具有最大非规范化概率的Y*时CRF 层有效地为模型的标注序列添加了转移约束,避免了标签的非法匹配,进一步提高了标注的精确率。

2 实验及结果分析

因缺少藏医药医学实体标注数据集,本文通过藏医药领域知识库自建藏医药医学实体识别数据集,并将其应用于藏医药医学实体识别模型的训练和测试。

2.1 实验数据及评价指标

2.1.1 BERT训练语料

BERT 预训练语言模型的训练数据是从《中国西藏新闻网》(藏文版:http://tb.xzxw.com/)、《中国西藏网》(藏文版:http://tb.tibet.cn/)、《藏地阳光新闻网》(藏文版:http://ti.zangdiyg.com/)等新闻网站收集的5 GB 普通藏文新闻文本(生语料),包括政治、人物、旅游、农业、科技等几个领域。这些藏文文本体现了现代藏文使用规范和习惯。生语料不能直接用于BERT模型的训练,需要对生语料进行清洗和处理:

1)剔除生语料中的中文和英文;

2)剔除生语料中的空格,降低生语料分隔符号的复杂度;

3)将生语料按不同文本间用空行分隔和单句成行的原则进行分割。

经过以上步骤清洗和规范过的数据可以用来生成BERT模型的训练数据。

2.1.2 藏医药医学文本

《四部医典》由老宇妥·元丹贡布著于8 世纪中叶[29],在藏医学的基础理论、人体解剖、生理功能、病情诊断、疾病预防及治疗、药物方剂等方面做了详细的介绍,是顺应时代的发展和满足人民的需要而问世的一部医学著作。

本文节选《四部医典》中描述疾病预防和治疗以及对药物方剂组成、功效介绍的部分作为原始数据,并依据《晶珠本草》和网络可得资源构建了藏医药领域知识库,其中药材词典共有476味药材,疾病词典共有131种疾病,方剂词典共有1059 个方剂(其中还包含了藏成药名称)及部分藏医药药理相关名词共125个。

有些长实体中会存在一些短实体,在标注时为了避免短实体的提前标注对长实体造成破坏,本文基于最大匹配的思想在实际标注工作中建立了实体与实体标注的对照词典,然后将词典中的所有词条按照实体的长度进行排序,如表1所示。

表1 知识库词典词条举例

这样在标注的过程中会首先匹配较大长度的实体并进行标注,因为已经对实体预先进行了标注,因此可以直接用实体标注对其进行替换,替换后实体的每一个字符后都会多出一个标签,因此2个字及2个字以上的短实体即使存在于长实体中也不会再次被匹配。

如果短实体是一个字符,使用上述方法仍然会被重新匹配,对于这种情况,本文使用人工进行校对,尽可能减少错误的标注。

本文使用藏医药知识库基于最大匹配思想结合人工校对的半自动化标注方法对原始数据中的药材(YC)、方剂(FJ)、疾病(JB)、功效(GX)等实体基于BIO命名实体标注系统进行标注,如表2所示。

表2 藏医药医学实体标注数据

表3 是4 类医学实体的统计结果,在藏医药文本中方剂实体和疾病实体相比于药材实体和功效实体引用次数较少,因此标注后统计的相关实体数对应减少。标注共获得7211条数据,按80%、10%、10%的比例切分为训练集、验证集、测试集。

表3 藏医药医学实体统计

本文采用的评价指标为精准率(Precision,P)、召回率(Recall,R)和F1 值。P表示正确识别的实体占识别出实体的比例,R表示正确识别实体占应识别出实体的比例,F1 是综合P和R的评价指标,对P 和R进行调和。具体计算如公式(7)~公式(9)。

其中,TP是正确识别的实体个数,FP是识别出的错误实体个数,FN是没有识别出的实体个数。

2.2 BERT模型的训练

目前没有公开的使用藏文语料训练的BERT 预训练语言模型。为满足藏医药文本字符嵌入初始化的需要,本文训练了藏文的BERT模型。

BERT 模型基于百度深度学习框架paddlepaddle1.7.2实现,在paddlepaddle开源的BERT源代码上进行了修改,针对藏文结构特点,重新实现了BERT的tokenization文件。训练使用GPU(TESLA V100)加速,藏文BERT 模型的训练参数参考BERT-base-en的config文件,其中部分重要参数如表4所示。

表4 BERT模型部分参数

config 文件中参数hidden_size 分别设置为128、256、512、768、1024 进行训练,其中config 文件的hidden_size默认值为768。在训练过程中每隔10万步使用验证集对藏文BERT 模型进行一次验证,并记录20次验证结果中的损失(LOSS)和语义困惑度(PPL),可视化结果如图3和图4所示。

图3 不同hidden_size的BERT模型的LOSS变化曲线

不同hidden_size 的BERT 模型能够获得对应维度的字符嵌入。从图3、图4可以发现,字符嵌入的维度越小,BERT 模型的训练越快。这是因为低维度的BERT 模型学习能力有限,在训练时LOSS 曲线很快趋于平稳,这意味着BERT 模型达到了最大学习能力;相反,字符嵌入维度越大,BERT 模型的训练越慢,LOSS 曲线相比低维度BERT 模型较晚趋于平稳,语义的困惑度PPL 持续降低,这也意味着BERT 模型对藏文语料的理解能力逐渐提升,BERT 预训练语言模型越来越精确地模拟了藏文文本字符间的关系。

图4 不同hidden_size的BERT模型的PPL变化曲线

不同hidden_size 的BERT 模型训练200万步后的测试结果如表5所示。实验表明BERT模型初始化的字符嵌入维度越大,BERT 模型的LOSS 和PPL 越小,BERT模型对藏文内部规律的拟合效果越好。

表5 不同hidden_size的BERT模型的测试结果

2.3 基于BERT的藏医药医学实体识别

BERT-CRF 以及BERT-BC 模型基于百度深度学习框架paddlepaddle1.7.2 实现,训练使用GPU(TESLA V100)加速,有关以上2 个模型的部分参数设置如表6所示。

表6 BERT-CRF和BERT-BC的部分训练参数

实验使用2.1.2节中标注的藏医药数据进行训练和测试。由于实验数据较少,为增加每一轮的训练步数,实验使用了较小的batchsize,有助于提高实验效果。

为了得到不同维度的藏文字符嵌入,在2.2 节中用不同的hidden_size 训练了BERT 模型。在藏医药医学实体识别实验中,分别使用不同的BERT 模型对藏医药文本进行字符嵌入的初始化。基于不同BERT 模型的藏医药医学实体识别的实验结果如表7所示。实验表明,经BERT 模型初始化的藏医药文本字符嵌入维度越大,医学实体识别效果越好。这是因为藏医药文本字符嵌入维度越大,其包含的上下文信息就越丰富,BiLSTM 层能够更加准确地从藏医药文本中抽取当前藏文字符的上下文特征。此外,虽然使用1024维BERT 模型初始化的BERT-BC 模型效果比使用768 维BERT 模型初始化的该模型效果要好(F1值高出0.0028);但是使用1024 维BERT 模型初始化的BERT-CRF模型效果相比使用768维BERT模型初始化的同一模型效果却差了一点(F1 值低了0.0075)。这大概是因为对于BERT 模型初始化的同一维度字符嵌入,BiLSTM 比CRF 具有更加优秀的特征提取能力。

表7 不同维度BERT模型藏医药实体识别的结果

文献[23]使用了RoBERTa-WWM 对电子病历的语义进行表示,并使用BiLSTM-CRF 模型进行特征提取;文献[24]使用BERT 对电子病历文本的上下文进行表示,并使用GCN 和CRF 模型对文本进行特征提取。为了比较使用藏文BERT 模型和未使用藏文BERT 模型的信息增益,本文还实现了基于CRF、BiLSTM-CRF 模型的藏医药医学实体识别模型,不同模型与BERT-BC模型的实验结果对比如表8所示。

表8 使用BERT模型初始化字符嵌入后的藏医药医学实体识别结果对比

首先,文献[23]中的RoBERTa-WWM 模型基于全词覆盖学习语义表示,需要提前对文本进行分词,但藏文分词技术不如中文分词技术成熟;另一方面,RoBERTa-WWM 虽然增强了词与词之间的关系表示,但对于命名实体识别模型来说缺少了字符之间的依赖关系。文献[24]中使用GCN 作为电子病历文本序列的特征抽取模型,GCN 根据字与字之间的相邻关系构建字的共现图,对字符进行编码,这种基于共现关系的特征模型相比LSTM 缺少了字符之间的时序关系,造成文本语法信息的丢失。因此从表8 可以看出,本文的BERT-BC 模型的识别效果相比与文献[23]和文献[24]效果更好。

其次,在使用BERT 模型对藏医药文本字符嵌入初始化后,基于BERT-CRF 和BERT-BC 的命名实体识别模型识别效果均有明显的提升,其中BERT-CRF模型的F1 值增加了0.0442,BERT-BC 模型的F1 值增加了0.0429,基于BiLSTM-CRF 的命名实体识别模型仍然优于基于CRF 的命名实体识别模型。此外,由表8 可以发现,没有使用BERT 模型初始化藏医药文本字符嵌入的模型精确率高于召回率,这意味着模型没有足够的能力从文本中将藏医药医学实体抽离出,不过藏医药文本字符嵌入经过BERT 模型初始化后,召回率有了较大提升,其中BERT-CRF 模型的召回率R相比CRF 增加了8.26 个百分点、BERT-BC 模型的召回率R相比BiLSTM-CRF 增加了6.44 个百分点。这大概是因为经过BERT模型初始化的藏医药文本字符嵌入携带了更加丰富的藏医药文本上下文信息,BiLSTM层在抽取藏文字符特征时更为准确,使得模型更容易将相关医学实体从藏医药文本中识别出来。不过这无疑会丢失一些精确率,因此可以看到使用BERT模型初始化藏医药文本字符嵌入后,模型的精确率相比召回率提高得并不多,其中BERT-CRF模型的精确率P相比CRF增加了0.56个百分点,BERT-BC模型的精确率P相比BiLSTM-CRF增加了2.1个百分点。

3 结束语

本文通过实验验证使用大量藏文文本预训练的BERT 模型能够较好地捕捉藏文文本中的语法和语义信息,并且BERT 模型初始化的字符嵌入维度越大,越有利于下游任务模型的特征抽取,同时藏医药医学实体识别的效果也越好。使用BERT 模型初始化藏医药文本字符嵌入的藏医药医学实体识别模型BERT-CRF和BERT-BC的识别效果相比基于CRF和BiLSTM-CRF 的藏医药医学实体识别模型均有所提高,并且使用BERT 模型初始化藏医药文本字符嵌入可以有效地提升藏医药医学实体识别的召回率。这些实验结果都说明BERT 模型可以增强字符嵌入对藏医药文本中藏文字符及其上下文信息的表示能力,有助于提高实验效果。

本文在训练藏医药医学实体识别模型时,受限于可得的藏医药相关文本较少,最后也未能获取足够多的标注数据。因此,后期工作将获取更多的藏医药标注数据,以此增强藏医药医学实体识别模型的鲁棒性。此外,词语是藏医药文本中的一个基本语义单元,词语内部的字符具有更加紧密的关系,因此词语携带了丰富的信息,如果能在字符嵌入中融入词语的信息,这也许会为藏医药医学实体识别模型提供更加丰富的上下文信息,进一步提高识别效果。

猜你喜欢

藏文字符语料
西藏大批珍贵藏文古籍实现“云阅读”
字符代表几
一种USB接口字符液晶控制器设计
HBM电子称与西门子S7-200系列PLC自由口通讯
黑水城和额济纳出土藏文文献简介
消失的殖民村庄和神秘字符
基于语料调查的“连……都(也)……”出现的语义背景分析
藏文音节字的频次统计
现代语境下的藏文报刊
华语电影作为真实语料在翻译教学中的应用