水文模型知识学习的命名实体识别方法研究

2023-12-05 12:49赵慧子周逸凡赵红莉
关键词:模式识别命名水文

赵慧子,周逸凡,段 浩,赵红莉,张 东

(1.中国水利水电科学研究院,北京 100038;2.水利部数字孪生流域重点实验室,北京 100038;3.大连海事大学,辽宁 大连 116026)

1 研究背景

随着信息技术的发展,社会各领域信息量呈现爆发式增长,如何更好地收集、管理和利用各领域海量信息,提供智能化领域知识服务,成为亟待解决的热点问题。知识抽取是领域知识服务的基础,即从大量非结构化数据中获取有用的知识文本,主要包括实体抽取、关系抽取、事件抽取三个方面。其中,知识实体的抽取又被称为命名实体识别[1](Named Entity Recognition,NER),旨在将文本中的知识实体识别出来,并按照专家预先定义的知识体系进行分类存储、管理。

命名实体识别的方法可分为基于规则、基于机器学习和基于深度学习的方法[2]。早的命名实体识别采用基于人工编制字典和规则的方法,在数据量较少时,识别的准确率较高,然而随着数据量的增大,规则的复杂性显著增加,此类方法由于缺乏鲁棒性和可移植性[3],单纯依靠此类方法,人工处理工作量大,难以完成大规模识别任务。随后有专家将实体识别作为序列标注任务,据此提出基于特征定义和统计的监督学习方法,改善了单纯基于规则的方法可移植性较的问题,主要模型有条件随机场模型(Conditional Random Field,CRF)[4]、隐马尔科夫模型(Hidden Markov Model,HMM)[5]、最大熵模型(Maximum Entropy,ME)[6]、支持向量机(Support Vector Machine,SVM)[7]等,这类引入了机器学习的方法显著提升了模型识别性能和可移植性。随着以复杂人工神经网络技术为基础的深度学习技术的兴起,其在自然语言识别任务中发挥了巨大作用,基于深度学习的方法相对于机器学习的方法无需复杂的特征定义,能够自动学习文本特征,当前已成为命名实体识别方法研究的主流,代表模型有双向长短记忆-条件随机场(BiLSTM-CRF)模型[8]、BERT模型[9]等。其中BERT模型在通用领域具有很好的效果,在自然语言处理领域的多项任务上都取得了领先的成绩,然而面对某些特定垂直细分领域,BERT模型仍然存在一些挑战和局限性,需要进一步的优化和改进[10-11]。

水利领域知识图谱的发展也推动了水利命名实体识别的研究,段浩等[12]通过分析整合各类水利业务与学科知识数据,构建了面向水利综合知识的图谱(又称“水问”),图谱实体抽取采用BiLSTM-CRF和模式识别结合的方法,获得了一定规模的实体总量,截至202210月,图谱共收录了160余万个水利实体;顾乾晖等[13]构建了基于对抗训练的BERT-CRF模型识别水利命名实体,在训练速度和识别性能上均有较优效果。水利领域实体具有细分领域多、文本数据量大、知识融合复杂等特征,因此垂直细分领域实体识别较通用领域实体识别更加复杂,上述两项研究中均没有针对这一难点展开专门研究。

本文以水利垂直领域之一的水文模型领域相关知识抽取为例,开展命名实体识别研究,以水文模型中文刊论文为数据源构建了水文模型实体数据集,针对细粒度水利命名实体的抽取问题,构建了基于多策略的水文模型命名实体识别方法:即融合BERT-Base-Chinese模型、LAC(Lexical Analysis of Chinese)工具和模式识别的方法,对水文模型领域命名实体进行抽取,具有较高的精确率和召回率。本研究可为其他水利业务知识实体提取及水利综合知识图谱构建提供技术参考。

2 研究场景与数据

本文以面向刊文献的水文模型知识学习为研究场景,以刊论文为数据源,尝试建立水文模型相关知识中命名实体的识别方法。

2.1 命名实体识别场景设定本文从刊论文中学习水文模型的名称、模拟要素、应用流域、计算时段、精度、继承-发展关系、研发人、研发单位等知识,设定8类实体如下:“流域”(BAS)、“监测站点”(STA)、“模型名称”(MOD)、“水文要素”(ELE)、“计算时段类型”(TIM)、“评价指标”(IND)、“自然人”(PER)、“机构”(INS),同时还设定识别评价指标对应的“数值”(DAT)和“计算时段”(CYC)两类实体属性。“流域”和“监测站点”实体指论文中模型应用的流域;“模型名称”实体包括论文中提到模型及父模型;“自然人”“机构”实体指模型开发或改进的人及所在机构;其余实体主要用于提取模型应用精度相关的关键信息,其中“计算时段类型”为模型率定、验证等描述,“计算时段”为各计算时段起止时间,如“1998—2010”。 以《SWAT模型在黄河流域宁夏段的适用性评价及展望》一文为例,水文模型知识抽取示例见表1。

表1 水文模型知识抽取示例

2.2 输入数据构建

2.2.1 数据集数据来源 本文数据主要来源于CNKI中国刊全文数据库。以“水文模型”、特定模型名称等为关键词进行检索,搜集了2005—202117间水文模型研究的中文核心刊论文共883篇。通用领域实体可用人民日报标注语料库[14]等进行训练,水文模型领域中的大部分实体为词法分析中未登陆词识别的命名实体,需要构建水文模型相关实体数据集,并基于此进行语句抽取作为模型输入。

2.2.2 数据集标注方法 由人工标注除“自然人”和“机构”以外的8种命名实体及属性,用于模型训练与性能评价。本文采用BMOES标注法对txt文本进行标注,其中,“B-实体类型” 表示实体的开头(如“B-ELE”表示水文要素实体的开头),“M-实体类型”表示实体的中间位置,“E-实体类型”表示实体的末尾位置,“S-实体类型”表示一个单独字词作为实体,“O”表示非实体。其中实体类型为“流域”(BAS)、“监测站点”(STA)、“模型名称”(MOD)、“水文要素”(ELE)、“计算时段类型”(TIM)、“评价指标”(IND)、“数值”(DAT)和“计算时段”(CYC)8类,数据集共有33种标注符号。

2.2.3 数据集构建 用于命名实体识别任务的数据集为标注后的句子,其构建包括实体标注和语句抽取两部分:

(1)实体标注。首先将883篇水文模型领域论文pdf解析为分句的文本数据流,由人工对其进行实体标注,并对标注内容进行筛选,剔除或修正错标、漏标;通过基于少量人工和远程监督的短语挖掘技术,构建正例短语挖掘(Robust Positive-Only Distant Training)和基于词性标注的短语分词(POS-Guided Phrasal Segmentation)模型,将水利名词短语标识为带有实体类别标签的候选单词,即将句子文本中的语料与标注实体对齐,以获取更多标注实体数据。

(2)语句抽取。解析后的文本存在大量不包含实体的句子,过量不包含实体的句子会影响模型的实体识别准确率,因此需要将pdf解析后截断的句子与上述实体数据进行匹配,抽取含有各类实体的句子,同时保留一定数量不包含实体的句子。

数据集的具体形式为输入模型的序列标注,数据集每行由两部分组成,分别是字符和标签,字符和标签中间使用空格隔开。数据集结构示意见图1。

图1 数据集结构Fig.1 Dataset structure

2.2.4 数据集构建成果 水文模型知识实体数据集共包含各实体45 621个,句子26 078个,其中不包含实体的句子6000余个,每个句子的最大长度为128个字符。用于BERT模型训练时,数据集按照8∶2的比例划分为训练集和测试集两部分。

3 基于多策略的水文模型命名实体识别方法

3.1 识别策略基于多策略的水利命名实体识别,对除“自然人”和“机构”以外的8种实体及属性采取了三种不同的识别策略,分别为模型识别、工具预测和模式识别。其中:①“流域”实体通过字典采用模式识别的方式抽取;②“监测站点”“模型名称”“水文要素”“计算时段类型”“评价指标”命名实体采用BERT模型识别和模式识别结合的方法,如针对在单BERT模型识别下效果不佳的中英结合“模型名称”,采用模式识别的方式以提升识别性能,如针对“监测站点”实体,采用与水利综合知识图谱(“水问”)[12]中已有实体数据进行匹配的方式以提升识别性能;③“计算时段”和“数值”实体表现为“1998—2010”、“大于0.8”、“均大于0.8”等形式,存在很强的规律性,因此数字部分采用对时间和数值结构识别性能较优的LAC分词工具,其模型整体效果F1值超过了0.91;中文部分结合常见的修饰词进行模式识别,例如“均小于”、“超过”、“以上”等,能精确地提取文本中的“计算时段”和“数值”实体;④“自然人”和“机构”实体可通过导入半结构化的题录信息的方式直接获得。具体命名实体识别策略见图2。

图2 水文模型命名实体识别策略Fig.2 Hydrological model named entity recognition strategy

3.2 BERT模型

3.2.1 模型结构 BERT模型是Google公司开发的预训练语言模型,用于自然语言处理中的各项任务,BERT的核心结构为多层双向Transformer结构:一个由编码层(Encoder)和解码层(Decoder)组成的基于 Transformer 的可训练神经网络,其中每个编(解)码层由多层堆叠的编(解)码器组成。BERT模型处理命名实体识别任务的主要原理为:将处理后的自然语句转换为向量矩阵X作为模型输入,经由双向Transformer提取词向量特征后输出实数向量矩阵,由Softmax层映射为逐字对应的概率矩阵Z,最终输出逐字最高概率标注符号。本文使用的Tramsformer结构分别有6层编码器和6层解码器,本质上为一个总计 12 层的Encoder-Decoder结构。BERT模型结构示意见图3。

图3 BERT模型结构示意Fig.3 Transformer structure schematic diagram

如图3右侧框图所示,每个编码器分别包含多头注意力层(Multi-Head Attention)和前馈神经网络层(Feed Forward Network)两部分,多头注意力包含多个自注意力层,前馈神经网络层则用于传递注意力层的结果;多头注意力层和前馈神经网络层分别包含一个下接的全连接层(Residual Connection and Layer Normalization,Add&Norm),每一个编码器的结构都相同,区别为使用不同的权重参数;解码器为在编码器结构的基础上,增加了一层多头注意力层(encoder-decoder attention),用于关注当前预测字符和编码层输出的特征向量之间的关系。

3.2.2 输入层 BERT模型基于字符输入,BERT自带词典Vocabe.txt能够将每个字转换成字典索引输入。BERT的输入层由词嵌入(Token embedding)、句子嵌入(segment embedding)、位置嵌入(position embedding)三部分叠加而成,用于将每个字嵌入到大小为512的向量中。

词嵌入在每句话的开头都插入一个字符[CLS],用于判断两句话之间是否存在上下文关系,在每句话的最后插入字符[SEP],用于区分两句话,同时词嵌入将每一个字符转换为字向量;句子嵌入为利用给相同句子的每一个词赋予相同的句子向量,来区分序列中的不同句子;位置嵌入则将序列中字符的位置信息转换为位置向量,用于区分不同位置的字符。以“降水量”示意,输入层结构见图4(向量框为简化示意,不代表真实大小)。最终输入层为序列中每个字符向量xi组成的矩阵X。

图4 模型输入层结构Fig.4 Model input layer structure

3.2.3 水文模型命名实体预测 本文命名实体识别任务中BERT模型输入包含五种命名实体,共有21种标注符号。解码器输出的字符向量经由全连接层映射到与标注符号种类数量一致的logits向量上,使Logits向量的每一个数字对应一种标注符号的分数,由Softmax层计算后将分数转换为该种标注符号的概率,输出逐字对应的标注符号的概率矩阵Z。转换后输出为每个字对应最高概率的标注符号。

本文基于BERT-Base-Chinese模型微调,根据预训练模型的参数初始化,调整最优超参数设置后使用标注好的训练集训练模型。微调训练后的模型可预测“监测站点”“模型名称”“水文要素”“计算时段类型”“评价指标”5个实体并评价性能。模型的预测结果包括逐字标注符号及其概率,具体见图5。

图5 BERT模型预测结果Fig.5 BERT prediction results

垂直领域命名实体往往表现为具有较为复杂的内部结构,单一的BERT模型识别具有局限性,模型应用于完整实体识别时性能有限,因此需要引入模式识别。

3.3 模式识别为进一步提高实体抽取性能,在BERT模型抽取的基础上设计模式识别,模式识别主要用到正则表达式,又称规则表达式。在实体识别任务中,可制定规则匹配需要的文本。本文模式识别方法主要用于:①中英文夹杂的水文模型名称在BERT模型识别任务中性能指标结果较,需要模式识别中的正则表达式和字典匹配混合识别,使用规则对实体进行匹配和筛选,在保证对现有模型识别精确度的同时,能够有效识别新发布的模型;②单一模型或工具预测的实体抽取方法存在大量多抽或误抽实体,需要通过正则方法进行辅助识别,如依据不同评价指标的数学特性,限定“数值”实体的阈值,以正确抽取某评价指标对应的数值结果。

模式识别的一种变体是字典匹配,本文主要用于消除同词异构。针对“流域”“监测站点”“模型名称”“评价指标”“水文要素”“计算时段类型”六个专有名词实体分别构建了字典。构建字典采用的方法为基于远程监督的短语挖掘和人工补充校验结合的方法,使用少量的领域标注实体,从大量的非结构文本语料中提取高质量垂直领域短语,在自动词挖掘生成初始字典后,人工剔除误抽词并划分同义词。

3.4 LAC工具LAC工具是百度研发的一款基于深度学习的联合词法分析模型,主要功能有中文分词、词性标注和专名识别等。LAC工具可将“计算时段”和“数值”两类实体属性分别作为时间和数量词进行词性标注,具有较高的准确性。

3.5 评价方法本文采用主流的三种评价指标对结果进行评价,分别为Precision(精确率)、Recall(召回率)、F1-score(F1值),精确率体现了识别出来的实体为正确的比例;召回率体现了正确识别出来的实体占测试集中总实体个数的比例;F1值为综合考虑精确率和召回率的综合指标。计算公式如下:

(1)

(2)

(3)

4 实验及结果分析

4.1 BERT模型参数设置BERT模型超参数的选择是优化模型性能的关键因素之一。选择超参数需要充分考虑模型的性能、训练效率、内存消耗等多个因素。本文主要对训练集迭代次数epoch、使用样本数量batch size以及输入最大序列长度max sequence length等参数进行了优选。

(1)Epoch。在选择epoch数时需要在过拟合和欠拟合之间取得平衡。控制其他参数不变,对不同epoch下模型在训练集上的表现进行评估,可以发现,在epoch小于3时模型性能迅速提升,在3~9间提升缓慢,在epoch大于9后便趋于稳定不再有显著提升。

(2)Batch size。在基于最佳epoch的基础上,控制其他参数为定值,改变batch size的大小,对模型的训练效果进行评估。由于本次实验的训练集规模相对较小,为了避免过拟合并提高模型的收敛速度,选择了相对较小的8、16、32、64四组方案作为对照,发现batch size为32时模型的性能较好,且训练所需时间较为合理。

(3)Max sequence length。选择max sequence length为64、128、256、384四组参数来进行对比,足以覆盖大多数命名实体的长度,同时也可以避免出现过拟合等情况。实验结果表明 max sequence length为128时整体性能最优。

本实验的主要硬件配置与软件环境为:GPU采用NVIDIA GeForce RTX 3070 Ti;CPU为Intel Core i7-12700K Processor(25M Cache,up to 5.0 GHz,8 cores,16 threads);操作系统为Microsoft Windows 11(22000.1455)。试验Anaconda环境配置为:python=3.8.0;transformers=3.0.2;pytorch=1.6.0;预训练模型为pytorch框架下的BERT-Base-Chinese,综上所述,本文最优超参数设置如下表2。

表2 超参数设置

在该实验环境下,BERT命名实体识别模型的平均训练时间为110 min/epoch;训练完成后对所有测试集的推理时间约为13.75 s,对单条数据的推理时间约为0.016 s。

4.2 模式识别设计模式识别可以根据预设的模式来匹配和识别文本中的实体。本文使用模式规则的模式识别的方法来辅助BERT模型的实体识别。模式规则使用re.findall正则表达模块设计,针对不同实体的命名特点设计规则。规则设计示例见表3。

表3 规则设置示例

4.3 LAC工具设置与调用使用LAC工具对指定句子进行“数值”和“计算时段”的抽取,抽取出“评价指标”对应的数值和“计算时段”对应的具体时间段。使用LAC工具进行命名实体识别时需要设置相应的参数。LAC主要参数设置见表4。其中user_dict为自定义词典,默认为None,mode为工具使用模式,在命名实体识别任务下设置为ner。可以在python中直接调用LAC库,并创建LAC实例如:LAC=lac.LAC(mode=ner),LAC.ner(text)。直接对文本内容进行命名实体识别。

表4 LAC工具主要参数设置

4.4 BERT训练与测试结果分析使用训练集train.tsv对BERT-Base-Chinese训练,使用测试集test.tsv测试模型的性能,评估模型的泛化能力。对训练集与测试集的评估结果见表5。

表5 BERT-Base-Chinese模型抽取性能

从表5中可以看出:

①模型在“计算时段类型”的识别任务中表现最好,而在“模型名称”的识别任务中表现最。这可能是因为“计算时段类型”通常具有固定的格式和数据特征,这意味着模型可以更容易地从数据中学习其特征和模式,从而更准确地对其进行识别;而“模型名称”这个类别在数据集中出现的频率较低,加上其存在一定的内部异性,如在形式和语义上的歧义等,可能导致了模型对其识别的准确性不高。

②模型在训练集上的表现整体要略优于测试集,这是由于模型已经在训练集上进行了优化。“水文要素”“计算时段类型”“评价指标”三类实体在测试集上的性能与训练集上的性能相的并不大,表明对于这三个实体,模型可以很好地将训练集中学到的知识泛化到未见过的测试集数据上;“监测站点”和“模型名称”在训练集和验证集上的性能异较大,在“模型名称”的识别上的性能异甚至达到10左右,这是由于实体内部结构特征很难由单一的BERT模型描述,需要引入模式规则的模式识别增强识别性能。

③从整体来看,模型的各项性能指标平均约为94左右,这表明BERT模型在水文模型领域的命名实体识别任务中准确度较高,且泛化性较好,但在一些实体类别上的识别性能仍需要进一步提高。可以通过增加训练输入的数据量以提高模型的鲁棒性和泛化能力;或者对数据集进行进一步的清理和优化,以提高数据的质量;调整模型结构和参数,例如使用更深的神经网络结构、调整学习率等方法进一步探索BERT模型在水利领域命名实体识别的应用潜力。

4.5 基于多策略的水文模型命名实体识别结果各实体识别性能及识别方法见表6,F1值均超过90,整体识别性能较优,且针对不同实体类别采取不同的命名实体识别方法较单BERT模型识别方法能有效提高识别性能。

表6 实体抽取性能

①多策略结合的方法进行预测的性能相比只使用BERT模型的性能整体更高,尤其是在“水文模型”和“监测站点”的抽取上。多策略结合的方法可以弥补BERT模型在实体抽取中的不足。由于“水文模型”和“监测站点”等实体本身具有一定的语义复杂性,且数据量较少,因此在BERT模型上的识别效果不佳,模式识别和词典匹配的方法可以弥补其识别效果上的不足,从而显著提高实体抽取的性能。

②在属性实体方面,工具预测的方法很好的契合了其在自然语言处理中的特殊性,LAC工具利用其规律性和固定特征,快速准确地识别“数值”和“计算时段”实体,评价指标均高于90,高效率、高精度地完成了实体抽取任务,避免了耗费大量的计算资源与时间。

具体而言,模式识别和工具预测等策略可以充分利用先验知识,提高实体抽取的准确性和鲁棒性,特别是在实体语义即特征复杂的情况下,能够有效提高模型的抽取性能。此外,多策略结合的方法还可以在数据量较小的情况下提高实体抽取的性能,从而减轻数据量不足的问题,并通过对抽取结果进行后处理和纠错,进一步提高抽取性能。这种方法可以为其他实体抽取任务提供启示和借鉴,根据具体的应用场景和需求,可以针对性地选取不同的策略相结合,进一步提高实体抽取的性能和鲁棒性,使得实体抽取模型具有更广泛的应用前景。

4.6 基于刊文献的水文模型实体识别示例以随机8篇水文模型相关文献抽取结果为例,限于篇幅,仅展示从文中抽取的部分实体,“计算时段”实体作为“计算时段类型”实体的属性展示,“数值”实体作为“评价指标”实体的属性展示。实例以表格形式展示,见下表7。

表7 实体抽取实例

5 结论与展望

本文在探索水利垂直领域命名实体识别的过程中,构建了一种基于多策略的实体抽取方法,该方法充分考虑不同实体的结构特征,采用BERT-Base-Chinese模型、模式匹配、LAC工具等方法,分别对不同命名实体进行识别,有效地降低了模型训练的难度,保证了实体识别的性能,该方法对8种水文模型领域命名实体识别的F1值均达到90以上,并且能够有效地更新字典中的实体,减少人工成本。同时本文构建了水文模型领域命名实体数据集,数据集中各实体在句子中满足均匀分布,各实体的语料一致性较高,该数据集可为BERT模型在水文模型垂直领域提供强化训练数据。

本文针对水文模型领域的命名实体识别仍有一定不足,未来可以从以下几方面继续开展研究探索:①进一步拓展命名实体的样本种类和数量。针对水文模型领域的其他知识特征继续扩充实体类型,如水文模型的尺度特征实体、参数优化算法实体等,更加完整地提取水文模型领域知识体系,未来的研究应该注重扩大数据集的规模和多样性,包括增加样本数量、增加实体类别的覆盖范围、增加实体在不同上下文中的出现次数等;②进一步研究提升样本标注质量和效率的方法。刊数据处理质量不一,数据清洗后的数据仍存在包含缺失值、特殊符号等问题,这会影响模型的训练效果,同时数据标注的质量对命名实体识别的准确性和效率也具有重要影响,不同标注人员之间的标注质量存在异,未来的研究应该采用更完善的数据清洗和预处理技术,注重标注质量的监控和控制,建立高质量的标注团队,制定标准化的标注规范和流程,并引入自动化标注和校验方法,以提高标注质量和效率;③进一步提高识别方法迁移能力。本研究针对水文模型领域的命名实体进行了探究和优化,多策略方法使用了较多基于规则和特征的方法对实体进行识别和筛选,对于一些新出现的实体类型或数据特征,需要手动进行规则和特征的设计和修改,不够灵活和自适应,在未来的研究中,需要进一步探索更加通用和灵活的命名实体识别方法,探索跨领域、跨语言、跨媒体的命名实体识别技术,扩大识别方法在整个水利行业的迁移能力;④进行多模型识别性能的横向对比,在未来的研究中仍需要寻求在水利领域性能表现更佳的模型结构,并采用多元的模型学习方式如迁移学习、小样本学习等以提高水利命名实体识别的准确性与泛化能力。当前我国仍需大力加强水利信息化建设[17],通过对水利垂直领域——水文模型领域命名实体识别方法的探究,有助于为水利行业其他垂直领域提供示范,打破数据孤岛,助力水利行业信息化、智慧化。

猜你喜欢
模式识别命名水文
2022年《中国水文年报》发布
命名——助力有机化学的学习
水文
水文水资源管理
有一种男人以“暖”命名
为一条河命名——在白河源
水文
浅谈模式识别在图像识别中的应用
第四届亚洲模式识别会议
第3届亚洲模式识别会议