基于深度学习LSTM的古代汉语切分标注算法及语料库研究(下)

本文涉及的产品
NLP 自学习平台,3个模型定制额度 1个月
NLP自然语言处理_高级版,每接口累计50万次
NLP自然语言处理_基础版,每接口每天50万次
简介: 基于深度学习LSTM的古代汉语切分标注算法及语料库研究(下)

4.12 本章小结


我们在本部分提出了一个针对古籍断代的有效并可以投入实际使用模型,本模型可用于辅助古籍工作人员的进行断代工作。本部分使用了 Bi-LSTM 网络实现了古籍断代的任务。本部分通过实验展示了不同情况下模型的预测结果对断代任务有一定的参考价值,证明了 Bi-LSTM 在文献量较少的古汉语领域也能训练出正确率不错的断代模型。


古代汉语断句模型


古代书籍浩如烟海,因此提出一种自动断句的模型十分必要。本部分利用机器学习方法,设计一种针对古汉语文本的断句模型,通过实验对参数进行调优,获得最佳模型来辅助古汉语工作者完成大量的古籍的句读工作。


4.13 数据来源及预处理


本部分可使用的数据来源较为开放灵活,为针对后面部分所使用的上古语料,本部分也从互联网的开放数据集上下载带有标点的上古汉语文本。文本包括《尚書》、《詩經》、《周易》、《儀禮》、《周禮》、《禮記》、《春秋公羊傳》、《左傳》、《國語》、《論語》、《孟子》、《莊子》、《呂氏春秋》、《老子》、《孝經》、《史記》、《春秋繁露》等在内的 30 余本著作,共计 300 万字。


本部分的重点是对无标点的古代汉语文本进行断句。因此在所有的数据集的基础上,我们对文本进行以下预处理:编写 Python 脚本将文本中的所有标点均使用“/”符号代替,对文字打上断句标签。预处理过程如示意图 4-1 所示:


a70e8d2207b0272867b7631700741b3e.png




图 4-1 文本预处理过程示意图

表 4-1 是对文本进行预处理过程的一个实例展示:

表 4-1 利用原文标点对文本进行标签化预处理实例


image.png


4.14 模型构建


本部分使用的主要结构是 Bi-LSTM 神经网络,不同于古代文本断代模型接受完整句输入后才输出年代预测结果,断句模型对每个字都有一个输出断句标签概率,我们首先定义一个阈值(D),当模型输出概率大于该阈值时,则模型输出“s”标签,表示在此字之后需要断句;若小于阈值,则输出“n”标签,表示此处无句读。如图 4-2 所示:


2cab9cdc8f948f916f7f02d59164a39f.png


图 4-2 模型处理断句任务流程图

模型对每个字的输出和正确答案比较求出当前输出的代价 C,并利用反向传播算法调整模型当中的各种参数。该模型的核心是嵌入层和 Bi-LSTM 神经网络,其网络结构如图 4-3 所示:


a81273cd3857b29cdf4dcf92ebe4734c.png


图 4-3 断代模型嵌入层和神经网络层结构示意图


4.15 实验及效果展示


4.15.1 实验配置

模型是使用 Python TensorFlow-GPU 搭建,所使用的机器的配置为:


表 4-2 机器的配置表



image.png

4.15.2 网络搭建伪代码


模型的搭建全部使用 Python 中 TensorFlow 框架实现,下面为使用 TensorFlow 框架搭建 Bi-LSTM 神经网络的伪代码。


image.png

image.png

image.png

4.15.3 实验及分析


我们使用上古古籍的文本对模型进行训练,模型的输入是最大长度为 100 的无标点文本,模型输出每个字的断句标记。模型的正确率 R 定义如下,其中


表示模型预测正确的字数,


abc8194a4a63d5446ee31858c4b0884b.png

表示输入文本的总字数。


f6a48275b983a3e8386a48ceb10dc207.png

模型训练过程中有一个非常重要的步骤,就是“阈值(D)”的选择,我们分别对不同阈值做了多组实验,训练过程的正确率及代价曲线图如下图所示:



2eddca272c99e5526ae96dae7810d330.png



图 4-4 训练过程的断句正确率曲线图


2c421c3838e37398bdaaf724ecd6aa63.png



图 4-5 训练过程的断句代价曲线图


图 4-4 展示了阈值分别等于 0.5/0.6/0.7/0.8/0.9 以及 1 的情况下模型训练过程正确率的变化曲线,其中当阈值等于 1 时,模型所有输出标签概率均达不到阈值,则所有标签均标记为“n”即不断句,在这个情况下单字标签的正确率是 0.87 左右,反映了整个训练集中,“n”标签占所有标签的 87%,则 0.87 这条线可以作为衡量模型是否有效的基准线。

e11c74b3ec8d0a8e4259ecb2ebee1108.png


图 4-6 不同阈值模型在训练集和测试集的表现


图中可见在训练集上,模型的标注正确率可以达到 92% 以上,高于 87% 的基准线,说明模型在不同阈值下均能训练得到一套比较有效的模型参数。同时我们发现,当阈值从 0.5 变化到 1 的过程中,模型在测试集上的争取率由低变高,到 D=0.7 处达到最高,之后又随着阈值的增加而减小。因此通过这个实验我们可以得到训练过程的最佳阈值,在我们的训练条件下,最佳阈值为 0.7。


利用 D=0.7 的阈值对模型进行训练完成之后,我们在部分测试集样本进行了实验并分析。下面我们将部分实验结果进行展示如下,其中(-)表示此处应有断句,而模型模型输出有所遗漏。(+)此处不应有断句,而模型输出误将此处进行了断句。


实例一:


正确断句:


從者曰 長子近 且城厚完 襄子曰 民罷力以完之 又斃死以守之 其誰與我 從者曰 邯鄲之倉庫實 襄子曰 浚民之膏澤以實之 又因而殺之 其誰與我


模型输出:


從者曰 長子近(-)且城厚完 襄子曰 民罷力以完之 又斃死以守之 其誰與我(-)從者 (+)曰 邯鄲之倉庫實(-)襄子曰 浚民之膏澤以實之 又因而殺之 其誰與我


误分(+):1 处 遗漏(-):3 处


实例二:


正确断句:


故君子操權一政以立術 立官貴爵以稱之 論勞舉功以任之 則是上下之稱平 上下之稱平 則臣得盡其力 而主得專其柄 天地設 而民生之 當此之時也 民知其母而不知其父 其道親親而愛私


模型输出:


故君子操權一政以立術 立官貴爵 (+)以稱之 論勞舉功以任之 則是上下之稱平(-)上下之稱平 則臣得盡其力(-)而主得專其柄 天地設(-)而民生之 當此之時也 民知其母而不知其父 其道親親而愛私


误分(+):1 处 遗漏(-):3 处


实例三:


正确断句:


駔琮五寸 宗后以為權 大琮十有二寸 射四寸 厚寸 是謂內鎮 宗后守之 駔琮七寸 鼻寸有半寸 天子以為權 兩圭五寸 有邸 以祀地 以旅四望


模型输出:


駔琮五寸 宗后以為權 大琮十有二寸 射四寸 厚寸 是謂內鎮(-)宗后守之 駔琮七寸 鼻寸有半寸 天子以為權 兩圭五寸 有邸(-)以祀地 以旅四望


误分(+):0 处 遗漏(-):2 处


实例四:


正确断句:


君仁莫不仁 君義莫不義 君正莫不正 一正君而國定矣 孟子曰 有不虞之譽 有求全之毀 孟子曰 人之易其言也 無責耳矣


模型输出:


君仁莫不仁 君義莫不義 君正莫不正 一正君而國定矣 孟子曰 有不虞之譽(-)有求全之毀(-)孟子曰 人之易其言也 無責耳矣


误分(+):0 处 遗漏(-):2 处


实例五:


正确断句:


陽也者稹理而堅 陰也者疏理而柔 是故以火養其陰而齊諸其陽 則轂雖敝不藃 轂小而長則柞 大而短則摯 是故六分其輪崇 以其一為之牙圍 參分其牙圍而漆其二


模型输出:


陽也者稹理而堅(-)陰也者 (+)疏理而柔 是故以火養其陰而齊諸其陽 則轂雖敝不藃 轂小而長則柞 大而短則摯 是故六分其輪崇 以其一為之牙圍 參分其牙圍而漆其二


误分(+):1 处 遗漏(-):1 处


共计:303 字 标记正确:289 字 误分(+):3 处 遗漏(-):11 处


由上面的实例表明,模型做出的断句判断整体正确,整体正确率达 95.4%,也有遗漏和误分等情况的发生,错误主要发生的情况是遗漏问题,即某处本应有句读,而模型未在此处断句。模型参数阈值 D=0.7 在当前测试集中略偏大,导致部分断句标签概率输出较小的地方被误分为不断句。由于我们的模型不是静止不变的,我们是在不断添加数据库的过程中不断的调整模型参数,这时我们可以在上面实验基础上,继续微调阈值,类似于在现有模型的基础上进行 fine-tune。


21bce6f2f4530281d277f8a6f8c85805.png


图 4-7 微调阈值后模型在新语料库中的表现


上面实验表明,在测试集上,也可视作在新增加的语料库里,模型的最佳参数(D=0.67)略小于原始模型的阈值(0.70),我们对模型参数略作修改,模型即可适应新增加的语料。同理,在后续继续扩充语料库的过程中,我们可以循环进行训练模型、更新数据库、微调模型参数这三项步骤来同时迭代更新模型和语料库。


4.16 本章小结


本部分通过使用 Bi-LSTM 对文本进行逐字标签化的方式,实现了一个古代汉语断句模型。并进行了一定量的实验选择最佳阈值,实验表明,模型在阈值设置为 0.7 的情况下正确率最高,标记正确率可达 95% 左右,可以分担古汉语工作者部分部分断句的任务。


古代汉语分词、标注系统及数据库建设


计算机在进行中文自然语言处理时一般是以词为最小单位的。中文不同于英文词与词之间有空格分割,中文是以‘字’为基本书写单位,词语之间没有一个形式上分界符。所以中文分词是汉语自然文本处理的基础问题之一。本部分将通过机器学习搭建自动分词及词性标注一体化系统,并做实验分析模型性能。模型输出的带有分词及词性标记的文本则可存储到数据库实现古带汉语的信息化和结构化管理。


4.17 数据来源及预处理


由于当前尚无开放的已完成分词标注的古汉语语料库,因此,本部分使用的数据来是源于网上下载的少量开放数据集,并在后期在实验室的同学们帮助下,参考中央研究院的分词标准对部分语料进行手工标记所得。数据内容包括《尚书》、《礼记》、《论语》等多本上古古籍的部分章节。调查数据包含超过 10,000 条语句,平均每条语句包含 9 个字。由于本部分所使用的语料库较小,无法对模型进行充分的训练,因此本部分的重点为提出一种可同时用于分词及词性标注的模型并证明该模型具有一定的实用性,后序继续可以使用该模型对预料进行大致的分词及词性标注,所产生的带有分词标签及词性标签的语料在经过人工确认后又可继续用来训练模型以提高模型的对上古汉语分词及词性标注任务的拟合度。


4.17.1 标签编码


首先,我们对语料标签进行标签转换,将语料的分词标记和词性标记转成统一的二元标签结构,如(5-1)-(5-3)式所示,

7528e1da8dd7a1d3feba906cb426c968.png


为词性标签列表,其中元素


4cab6e144dd027cd9f6edf9faee17bbe.png


9edb40315e7bfc64f3ca10173a68c357.png

等分别表示不同的词性标记。


752e75cdcb2947b653f4c5dc0624be86.png

为分词标签列表,其中的


4d22ba7c3b428c5fa71c5d9e50efed8a.png

86583009509ce3e36246caad575ed76f.png


等表示不同的分词标记,携带不同的分词信息。而


d211f60f322697e5ec798b492c6bbdc8.png

则表示二元标签组,其中的每一个标签是由


a9d57bddb15765102f6239860f45b16c.png

的转置点乘

17d6813dd36e98e10fce230caf13e58c.png


得到的矩阵,则

0a70d612a27ae3b40939f7d57e46b146.png


中的每一个标签都分别携带了词性标记信息和分词标记信息式。


af45ceec676aab94f34019fb3c7f07f7.png

62389fa3fbab35201040e885915e6558.png


e06217e8eff87fb823390984cb96eb4f.png



预处理过程如图 5-1 所示,首先将词

520fb1914480af2db87e31096646db64.png

拆分成单字


,并且单字


1c819f84efd9d444a4e61ddcc4d45eb3.png

也携带该字隶属词的词性标记信息


b171e340891fdd7f32d55d7e3579d92f.png

,例如将“瀑布/N”转换为‘瀑/N’和‘布/N’,然后使用分词标签为每个字打上分词标记,即将中文分词当成分类任务。最后将词性标签作为第一维标签,分词信息标签作为第二维标签组合成二元标签组的结构。


036e4cb66f0ef9c001884155e81dfea9.png


图 5-1 文本预处理过程示意图


本模型的输出不同于分词或词性标记单任务模型的单标签输出,本模型输出的是经过编码的二元标签组,标签的两个维度分别表示词性标记和分词信息,可以使网络更加充分考虑字、词性和分词之间的内在关联,相较先分词后进行词性标注这样的 “两步走”方法增加了词性和分词之间的内在关联,使一体化模型的精确度更高。


针对一体化模型中的输入、输出层,我们提出两种二元标签结构的编码方式,如图 5-2 和 5-3 所示,若二元标签组包括 m 种词性标记,用

bc005424c61523771201effec524fc4f.png


表示,n 种分词标记,用


75b29776710161441e161d068e0c36d2.png

表示,则编码方式一为:对

c70d494899c262ce3c0c2c985c6da2b1.png


种不同词性标记和分词标记的自由组合结果进行编号,即每一个不同的二元标签有自己固定的从 0 至

9f76a6597654047422ea5073ffa7f9f4.png


的某一编号,然后对其进行 One-hot 编码,即一串


77cb86c75d2d35cb320db9c99e299705.png

位的 0/1 序列,其中除某一位为 1 以外,其他均为 0,为 1 的位对应的编号即为对应的二元标签,如图 5-2 所示。编码方式二:对

eff5a6b22c138e9c843ecb529644b4f9.png


种二元标签进行二维编码,第一维有 m 列,表示词性标注信息,第二维有 n 列,表示分词信息,则二元标签组的编码为一串


a5fb0feddb4a5a535827d46a5dacf746.png

位的 0/1 序列,其中前 m 位中仅有一位为 1,对应词性标签的 One-hot 编码,后 n 位有一位为 1,对应分词标签的 One-hot 编码。如图 5-3 所示。这样二元标签组就表示成了一串计算机能处理的 0/1 序列。


d13a07e8d0b636ae281d1d1c208ea9b9.png



图 5-2 编码方式一示意图


78b4f38c5a97231b44e0dd7797971ed8.png


图 5-3 编码方式二示意图


4.18 分类模型的评估标准


准确率和召回率是广泛用于信息检索和统计学分类领域的两个度量值,用来评价结果的质量。其中精度是检索出相关文档数与检索出的文档总数的比率,衡量的是检索系统的查准率;召回率是指检索出的相关文档数和文档库中所有的相关文档数的比率,衡量的是检索系统的查全率。一般来说,Precision 就是检索出来的条目(比如:文档、网页等)有多少是准确的,Recall 就是所有准确的条目有多少被检索出来了。

74a5a6544752f7ef6b45a07f847988ef.png


e632ca8d8952fee2d04f15729459c783.png

其中

0f46bbeaef2ae97d3d9fb42c75301271.png


为系统判断为正确的数量,

9e22852d9595f3d0add3d746f23c1909.png


为样本中所有正样本的数量,

d0f88d71ea8edf29e43f3c83eb1f27a7.png


为样本中所有负样本的数量。准确率和召回率是互相影响的,理想情况下肯定是做到两者都高,但是一般情况下准确率高、召回率就低,召回率低、准确率高,当然如果两者都低,那是什么地方出问题了。通常,我们希望准确率和召回率均越高越好,但事实上这两者在某些情况下是矛盾的。


比如我们只搜出了一个结果,此结果是正确的,求得 precisin 等于 1。但是由于只搜出一个结果,recall 值反而很低,接近于 0。所以需要综合考量,因此便引入了 F-measure。F-measure 又称 F-score,其公式为:


其中,当 β=2 时,更加注重召回率;β=0.5 时,更加重视准确率;当 β=1 时,就是 F1-score:

6351a7dae82825e963204beeed3128cb.png


F-measure 综合了 precision 和 recall,其值越高,通常表示算法性能越好,下表展示了召回率、准确率和 F-score 之间的关系。



987689ee86283513ac106fd98d3b7204.png



图 5-4 两类分类的混淆矩阵示意图


4.19 模型架构


本部分将介绍基于 Bi-LSTM 的古汉语自动分词及词性标注一体化模型的相关细节,图 5-5 为模型的训练流程图。其中,数据预处理是指将原预料库中

1e058e88b4b6b79c2408faa0a734106a.png


即词/词性标记形式的内容处理为模型所需要的

e9a5fa16784def2e8e2ace27457c8684.png


即单字/二元标签组形式的内容。编码指将计算机不能理解的二元标签组转变成计算机可以处理的数字序列,以便送入神经网络进行计算。本节将包括语料库数据的预处理,网络结构和标签编码三个部分。


27507d88704190b8f39babd561e24d65.png


图 5-5 模型的训练流程图


4.19.1 网络结构


本模型利用 Bi-LSTM 网络进行训练。图 5-6 是基于 Bi-LSTM 的自动分词及词性标注一体化模型总体示意图。


图 5-6 基于 Bi-LSTM 的自动分词及词性标注模型结构示意图


嵌入层解决的是古汉语自然语言的数字化表示并嵌入到模型的问题。古汉语是一种自然语言无法被计算机直接处理,因此古汉语语句在通过神经网络模型进行处理之前必须首先将其数字化。该模型是将字表示为分布式向量,也称为嵌入向量。前面部分已经介绍过,在中文自然语言处理过程中有一个从训练集中提取出的大小为

1fcc3f2df23920941f1c3d8e7be1762c.png

的字符字典

9325163901200b01bea46d27ea701a49.png


,每个字符


6fdf03bf4c18f2866fa343434c355332.png

表示为实值向量(字符嵌入)

00c170de749a63a241589f659b02919f.png


其中 d 是向量空间的维数。然后将所有字符嵌入堆叠成嵌入矩阵


dc2ce1d3c88171ce8aa2994dfab0b5f9.png

。对于字符

4661f235a6b821bd6867a46b4584a4f0.png


,查找表 C 检索相应的字符嵌入


c2ef7b4100dbf741548df93c054958d5.png

。查找表和嵌入层之间可以被视为简单的投影层,每个字符嵌入通过其查找表索引到相应的列操作来实现,然后将字符向量送入到相应的神经网络中。


模型神经网络层是古汉语分词与词性标注一体化模型的核心,是采用深度学习方法进行古汉语分词特征学习与古汉语词性标注特征学习的重要的中间层,本部分模型网络层采用 Bi-LSTM 神经网络,其最主要的作用是针对输入的字向量数据,在训练过程通过不断调整神经网络参数来进行高度抽象的古汉语特征的学习,使之自动提取出字、分词、词性标注和上下文之间的内在关联。


标注推理层本质上是一个隐马尔科夫过程,它可以在句子层级上利用上下文标注信息推断当前字对应的词位标记或当前词对应的词性标记。古汉语所具有的语法关系会影响标记,标注推理层通过标记之间前后的互相影响计算一个句子的最优标注分数。


4.20 实验及性能分析


本模型通过 Python 下的 TensorFlow 框架搭建,使用的数据包括《尚书》、《礼记》、《诗经》、《论语》等含有分词和词性标记的上古书籍文本。该语料库中使用普及化标记标记上古汉语文本,且所有语料文本均使用 Unicode 编码。实验选取上古语料中 75% 文本作为训练集对模型进行训练,25% 作为测试集进行后期实验性能分析和比较。训练过程中利用 Adam(Adaptive Moment Estimation)方法对参数进行调节,该方法能分别计算每个参数的自适应学习率,可使模型参数达到较好的效果。图 5-8、图 5-9 是训练过程中二元标签组的两种编码结构在不同步长情况下的精确度及代价随代数变化的比较图。图 5-8 中可见,第一种编码方式的情况下,学习率为 1e-2 的时候上升速度最快,但精确度最高稳定在 92.7%;1e-3 的学习率曲线上升速度虽然不如 1e-2 快,但能达到更高的精确度 97.7%;1e-4 学习率情况下由于学习率过小,正确率曲线在 300 批次之后上升十分缓慢,最终只可达到 91.8%。与此同时,编码方式二的情况下,正确率曲线在不同步长参数下的变化趋势基本相同,但在三种步长下结构二所能达到的最优正确率仅为 1e-3 情况下的 96.8%,达不到方式一中 1e-3 时的 97.7% 正确率。造成这种情况的原因,一方面可能因为编码方式二是分前后两段的,则分词和词性标注的过程独立性相较方式一更高,不能充分的利用到分词标志和词性标志之间的内在联系,另一方面可能是因为参数未设置到方式二的最佳状态。在下面的实验中,我们均选择 1e-3 步长下利用方式一编码训练得到的模型参数进行实验,以获得最好的实验效果。

3c0c26a3c5e6e70f124a2b2e11020cf2.png


图 5-8 两种输出结构下不同学习率下正确率随批次增加的变化示意图


db7fb2413a99eafd551d71ee03107783.png

图 5-9 两种输出结构下不同学习率下正确率随批次增加的变化示意图


本部分将本文提出的方法同基于字典的分词方法以及基于马尔科夫链的标注方法分别进行性能上的比较。该部分使用 F 值(F-measure)作为主要指标评估标准对不同方法的分词标注结果进行统一衡量。一个完美的分词器其 F 值为 1,F 值越大说明分词器分词标注效果越好。


4.20.1 分词


字典匹配法中使用的字典是包含上古语料库中提取出的包含所有词语的理想词典,即语料库中所有的词均包含在字典中,上古汉语中 70% 以上都是单字成词,对此本文针对性的使用最大长度为 4 的基于字典的分词方法。图 5-10 为在不同字典大小情况下字典法 F 值的比较图,可见字典的大小对分词精确度有直接影响,这里利用无未登录词的理想字典同本文模型进行比较,图中可见理想字典匹配法 F 值可达 0.94。


6a001c8f2c7cc581201c001c51dc12c4.png

图 5-10 不同大小字典分词 F 值比较图


图 5-11 是不同句长的句子个数分布图,图中某条形越高,说明该条形对应的句长在语料库中越多,图中可以看出,句子长度大多分布在 4 字到 15 字之间,其中含有九个字的句子最多。图 5-12 是利用上古预料库 75% 语料训练的 Bi-LSTM 一体化模型并利用 25% 作为测试集进行的测试结果条形图,其中虚线是利用理想字典的最大匹配算法的 F 值。实验中一体化模型的测试集不包含于训练集当中,但利用训练集训练得到的模型对测试集的分词及标签 F 值仍然可以达到 0.95,效果优于理想字典匹配法的 0.91 的单任务自动分词 F 值。图 5-11 显示在句长小于 5 的情况下,标签的正确率稍低,原因是句长过短,LSTM 网络从上下文中提取的信息有限,影响了标签正确率。虽然句长小于 10 的情况下分词 F 值略低,但图 5-12 所展示的句长分布可见包含五个字以下的句子在上古文本中所占比例并不大,所以对于短句对于正确率的影响也可控制在可接受的范围之内。

0373760de50e1f6fb16d8d5f7c571d7d.png


图 5-11 句长分布图

d4e3424364a4075a79337e4735a8ab64.png


图 5-12 Bi-LSTM 一体化模型和字典法在不同句长下分词 F 值


4.21 词性标注


本部分我们将一体化模型同隐马尔科夫链模型(Hidden Markov Model)进行词性标注上的比较,这里使用的 HMM 模型使用的参数是通过统计所有已有语料文本得到的。HMM 模型在已经分好词的现代汉语上进行词性标记可达到 95% 的准确率,而应用到语料较少的上古汉语中则效果较差,如图 5-13 中深色条形图所示,在不同句子长度的情况下,其 F 值仅 0.90 左右,图中浅色条形图为本一体化模型在不同句长下的词性标注 F 值情况。可以看出由于古代汉语语料较少,而 HMM 是基于概率的模型,因此 HMM 方法的 F 值受到一定的影响。而本部分提出的一体化模型是基于上下文信息以及字词内部深层次的关联来输出标签,在语料相对较少的上古汉语语料集中也有较好的表现。

8a55184b54e20e5b37800276dc17f315.png


图 5-13 HMM 方法与一体化模型在不同句长下的词性标注 F 值比较图


通过上述实验可得,本文提出的一体化模型在分词效果上比基于理想字典的匹配法正确率高,在词性标注上效果优于利用所有语料进行参数设置的 HMM 法。查阅文献可知,当前对于古汉语来说,分词所能达到的最佳性能为文献[70] 中达到的 97.7% 正确率,词性标注目前能达到的最佳性能为文献[71] 中达到的 97% 正确率。如果将以上两种分词和词性标注单任务领域的最佳方法串联在一起,则其正确率将会变为二者正确率的乘积,又将有一定程度上的损失而无法达到 97%。而本文的一体化模型从最开始就将分词和词性标注任务一同考虑,不存在错误扩散的问题,结果更加精确。


4.21.1 实验结果分析


正如古汉语计算语言学家尉迟治平的呼吁:“我们期望能有可以用于汉语史电子文献自动分词、自动断句、自动标注的软件早日问世,专家只需对结果刊谬补缺,这将大大减轻属性式标注的劳动强度,加快工作进度。”


本模型不仅可输出可信度最大的二元标签,而且可输出第二大、第三大等标签的可信度作为辅助供使用者对结果刊谬补缺。表 5-1 是通过一体化模型对句子进行自动分词及词性标注的一个实例,其中第一行是输入句子的单字,第二行是输入汉字的正确二元标签,第三行为本模型的输出二元标签,最后一行表示模型的输出与正确标签是否一致,‘1’表示在该位置模型预测正确,‘0’则表示模型预测失败。


表 5-1 《睡虎地秦墓竹简·为吏之道》实例


image.png


如图 5-14 展示了每个字前三名标签的分数,其中深色条形对应的分数为正确标注,可以看出前 4 个字最大与次大标签评分差距较大,且评分最大标签均为正确标签。而第五、第六个字最大与次大标签评分差距较小,评分差距较小是程序对该字判断模糊的表现,该两字的正确答案均为模型评分第二大的标签。所以输出评分前三高的标签作为辅助可以覆盖更多的正确标签,共古汉语研究者进行手动选择,这一特性将为古汉语研究者接下来的编辑和校对提供便利。


d8f6d72ba4e24caf0137002ba172ddbe.png


图 5-14 实例中每个字的前三名评分条形图


4.22 语料库建设



通过分词及词性标注一体化模型,我们就可以对我们的语料库做标注处理。首先我们获取大量未标记的语料,手动标注其中的部分语料作为训练集来训练分词及词性标注一体化模型,得到训练好的模型后,我们又可利用一体化模型对语料库的未标注部分做进一步的自动标注,经自动标注的文本需要经过人工校验方可入库,用以更进一步训练分词及词性标注一体化模型。过程流程图如图 5-15:


通过流程图展示的流程,我们处理了部分上古汉语存档入库。并且,我们利用建立了一个基于 Apache+Django+MySQL 的数据管理网站方便对数据库的管理。网站可实现古籍按时代分类、原文检索、断句辅助以及释义检索四项基本功能。


5d15c77601cf01644f858a4cee517ea7.png


图 5-15 数据库建设流程图


4.23 本章小结


古汉语自动分词及词性标注是古汉语研究电子化的基础,在中文研究领域逐渐受到重视。由于古汉语与现代汉语的一些不同,直接使用现代汉语的相关技术有一定的困难。本文针对古汉语自动分词及词性标注技术:一、提出一种二元组标签;二、提出一种自动分词及词性标注的一体化设计方案,同时考虑分词和标注;三、将 Bi-LSTM 用到了古汉语分词标注领域,有一定的创新性。实验效果表明,本模型的自动分词及词性标注正确率可以达到 97%,较现有的 HMM 和字典法有一定的提升,且分词标注一体化效果优于当前性能最佳的分词和词性标注方法串联后得到的处理结果。四、初步建立了一个上古汉语语料库。


总结与展望


4.24 总结


基于我国现阶段古代汉语研究和现代机器学习方法结合相对欠缺的现象,本文针对古代汉语提出了的三项基本目标:实现自动古籍断代、实现古代文本自动切分、实现古代文本自动标注以及实现古籍的结构化入库。为了实现古代汉语信息化以及古代汉语的现代化研究,本文将深度学习与古汉语研究的基本任务相结合,利用 Bi-LSTM 深度神经网络完成古汉语任务,并利用得到的模型处理古籍文本,最终将古籍文本进行切分及标注,并入库管理。


本文的贡献可总结为以下几个方面:


为解决古代书籍断代的问题,本文提出使用双向长短期记忆神经网络作为主体构建古代文本断代模型。整理互联网上现有的已知年代的文本作为训练集对模型进行训练。利用 word2vec 模型将文本中的每一个字被转换成一串高维向量,然后将文本包含的所有文字的字向量送入模型分析它们之间的非线性关系。最终,模型会输出一个该段文本的年代类别标签。实验结果表明利用 Bi-LSTM 神经网络构造的模型能够很好的完成断代任务,断代的正确率能达到 80% 以上。本文的断代模型提供了一种高效且准确的古文断代方法,这将节省古文研究工作者在文本断代过程中的时间消耗。


针对某些古代汉语书籍原著中缺少标点符号的问题,本文提出一个断句模型。本部分我们通过深度神经网络对大量经过断句的古汉语文本进行学习,使断句模型自动学习到某一时期、某种题材的断句规则,从而实现输入一段无断句的文字序列,机器自动为其添加断句的效果。


针对古汉语分词及词性标注任务,我们需要解决训练集获取的问题,分词标注任务需要已经分好词、标注好词性的文本来做模型的训练集,但目前目前尚没有公开的具有分词和词性标注的古汉语语料库。因此我们通过手工标记部分语料的方法得到了少量的数据集对我们所设计的分词标注模型进行少量的实验,用以验证本文提出的分词标注模型可以较好的完成古汉语分词标注任务。


4.25 展望


从模型数据角度来说,现有的古代汉语预料主要是未进行分词及词性标注的,本文中所有使用到的分词及词性标注训练集均为人工标注的,因此数据量较小,训练所得的模型正确率也有限。下一步研究工作将考虑结合机器学习和人工纠错,不断扩充古汉语语料库,不断循环迭代,模型和语料库互相促进,提高模型性能以及语料库容量。


从模型算法角度来说,由于数据量较小的关系,现有模型均基于 Bi-LSTM 神经网络,下一步研究工作可以采用其它大规模自然语言处理模型进行建模,可考虑使用现代汉语模型加在古汉语数据集上的 fine-tune 的方法训练模型。


相关文章
|
24天前
|
机器学习/深度学习 调度 计算机视觉
深度学习中的学习率调度:循环学习率、SGDR、1cycle 等方法介绍及实践策略研究
本文探讨了多种学习率调度策略在神经网络训练中的应用,强调了选择合适学习率的重要性。文章介绍了阶梯式衰减、余弦退火、循环学习率等策略,并分析了它们在不同实验设置下的表现。研究表明,循环学习率和SGDR等策略在提高模型性能和加快训练速度方面表现出色,而REX调度则在不同预算条件下表现稳定。这些策略为深度学习实践者提供了实用的指导。
33 2
深度学习中的学习率调度:循环学习率、SGDR、1cycle 等方法介绍及实践策略研究
|
3天前
|
机器学习/深度学习 人工智能 算法
基于Python深度学习的【垃圾识别系统】实现~TensorFlow+人工智能+算法网络
垃圾识别分类系统。本系统采用Python作为主要编程语言,通过收集了5种常见的垃圾数据集('塑料', '玻璃', '纸张', '纸板', '金属'),然后基于TensorFlow搭建卷积神经网络算法模型,通过对图像数据集进行多轮迭代训练,最后得到一个识别精度较高的模型文件。然后使用Django搭建Web网页端可视化操作界面,实现用户在网页端上传一张垃圾图片识别其名称。
20 0
基于Python深度学习的【垃圾识别系统】实现~TensorFlow+人工智能+算法网络
|
3天前
|
机器学习/深度学习 人工智能 算法
【手写数字识别】Python+深度学习+机器学习+人工智能+TensorFlow+算法模型
手写数字识别系统,使用Python作为主要开发语言,基于深度学习TensorFlow框架,搭建卷积神经网络算法。并通过对数据集进行训练,最后得到一个识别精度较高的模型。并基于Flask框架,开发网页端操作平台,实现用户上传一张图片识别其名称。
16 0
【手写数字识别】Python+深度学习+机器学习+人工智能+TensorFlow+算法模型
|
3天前
|
机器学习/深度学习 人工智能 算法
基于深度学习的【蔬菜识别】系统实现~Python+人工智能+TensorFlow+算法模型
蔬菜识别系统,本系统使用Python作为主要编程语言,通过收集了8种常见的蔬菜图像数据集('土豆', '大白菜', '大葱', '莲藕', '菠菜', '西红柿', '韭菜', '黄瓜'),然后基于TensorFlow搭建卷积神经网络算法模型,通过多轮迭代训练最后得到一个识别精度较高的模型文件。在使用Django开发web网页端操作界面,实现用户上传一张蔬菜图片识别其名称。
16 0
基于深度学习的【蔬菜识别】系统实现~Python+人工智能+TensorFlow+算法模型
|
20天前
|
机器学习/深度学习 人工智能 算法
【车辆车型识别】Python+卷积神经网络算法+深度学习+人工智能+TensorFlow+算法模型
车辆车型识别,使用Python作为主要编程语言,通过收集多种车辆车型图像数据集,然后基于TensorFlow搭建卷积网络算法模型,并对数据集进行训练,最后得到一个识别精度较高的模型文件。再基于Django搭建web网页端操作界面,实现用户上传一张车辆图片识别其类型。
65 0
【车辆车型识别】Python+卷积神经网络算法+深度学习+人工智能+TensorFlow+算法模型
|
22天前
|
机器学习/深度学习 算法 数据安全/隐私保护
基于贝叶斯优化CNN-LSTM网络的数据分类识别算法matlab仿真
本项目展示了基于贝叶斯优化(BO)的CNN-LSTM网络在数据分类中的应用。通过MATLAB 2022a实现,优化前后效果对比明显。核心代码附带中文注释和操作视频,涵盖BO、CNN、LSTM理论,特别是BO优化CNN-LSTM网络的batchsize和学习率,显著提升模型性能。
|
29天前
|
机器学习/深度学习 人工智能 自然语言处理
计算机前沿技术-人工智能算法-大语言模型-最新研究进展-2024-10-19
计算机前沿技术-人工智能算法-大语言模型-最新研究进展-2024-10-19
46 2
|
29天前
|
机器学习/深度学习 人工智能 自然语言处理
计算机前沿技术-人工智能算法-大语言模型-最新研究进展-2024-10-16
计算机前沿技术-人工智能算法-大语言模型-最新研究进展-2024-10-16
29 1
|
29天前
|
机器学习/深度学习 人工智能 算法
计算机前沿技术-人工智能算法-大语言模型-最新研究进展-2024-10-15
计算机前沿技术-人工智能算法-大语言模型-最新研究进展-2024-10-15
45 1
|
29天前
|
机器学习/深度学习 人工智能 自然语言处理
计算机前沿技术-人工智能算法-大语言模型-最新研究进展-2024-10-14
计算机前沿技术-人工智能算法-大语言模型-最新研究进展-2024-10-14
37 1