文献标识码: A
DOI:10.16157/j.issn.0258-7998.190221
中文引用格式: 龚永罡,吴萌,廉小亲,等. 基于Seq2Seq与Bi-LSTM的中文文本自动校对模型[J].电子技术应用,2020,46(3):42-46.
英文引用格式: Gong Yonggang,Wu Meng,Lian Xiaoqin,et al. Chinese text automatic proofreading model based on Seq2Seq and Bi-LSTM[J]. Application of Electronic Technique,2020,46(3):42-46.
0 引言
随着出版行业电子化的不断发展,其中中文文本校对环节的任务越来越重,使用传统的人工校对显然无法满足需求。因此,中文文本自动校对技术的发展就显得尤其重要。
本文采用深度学习中的循环神经网络(Recurrent Neural Networks)进行文本自动校对。其特点是能处理任意长度的输入和输出序列,因此被广泛应用在自然语言处理(Natural Language Processing)任务中。在机器翻译任务上,CHO K等在2014年发表的论文[1]中首次提出基于循环神经网络设计的Seq2Seq模型,并且在多个自然语言处理问题上取得突破。因此,Seq2Seq模型的提出为文本校对领域的研究提供了一种新的思路与方法。
目前,基于深度学习的中文文本自动校对技术的研究仍处于起步阶段,本文着重研究了基于Seq2Seq模型与BiRNN网络结构改进的网络模型,使其适用于中文文本校对问题,为中文文本校对领域提供了一种新的方法。
1 背景
1.1 中文文本校对的研究现状
目前,国内在中文文本校对方面的研究主要采用以下3种方法:(1)基于拼音的中文文本校对[2];(2)基于字的中文文本校对[3];(3)基于上下文的中文文本校对[4]。这三种方法采用的校对规则又分为3类:(1)利用文本的特征,如字形特征、词性特征或上下文特征;(2)利用概率统计特性进行上下文接续关系的分析[5];(3)利用语言学知识,如语法规则、词搭配规则等[6]。
1.2 Seq2Seq模型
基础的Seq2Seq模型包含三部分,即Encoder端、Decoder端以及连接两者的中间状态向量[7]。Encoder编码器将输入序列X=(x1,…,xT)编码成一个固定大小的状态向量S传给Decoder解码器,解码器通过对S的学习生成输出序列Y=(y1,…,yK)[8]。解码器主要基于中间状态向量S以及前一时刻的输出y(t-1)解码得到该时刻t的输出y(t)[9]。其结构如图1所示。
1.3 Bidirectional-LSTM
LSTM(Long Short-Term Memory)是门控制循环神经网络的一种。标准的RNN网络能够存储的信息很有限,并且输入对于输出的影响随着网络环路的不断递增而衰退[10];而LSTM在面对较长的序列时,依然能够记住序列的全部信息。LSTM是一种拥有输入门、遗忘门、输出门3个门结构的特殊网络结构[11]。LSTM通过这些门的结构让信息有选择性地影响网络中每个时刻的状态[12]。LSTM的结构如图2所示。
Bi-RNN克服了单向RNN当前时刻的输出与之后时刻的输出无关的问题[14]。在Bi-RNN中,将一个RNN网络拆成了两个方向,不仅有从左向右的前向连接层,还存在一个从右向左的反向连接层,这两个连接层连接同一个输出层,从而在保证网络可以处理较长序列不发生遗忘的同时,又保证了能够提供给输出层输入序列的完整上下文信息[15]。其结构如图3所示。
2 模型的实现
2.1 数据预处理
模型的基本架构是Seq2Seq模型。在构造模型之前,需要先对语料进行预处理,包括以下5个部分:加载数据;清洗数据;切词编码;分析统计;语料转换。加载数据的时候需要对语料文本进行切分,以句子为单位,即每一行代表一个完整的句子,以此读入训练数据。切词部分可以借助一些成熟的中文分词工具,如 jieba分词。完成分词再加载的过程中,要注意同时清洗数据,去掉数字、特殊字符等[16],再以词为单位对其进行编码录入词库。
完成词库到数字的映射之后,需再根据这种映射关系完成数字到词库的反映射。分析数据是针对训练语料进行统计性的描述,了解训练数据的一些信息,例如:训练语句的个数、最长与最短句含有的单词数、训练语料构成的词库中非重复词的个数等。最后可按照句子从少到多进行排列,优化训练过程[17]。
2.2 Bi-LSTM的Seq2Seq网络模型
2.2.1 基本Seq2Seq结构的局限性
在机器翻译、文摘生成等问题上,基础的Seq2Seq模型一直都有不错的表现,但是针对文本校对这类问题,其结构并不能直接被使用。Encoder将输入编码为固定大小状态向量的过程首先是一个“信息有损压缩”的过程,如果信息量越大,那么这个转化向量的过程对信息的损失就越大,同时,随着sequence length的增加,意味着时间维度上的序列很长,RNN模型也会出现梯度弥散[18]。其次,基础的模型连接Encoder和Decoder模块的组件仅仅是一个固定大小的状态向量,这使得Decoder无法直接去关注到输入信息的更多细节[10]。最后,由于RNN网络的特性,当前时刻的输出只与当前时刻的输入和之前的输入有关[19],因此模型对于信息的捕获不够完整。
2.2.2 模型的构建
校对模型由编码端、解码端组成,编码端是由LSTM单元组成的Bi-RNN网络。在中文文本自动校对中,输入序列是标记为的完成分词的中文语句文本,其中上角标j代表句子在语料库中的位置,下角标代表该词在第i句中的位置。文本中的每一个词在输入到LSTM网络前要转化成机器可识别的数字编码。由于LSTM只能处理定长的数据,因此需要保证输入语料的长度Tx保持固定。通过预处理部分可以得到最长句子的词数,假设词数Tx=20,则应对不足20个词长的句子进行<PAD>补全。编码端接收每一个中文词语的数字形式和其上一个时间点的隐层状态,由于采用Bi-RNN网络,输出的是当前时间点的隐层状态,结构如图4所示,其展示了两个双向的LSTM单元。
解码端是一个带注意力机制的RNN网络,其在t时刻生成一个词时可以利用到此前的全部上文信息。解码端接收目标句子中上一个时间点的中文词语和上一个时间点的隐层状态与注意力机制产生的语义向量,如图5所示。
由于注意力机制的存在,每个时刻生成词时对输入序列各个词的关注程度是不一样的,因此编码端在每个时刻给出的Ci是不一样的。其计算公式如式(15)所示。其中,hj表示编码端的第j个词的隐层状态,αij表示编码端的第j个词与解码端的第i个词之间的权值,其计算公式如式(16)所示。在式(16)中,eij是一个softmax模型输出,概率值的和为1。eij表示一个对齐模型,用于衡量编码端的第j个词相对于解码端的第i个词的对齐程度(影响程度)。对齐模型eij的计算方式如式(17)所示。
eij的计算方法有很多种,不同的计算方式,代表不同的Attention模型,本文使用的是Soft Attention模型,它可以被嵌入到模型中去,直接训练。Soft Attention模型在求注意力分配概率的时候,对于输入句子X中任意一个词都给出概率。结构如图6所示。
图6展示了在预测第t个时间段的输出yt时的结构。通过对Encoder层状态的加权,从而掌握输入语句中的所有细节信息,最后将语义向量和解码端的隐层状态合拼起来,计算最后的输出概率。
以“我爱机器学习”为例,假设当前时刻正准备校对“机器”这个词,此时需要计算语义向量,如图7所示。
图7中,St-1代表解码端前一轮的隐层状态,即代表了校对“机器上一个词”阶段的输出隐层状态;a1~a4分别代表了编码端每个词输入到Bi-RNN后的隐层状态。Attention根据每个Encoder输出和Decoder的上一次隐层给出每个边的得分,然后和上一次训练的预测值拼合到一起,和Decoder端上一时刻的隐层作为输入进入当前时刻的RNN。
2.2.3 模型的训练与优化
在完成了模型的构建后,还需要构造解码端的训练与预测函数,并将训练与预测分开。因为解码器会将前一时刻的输出作为当前时刻的输入,如果前一时刻的输入不够准确,那么就会影响后续的预测。所以在训练过程中,需要知道每一个输入到网络中的句子的正确形式,进而采用强制正确输入来进行训练,这种方式叫做Teacher Forcing,如图8所示。
前面已经介绍过解码端某一时刻的概率分布,所以对于全部的训练样本,需要做的就是在整个训练样本下,所有样本的P(y1,…,yT|x1,…,xT)概率之和最大,最大化条件似然函数,得到最佳的校对结果。模型使用grid search设计,以便找到最佳架构和超参数值。
3 结果与分析
实验使用阿里云服务器GN2作为训练服务器,使用TensorFlow框架,共进行了4组实验,分别用来测试Seq2Seq、BiRNNSeq2Seq、带注意力机制的Seq2Seq以及与这两者结合在一起的4种模型在中文文本校对中的性能。实验所使用的数据集来源于2018 NLPCC共享的训练数据Task 2以及一部分搜狗实验室提供的开源中文语料库,全部的数据集包含了1 327 608个句子对,分别用Src和Trg表示,Src代表原句,既可能为正确的句子也可能为包含用词错误的句子;Trg表示目标输出,其均为对应Src的正确句子,其中不包含验证集。将全部数据集按比例(99.5:0.5)随机分成两部分:一个验证集,其中包含5 310个句子对,源句与目标句子之间存在不一致;另一个训练集包含所有剩余的1 322 298个句子对。测试数据包含2 000个句子对。数据集的统计数据如表1所示。
表1展示了训练验证和测试数据的统计。.Src是指源错误的句子,.Trg是指目标正确的句子。
为了合理客观地评价模型,实验采用广泛使用的MaxMatch Scorer工具包进行评估。中文文本校对实验结果如表2所示,其中F0.5、F1、BLEU为评价分数。
实验结果表明,Bi-RNN以及注意力机制均有助于提升中文文本校对模型的性能,并且二者结合起来可以进一步改善系统的性能。由于模型的实验结果受数据量以及迭代次数的影响,因此在此基础上引入更多的数据做训练,并且通过改善训练方法,如引入流畅度学习、推断机制等进一步提升模型校对的准确率。
4 结论
本文给出了基于Seq2Seq和Bi-LSTM设计的中文文本校对模型并且通过公开的数据集全面验证了模型的性能。模型的核心内容是在引入Bi-LSTM单元和注意力机制的同时,用Seq2Seq结构网络对中文语料库进行学习,挖掘词与词之间的关系,并以此作为中文文本校对的依据。虽然由于训练量的原因,在结果上并未达到最好的效果,但是可以看出该模型在中文文本校对领域里具备了很大的潜力,并可以扩展应用在多个中文自然语言处理领域。
参考文献
[1] CHO K,MERRIENBOER B,GULCEHRE C.Learning phrase representations using RNN encoder–decoder for statistical machine translation[J].Computer Science,2014(v1):52-55.
[2] 张仰森,俞士汶.文本自动校对技术研究综述[J].计算机应用研究,2006(6):8-12.
[3] 洛卫华,罗振声.中文文本自动校对技术的研究[J].计算机研究展,2004,33(1):60-64.
[4] 刘亮亮,曹存根.中文“非多字错误”自动校对方法研究[J].计算机科学,2016(10):34-39.
[5] 谢刚.知识图谱精化研究综述[J].电子技术应用,2018,44(9):29-38.
[6] DE FELICE R,PULMAN S G.A classifier-based approach to preposition and determiner error correction in L2 English[C].Proceeding of the 22nd International Conference on Computational Linguistics.COLING 2008 22nd International Conference,2008:167-176.
[7] 吴岩,李秀坤,刘挺,等.中文自动校对系统的研究与实现[J].哈尔滨工业大学学报,2001(2):60-64.
[8] Chen Yongzhi,WU S H,Yang Pingche,et al.Improve the detection of improperly used Chinese characters in students essays with error model[J].International Journal of Continuing Engineering Education and Lifelong Learning,2012(v1):93-97.
[9] 吴林,张仰森.基于知识库的多层级中文文本查错推理模型[J].计算机工程,2012,38(20):21-25.
[10] 刘亮亮,王石,王东升,等.领域问答系统中的文本错误自动发现方法[J].中文信息学报,2013,27(3):77-83.
[11] 张仰森,唐安杰.面向政治新闻领域的中文文本校对方法研究[J].中文信息学报,2014,28(6):44-49.
[12] 字云飞,李业丽,孙华艳.基于深度神经网络的个性化推荐系统研究[J].电子技术应用,2019,45(1):14-18.
[13] TAN Y,YAO T,CHEA Q,et al.Applying conditional random fields to Chinese shallow parsing[C].Proceedings of Clcling-2005,Mexico City,2005:167-176.
[14] KUDO T,YAMAMOTO K,MATSUMOTO Y.Applying conditional random fields to japanese morphological analysis[C].Natural Language Processing(Emnlp-2004),Barcelona,2004:230-237.
[15] 王洁,乔艺璇,彭岩,等.基于深度学习的美国媒体“一带一路”舆情的情感分析[J].电子技术应用,2018,44(11):102-106.
[16] 潘吴,颜车.基于中文分词的文本自动校对算法[J].武汉理工大学学报,2009,31(3):18-20,28.
[17] PINTO D,MCCALLUM A,WEI X.Table extraction using conditional random fields[C].26th ACM SIGIR,Canada,2003:235-242.
[18] 张仰森,郑佳.中文文本语义错误侦测方法研究[J].计算机学报,2017(3):63-68.
[19] ZHOU G D,SU J.Named entity recognition using an HMM-based chunk tagger[C].Proceedings of the 40th Annual Meeting of the ACL′2002,Philadelphia,2002:473-480.
作者信息:
龚永罡,吴 萌,廉小亲,裴晨晨
(北京工商大学 计算机与信息工程学院 食品安全大数据技术北京市重点实验室,北京100048)