基于Bi-LSTM 的古籍事件句触发词分类方法研究

2021-10-17 13:21马晓雯刘建斌李章超
农业图书情报学刊 2021年9期
关键词:典籍分类器类别

马晓雯,何 琳,刘建斌,李章超,高 丹

(南京农业大学信息管理学院,南京 210095)

1 引言

随着典籍数字化技术的发展和处理工具的成熟,可利用的典籍数字化资源的飞速增长,人文历史学科对于典籍研究的传统手段也迎来了创新和变革[1],不再是仅仅是从外部特征和主题内容的角度对典籍文本进行阐释,而是转变为从细粒度知识的层面实现对典籍文本的深度挖掘。在新兴的数字人文领域,研究者结合人文计算的方法与计算机技术开展了对于典籍内容的细粒度分析和深层次挖掘。其中,触发词的识别与分类是一项重要的研究课题。触发词指的是能够揭示事件本质的特征词,通过对这类特征词的自动识别可以迅速的发现并抽取出典籍中有关事件描述的文本,在此基础上通过确定事件触发词的类别归属,就能够实现事件句文本的类别划分,最终达到对典籍文本内容的深度挖掘和全面展示。因此,触发动词的识别与分类方法研究,是典籍文本挖掘领域的一项基础性工作,能够帮助研究者从更全面的角度获取和掌握典籍内容,从而推动典籍数字化资源有效利用和价值实现。

在对当前关于古籍研究的文献进行整理之后发现,针对于古籍信息处理的研究已经取得了许多成果,在词汇层面上主要是关于古文分词、词性标注及命名实体识别的研究,而在句子层面上主要是关于自动断句及标点、句子对齐、句法分析及语义标注等的研究[2]。然而,对于中文文本触发词的识别和分类研究,大多是针对开放领域现代文本[3]或者特殊领域文本开展的,例如生物医学领域的触发词典的构建[4-6],灾难事件[7]、突发事件[8-10]、金融事件[11-14]触发词的识别与事件抽取。目前对于典籍文本触发词的识别和分类还面临诸多困难。首先,由于古籍与现代文本相较而言,在行文方式、句式结构、语法规则等方面都存在许多差异和特殊之处,因此许多适用于现代文本处理的规则难以迁移到典籍文本的研究中,现有的一些通用领域触发词典也不适用于典籍文本,在古籍触发词基础性资源设施的构建上较为欠缺;其次,古籍的文本句子长度较短,事件触发词也大多是单字词,因此在模型训练和特征提取时,无论是特征的维度还是语义的丰富性都无法与多字词或长句相较,给典籍触发词的识别带来了一定的困难;最后,古籍文本中许多词汇都存在着通假和一词多义的现象,词类活用的情况非常的复杂多样,导致在进行触发词识别的同时,还要进行不同语境下词义的区分、词类活用现象的判断等,这些问题都对于典籍触发词识别分类的研究带来了不小的挑战。

现代文本触发动词的分类所取得的成果对于开展典籍触发动词的识别研究带来了许多的启示。目前中文触发词的识别和事件抽取的方法归纳起来主要可以分为两类,分别是基于模式匹配的方法和基于机器学习的方法[15]。基于模式匹配的方法根据人工参与程度的不同可以分为有监督和弱监督两种模式[16],在触发词识别的过程中,一方面通过事先定义一定的识别规则,例如根据词性、句法等先筛选掉一部分无关词语,缩小识别的范围;另一方面,研究者根据自身的经验,对大量的语料进行统计并列举出文本中的事件触发词[17],构成一个触发词典,之后通过寻找同义词的方式不断补充,尽可能的扩展词典使其能够尽量涵盖所有的触发词;在进行事件抽取时,就可以根据构建的词典和规则通过匹配的方法抽取出事件句并进行分类。基于机器学习的方式将触发词的识别任务看作是一种分类问题[18],一方面结合人工制定的特征和自然语言处理工具抽取的文本多维特征[19],输入到机器学习模型中训练分类器来实现触发词识别和事件抽取任务;另一方面,通过建立知识库或人工标注的方式[20],将足够规模的标注语料输入到模型当中进行训练,以此实现对未标注数据的分类和识别。基于传统机器学习的方法依赖于人工特征的设计,而如果设计的特征过于复杂还会降低模型的泛化能力;为了更加充分的挖掘文本的深层语义信息,减少对于人工特征的依赖,研究者们在浅层机器学习的基础上探索深度学习的方法进行触发词的识别和事件抽取。通过输入具有丰富语义特征的词向量,并自动学习抽象特征,构建神经网络模型,减少了对于外部的自然语言处理工具的依赖。例如CHEN[29]通过动态的多池化卷积神经网络进行事件抽取;NGUYEN[30]采用Bi-LSTM 结合句子的结构特征和文本的语义特征,抽取事件元素及事件的触发词。在利用深度学习算法进行触发词识别的研究中,面向中文和英文文本的主要差异表现为文本的分词。英文的词语之间存在着天然的分割符,并且存在一些指向鲜明的特殊词缀和词性,在触发词的识别过程中有许多规则可循;但中文的词语之间并不存在天然的分隔符,且表达方式灵活,句式结构和词语用法多样,单字词也具有丰富的语义信息,同一事物还具有多种表达形式与缩写情况等。

本文旨在探索典籍事件触发词的识别和自动分类方法,通过建立触发词分类体系和触发词集扩展的基础工作,构建了典籍触发动词的数据集;进而利用数据集结合深度学习算法Bi-LSTM 模型训练了事件分类模型。本文的最终目的是对大规模中华典籍事件触发动词的自动分类提供一些借鉴,是为了进一步推动典籍文本事件抽取和知识图谱的构建研究而做的一项基础性工作。

2 事件文本数据集构建

事件文本数据集的构建工作是实现事件文本自动分类的基础,通过构建典籍触发动词的分类体系,进而构建了触发词语义数据集,并据此对典籍的部分事件句文本语料集做了人工的标注与处理。

2.1 触发词分类体系的构建

构建触发词分类体系是为了建立起典籍事件主题的类目体系,作为后续事件分类的依据和基础。这一过程分为3 个阶段,分别是:文本预处理、动词抽取和主题聚类。

在文本预处理阶段,首先将典籍文本中的引用类和对话类文本做了筛除,然后通过对典籍文本做了分词、词性标注和去停用词的预处理。在动词抽取阶段,根据词性标注的结果,编写正则表达式从文本中抽取出了所有动词构成候选触发词集合。在主题聚类阶段,运用LDA 模型,对抽取出的动词集合进行了主题聚类,并通过对聚类结果的对比和内容定性分析,确定了主题数量并为每个主题赋予了主题词[21]。经过3 个阶段的处理,就将典籍文本所涵盖的事件主题类别抽象了出来,形成了一个分类体系,成为事件抽取和分类的参照。

2.2 触发词语义数据集的构建

触发词语义数据集的构建过程,本质上是对触发词分类体系进行内容丰富与填充的过程,目的是为了从细粒度的字词知识单元层面,建立一种典籍内容挖掘的文本基础设施。这一过程主要分为两个阶段,分别是:种子词集构建阶段和词集扩展阶段。

种子词集构建是在对动词主题聚类的结果进行内容分析的基础上完成的,对每一个主题下的特征词归纳整理之后填入到相对应的分类体系中,就构成了触发动词的种子词集。在词集扩展阶段,主要通过基于词典资源和基于机器学习两种方式完成。一方面,根据种子词的语义特征,在典籍词典资源中进行词义匹配,寻找种子词的同义词,并发现典籍文本中的通假字情况,添加到词集中去。另一方面,提取触发词的词性特征、上下文特征、词共现等特征之后,利用机器学习算法计算文本间相似度[22],寻找种子词的近义词填入到词集中。但是,两种方式扩展的词集中存在一些误差,再结合专门的典籍词典进行校验与补充,最终构成了触发词的语义数据集。

2.3 典籍文本语料集的标注

典籍文本语料集的标注工作,是参照事先构建的事件触发词分类体系中的主题类别,借助触发词语义数据集对典籍文本进行人工分类标注的过程。以逗号为单位,对典籍文本进行短句划分之后,为每个句子赋予恰当的类别标签。虽然在之前的预处理过程中,已经对对话和引用类的文本进行了去除,但是还存在一部分没有实际含义或事件句特征的句子,因此在人工标注时,除了分类体系中的类别之外,还应增加一个无关类别标签。

标注的过程需要3 名标注人员的参与,其中两名作为主要的交叉标注者,另一名人员对存在争议的标注结果进行判定和仲裁,以此来保证标注语料集的正确率和可信度。3 名参与标注的人员均为情报学硕士,并具有古籍文本标注的经验和古籍信息挖掘的研究背景。

3 基于Bi-LSTM 的事件句分类模型构建

事件句分类模型的构建主要分为3 个阶段,第一个阶段是对典籍样本数据集进行合理的分割和预处理工作,将整体语料分割了为训练集、测试集和验证集3个部分,之后进行分词和去停用词的处理。第二个阶段是语料特征的提取和数据的编码阶段,是实现数据转化的过程。通过深度学习算法中的编码层对训练语料中的标签数据和文本数据进行了差异化的编码,并通过Embedding 层实现数据集的向量化表示。第三个阶段是模型构建和分类器的训练阶段,通过添加模型构建神经网络结构,并调整训练参数得到多元分类器。整个分类模型的构建过程如图1 所示。

图1 基于Bi-LSTM 的事件句分类模型构建流程图Fig.1 Flow chart of building an event sentence classification model based on Bi-LSTM

3.1 数据集分割

本文将整体的数据集按照2:1:1 的比例分割为训练集、测试集和验证集3 个部分。训练集(Train Set)用于模型的拟合,为了保证模型最终的效果,训练样本要尽量丰富,因此将数据集中的一半的数据作为训练集。验证集(Development Set)是模型训练过程中单独留出的样本集,用于调整模型的超参数和对模型的能力进行初步评估。在神经网络中,验证数据集经常会用于确定最优的网络深度或选择隐藏层神经元的数量[23]。测试集(Test Set)用于评估最终模型的泛化能力,作为衡量模型效果的依据。因此,本文将剩余的一半数据集按照1:1 的比例分为验证集和测试集。

3.2 数据编码

通过深度学习算法中的编码层对数据进行编码。由于文本的数据集语料由标签与句子两列构成,而句子在进行分词之后由多个词组成,因此可以将每个句子都看做是一个词组。本文对于标签和词组进行了分别的编码,将其转换为了词向量,为每个单词提供了唯一的多维向量表示,以便于神经网络的计算。

(1)标签文本编码。对于标签数据采取独热编码(Onehot Encode)[24]。这一编码方式主要用于分类问题上,能够对类别的特征进行归一化处理。标签数据是不同的句子所属的事件类别标签,由于各个类别之间没有排序先后也没有逻辑关系,因此标签属性是一种定性特征。Onehot 编码可以将类别变量的这种定性特征,转换为机器学习算法易于利用的定量特征。Onehot编码的编码方式如表1 所示。

表1 onehot 编码状态Table 1 Onehot encoding status

(2)句子文本编码。计算机进行处理时无法理解文字的含义,因此把单个字或者词组转化为一个正整数使其成为一个序列。对于转化为词组的句子文本数据采用开源工具Tensorflow 所提供的Tokenizer 对其进行编码。Tokenizer 将文本拆分之后生成相应的id,并生成字符id 与位置信息的映射,在对其进行输出时还会在每一句的首尾加上[CLS]和[SEP]标记,这样就将每一句文本转化为了一条序列,序列的特征由单字词向量和它的位置特征组成。目前一些主流的词嵌入工具如word2vec、GloVe 等在各类自然语言处理任务已经有了广泛的应用,相较于传统的编码方式也取得了较好的效果。在对古籍文本进行人工标注的过程中发现,同一事件类型的句式结构特征及触发词的上下文位置特征有较强的相似性,因此采用了Tokenizer 对句子文本数据进行编码以获得词组的位置特征。

由于句子的长度不同,生成的序列长度也参差不齐,还需要根据计算得到最长的句子长度,对其他的短句在左侧补0 对齐,以此来统一序列长度,构成一个序列矩阵。图2 是对句子文本进行编码的原理图。

图2 句子文本编码原理Fig.2 Principles of sentence text encoding

3.3 模型构建及原理

(1)LSTM。LSTM(Long Short Term)网络是一种特殊的RNN,可以学习长期依赖信息。LSTM 主要包括记忆单元、输入门、遗忘门以及输出门,通过乘法门控制技术,实现选择性地让信息通过[25]。

输入门(Input Gate)的作用是判断是否将输入的内容写入到内存中,相当于一个可以被训练的参数。输出门(Read Gate)的作用是判断是否读取当前的存储,控制单元状态输入到当前时刻输出值的信息量。遗忘门和输入门共同控制记忆单元的输入信息,决定之前时刻单元状态和当前时刻网络输入的保留比例。文档中每个词汇语义的正确理解不但依赖于之前的元素,而且还与之后的元素密切相关[26]。LSTM 是单向神经网络,只能从前往后传输状态信息,而不能获取后文对当前词汇的影响,因此,本文采用2 个方向相反的双向LSTM 来充分捕捉上下文信息,最大限度理解当前词汇的语义信息[27]。图3 是LSTM 的算法原理示意图。

图3 LSTM 算法原理Fig.3 Principle of LSTM algorithm

(2)Bi-LSTM。Bi-LSTM 是由前向后和由后向前分别训练一个LSTM,然后将两个LSTM 的结果拼接作为模型的输出,能够同时保留 “过去”和 “未来”的文本信息,有效避免了LSTM 模型在提取文本特征的过程中,只保留 “过去”信息的弊端。Bi-LSTM 在设计上避免了长期依赖,在对文本进行特征提取时,充分考虑到了文本前后文信息之间的相互影响。通过Bi-LSTM 可以对句子进行从前到后以及从后到前的完整的上下文信息保存[28]。图4 是Bi-LSTM 的算法原理图示例。

图4 Bi-LSTM 算法原理Fig.4 Principle of Bi-LSTM algorithm

3.4 评价指标

本文采用类别测评中所常用的准确率(Precision)、召回率(Recall)及F1 值作为评价指标,对模型的最终性能进行评价。

4 实验结果及分析

4.1 实验数据

本文选取的典籍数据是春秋时期的编年体著作《左传》 文本,对 《左传》 构建了一个具有10 个类别的触发动词分类体系。《左传》 是一部编年体史书,由于春秋时期的历史背景,在不同时期书中所描述和记载的多种类别事件的数量差别较大,10 个类别所包含的事件句的数量及涵盖的范围均具有较大差异。因此本研究从中选取了原文中描述篇幅较多且能够揭示春秋时期较为完整的历史风貌的4 类事件作为研究对象,将军事行动、人口流动、政治外交、结盟议和4个类别的事件句作为实验数据,并分别为其赋予 “军事、迁移、政治、结盟”4 个类别标签。数据集中共有4 346 条数据,其中训练集2 282 条,测试集1 033 条,验证集1 031 条。数据集文本均采用UTF-8 编码格式存储。

4.2 实验环境

实验环境是一台Window 10 家庭中文版操作系统,第七代智能英特尔CORE i5-7200U CPU、2.4 GHz、12G 内存组件的笔记本电脑。使用编程语言为Python。

4.3 模型参数

实验参数的合理设置对实验结果有直接影响,训练开始之前对模型的各项指标进行了初始设置,具体的数值如表2 所示。参数调整过程中使用固定其他参数的方法,对丢弃率这一参数进行调整设置了对比实验。当准确率不再上升时则停止训练,以此来避免过拟合、不收敛等问题,同时也可以加快模型训练和特征学习的速度,提高调参效率。

表2 分类实验参数设置Table 2 Classification experiment parameter settings

4.4 实验结果

在进行分类实验之前,首先对将要用于训练的数据集进行了统计分析,之后通过改变dropout 参数进行了3 次对比实验,并通过对验证集的测试选定了效果最显著的参数设置。对最终训练出的分类器运用测试集进行了性能评估。

4.4.1 语料分布

在进行分类实验之前,先对语料的分布和长度做了自动统计并将分布情况可视化。由图5 可以看出,训练集包含的4 类数据占比为4:2:1:1。这是因为 《左传》 原文中关于军事行动的事件描述较多,其次是迁移事件带来的人口流动,结盟活动和政治外交活动也是春秋时期社会生活中比较重要和频繁的事件,但相较于其他两类描述较少。具体来说,共包含军事类1 139条,迁移类577 条,政治类287 条,结盟类279 条。

图5 训练集数据分布情况Fig.5 Data distribution of the training set

4.4.2 对比实验

在训练分类器时,对于训练集中的数据以每128条数据为一组,每次迭代共进行18 组训练。迭代次数为20 次,同时设置了监测指标min_delta,当两次迭代后效果的提升小于0.000 1 时,停止迭代。将批尺寸(batch_size)即每一批参与训练的数据量设定为128,是在进行了探索性实验的基础得出的最佳参数值,而迭代次数则通过设置监测指标根据每次训练过程中精度的变化情况灵活调整,最多迭代到20 次,因此本研究不对其这些参数单独设置对比实验进行探究。

为了避免过拟合,采用L2 正则化方法约束网络参数,初始的丢弃率(dropout)设为0.5,即每个神经元有50%的可能性被丢弃。同时设置了对比实验,将dropout调低至0.3 和调高至0.9 时分别进行试验,并通过验证集的验证对比分类器的性能。验证结果如表3 所示。

表3 对比实验验证结果Table 3 Comparison of experimental verification results

表中的0、1、2、3 四个类别分别表示军事、迁移、政治、结盟4 个标签。由表中的数据可以看出,在dropout 调低至0.3 时,分类效果略有降低,表现在迁移类的结果中F1 值降低了0.01。当把dropout 调高至0.8 时,分类器的性能有明显的提升,总体的准确率(Accuracy)由先前的0.92 提升到了0.93,并且在军事、政治、结盟4 类数据的分类上,F1 的值有所提高。将dropout 继续提高至0.9 时分类器的效果有明显下降,总体的准确率也由0.93 降到了0.88。因此最终选定第三组的参数设置训练分类器用于测试。

4.4.3 测试结果

测试集共包含1 033 条数据,其中军事类500 条,迁移类251 条,政治类142 条,结盟类140 条。通过5.5.1中训练出的分类器对其进行测试,计算混淆矩阵并将其可视化之后得到如图6 所示的结果。具体的准确率、召回率和F1 的值如表4 所示。

表4 分类器测试结果Table 4 Classifier test results

图6 测试结果混淆矩阵Fig.6 Confusion matrix of test results

由结果可以看出,军事类、迁移类、结盟类、政治类数据中分别有490 条、230 条、135 条和123 条分类结果正确,4 类事件的分类结果F1 值也均在0.90 以上,总体来说分类效果很好。

对于误分类的数据而言,由可视化的混淆矩阵可以看出,误分类数据大多集中于军事类和迁移类事件的交叉部分,这与本文在触发词分类体系构建的分析中得出的结论一致。由于战争等军事行动的发生,往往会导致一些逃亡或者人口迁移的事件发生,因此有的事件句兼有两类事件的表达,在语义的相似程度上较高,进而导致结果的误差。例如表5 中列出的,一些包含 “入、归”等动词的事件句在搭配不同主语出现在不同的语境中时,代表着造成事件类别,如 “故卫师入郕”一句中的入表示卫国的军队攻入了郕城,表示军事战争类事件,而非迁入或进入郕城地界的意思,分类器将其误分为了迁移类事件。在军事类事件句中有一些表征战争原因或结果的句子也会出现误分类现象,如 “以讨其不与盟于齐也”一句表示战争发生的原因是不与齐国结盟,而非真正的结盟类事件。此外,在战争或军事行动过程中涉及到一些借兵、借道等事件的发生,与政治类事件存在一定的交叉导致误分类现象。

表5 误分类事件句示例Table 5 Examples of misclassified incident sentences

5 总结与展望

本文在触发词分类体系和语义数据集构建的基础上,运用深度学习算法模型Bi-LSTM,进行了典籍触发词及事件句文本的多元自动分类探索。在分类模型的构建过程中,首先进行了数据集的合理分割,然后采取不同的编码方式对类别标签数据和句子文本数据进行了差异化的分别编码,随后将其输入到模型中构建神经网络结构,训练生成分类器,并选取通用的评价标准对分类器的性能进行了评估。在后续实验过程中,选择了 《左传》 文本中的4 类事件句文本作为实验数据,先对语料的分布情况做了直观的分析,其次通过参数的调整设置了对比实验,并通过不同情况下在验证集上的表现选定了效果最显著的分类器,通过测试集数据的检验评价分类器的性能,最终的精确度达到了0.95,证明本文所提出的基于触发词进行事件文本自动分类的方法和构建的分类模型是行之有效的。在后续的研究中,对于其他深度学习的分类算法模型在典籍事件文本分类中的效果还有待进一步的探索,例如在Bi-LSTM 的基础上加入Attention 机制后的表现,通过对比不同分类模型和处理方式在典籍事件触发词多元分类任务中的表现,确定最适用于典籍事件分类的一种。此外,对于增加样本类别数量之后的情况有待进一步的研究,探索针对更加多元的事件类别分析的方法,以进一步丰富本研究的成果。

猜你喜欢
典籍分类器类别
晚清来华德国人的中医典籍译介及其学术影响
学贯中西(6):阐述ML分类器的工作流程
论陶瓷刻划花艺术类别与特征
《典籍里的中国》为什么火?
基于朴素Bayes组合的简易集成分类器①
一起去图书馆吧
“瓟斝”与“点犀”新解*——兼论中国典籍中名物词的英译
基于差异性测度的遥感自适应分类器选择
典籍翻译模式的构建与启发
浅谈多分类器动态集成技术