APP下载

基于改进的多层BLSTM 的中文分词和标点预测

2018-07-25李雅昆EverettWANG

计算机应用 2018年5期
关键词:标点分词向量

李雅昆,潘 晴,Everett X.WANG

(广东工业大学信息工程学院,广州510006)

(*通信作者电子邮箱12936434@qq.com)

0 引言

随着互联网和计算机硬件的发展,智能家居控制、自动问答和语音助手等自然语言处理应用得到越来越多的关注。而中文不同于西方语系之处,即词与词之间没有固定的间隔,使得中文分词成为自然语言处理的基础。另一方面,口语对话没有标点符号,不能区分语句边界及规范语言结构,因此标点预测也是极其重要的自然语言处理任务。目前中文分词和标点预测都是作为独立的自然语言处理任务存在的,先中文分词再标点预测的级联的方案不仅显得过于复杂,而且分词的效果会直接影响到标点预测的性能,因此找到一个能并行执行中文分词和标点预测的方法具有现实的意义。

由字构词的中文分词方法首次由Xue等[1]提出,使用LL、RR、MM、LR作为标记,分别代表一个词的开始、结束、中间字、单个字。随着SIGHAN国际中文分词评测Bakeoff的进行,序列标注的中文分词方法逐渐成为主流。该方法能够很好解决机械分词的切分歧义问题,又能避免全切分方法因切分过多造成的分词效率下降问题[2-5]。用于中文分词的常用标注集有三种:二词位、四词位和六词位,各词位标注的定义如表1所示。二词位标注大多用于基于字标注的条件随机场分词系统,Zhao等[6]首次使用了六词位标注法,已有的采用深度学习的文章均采用四词位标注法[7]。

序列标注用到的模型有Leonard E.Baum提出的隐马尔可夫模型,它的缺点是由于其输出独立性假设,无法考虑上下文的特征。最大熵模型[8]也可用于中文分词,此模型的应用克服了隐马尔可夫的缺点,但是对于训练预料中未出现的情况全部忽略,而且只能找到局部最优解。使用链式条件随机场(conditional random field)来进行中文分词,可以克服隐马尔可夫模型和最大熵的上述缺点[9-10]。但是序列标注的方法不管是隐马尔可夫、最大熵还是条件随机场都局限于特征的设计,特征数量比较大,容易在训练时产生过拟合现象。而深度学习利用BP(Back Propagation)算法不断调整由简单但非线性结构组成的网络权值,从而找到原始数据更加抽象的表达,这些特征是在网络模型迭代中从原始数据中“学到”的,不需要人工进行设计,自学习是关键所在。深度学习的优秀泛化能力、可以避免繁琐人工特征抽取的优势使其成为机器学习领域的热点。最早是Zheng等[11]将深度学习应用到中文分词中,还把神经网络中的极大似然训练方法替换成他提出的perceptron-tyle训练方法实现了中文分词和词性标注任务。Pei等[12]在其基础上加入了标签嵌入层和张量变换层,提出了MMTNN模型用于中文分词。

表1 三类词位标注集的定义Tab.1 Definition of three kinds of tag sets

由于LSTM模型具有解决梯度消失问题的优点[13-14],Chen等[15]使用LSTM来实现中文分词。后续有学者在2015对流行的LSTM变体进行了研究对比,得出的结论是他们基本上是一样的[16]。单向的LSTM只能记住过去的上下文信息。因此有学者在2016年提出了使用双向LSTM神经网络来进行中文分词[17],这样就可以获得当前词前后两面的上下文信息,从而提高分词准确率。一层LSTM叠加在另一层上可以形成多层的LSTM网络结构。虽然深层次的网络可以学习到更加抽象的信息,但随着叠加层数的增多,会出现网络难以训练和过拟合现象,因此多数情况下选用2层的LSTM网络结构[18-19]。

此外,序列标注的思想也可以推广应用到词性标注、实体命名识别和标点符号预测等NLP任务中。类似于中文分词,标点预测也可以被看作是序列标注问题,预测过程是对文本序列的每个字符进行标注,以确定语句边界处的标点符号。Jing等[20]用此方法结合最大熵模型进行了标点符号预测。Shriberg等[21]结合条件随机场模型用于语音识别中句子边界的检测。利用序列标注的思想便可实现多个预测任务的联合标注,因为联合标注的每个标签包含了多种预测任务的信息,因此可以实现多个预测任务的并行执行。Zhang等[22]用单层感知器并行执行中文分词和词性标注;Zheng等[11]曾用多层神经网络实现了并行执行中文分词和词性标注;Wang等[23]用一个模型进行了中文分词和非正式词汇的识别;Wu等[24]提出了可以同时进行中文分词和标点预测的联合任务框架用以处理社交网络数据;除了并行执行两项任务,还有学者用一个模型同时进行了中文分词、词性标注和句法分析[25]。受此启发,本文构建包含了中文分词标注和常用标点标注的联合标注集,并提出了一种改进型多层BLSTM网络,进而基于该神经网络和联合标注集并行执行中文分词和标点预测。

1 基于序列标注的中文分词模型

基于循环神经网络(Recurrent Neural Network,RNN)的序列标注通用模型如图1[19]所示,该模型由输入窗口、字符向量表示查找表、RNN层和softmax推理层(标签预测层)四部分组成。其中,输入窗口中的C1~Cn表示输入的文本字符,输入的文本字符通过字符向量表示查找表转换成能够被RNN神经网络处理的信号向量(该过程也称文本向量化,文本的向量化有两种策略,一种是在训练之前进行随机初始化,在训练过程中随着网络权值进行更新;另一种是用预训练的字向量进行初始化。其中预训练字向量的过程是随着语言模型的训练产生的,常用的语言模型包括Google在2013年开源的word2vec模型和LSTM模型,而用LSTM构建语言模型预训练的字符向量对分词结果有不同程度的提升[18])。而RNN的输出经过全连接的标签预测层获得最终的分类结果,如图1中softmax层输出的Y1~Yn所示。当所选标注集为中文分词标注集时,此序列标注通用模型便可实现中文分词。以下将分别对中文分词标注集和由经典多层BLSTM网络组成的RNN层作详细介绍。

图1 基于RNN的中文分词模型Fig.1 Chinese segmentation model based on RNN

1.1 中文分词标注集

用于中文分词序列标注的标注集如表2所示。1~4分别表示一个词语的开始字、中间字、结束字和单字。

表2 中文分词标注集Tab.2 Tag set of Chinese cegmentation

1.2 经典的多层BLSTM网络

LSTM网络是循环神经网络的一种特殊形式,由基本的LSTM单元组成[26]。将基本LSTM单元在时间轴上展开便能形成单层LSTM网络,将单层的LSTM网络逐层叠加,由此形成多层的LSTM网络结构,经典的LSTM网络结构由正向多层LSTM网络结构和反向多层LSTM网络结构组成,如图2所示。其中正向多层LSTM网络结构的输入信息为正序输入,反向多层LSTM网络结构的输入信息为反序输入,最后将正向多层LSTM网络结构的输出向量与反向多层LSTM网络结构的输出的向量进行合并。合并之后的向量便含有来自上下文的信息。

2 联合任务方法及改进的多层BLSTM网络

序列标注通用模型可以应用于各种序列标注问题,每种标注任务都对应不同的标注集,即预测任务的功能取决于选择的标注集,因此,构建联合标注集是实现并行执行中文分词和标点预测的关键。本文在中文分词四词位标注集的基础上整合了常用的标点符号标注,以此构建了联合标注集。另外,本文还对经典的多层BLSTM网络作了改进。以下对联合标注集和改进的多层BLSTM网络作详细介绍。

图2 经典多层BLSTMFig.2 Classic multilayer BLSTM

2.1 中文分词和标点预测联合标注集

联合标注集如表3所示。每个标签(标记)既包含了中文分词信息又包含了标点预测信息。对于标点符号,其只可能出现在一个词结束的地方,即出现在单字后面或者一个词的结尾处,具体的标签如图3的“单字”栏和“结束”栏所示。对于开始字和中间字,其后一定不会出现标点符号,所以分别用标签1和2标记即可。用此联合标注集应用于序列标注通用模型,便可实现并行执行中文分词和标点预测。

表3 联合标注集(并行执行中文分词和标点预测)Tab.3 Joint tag set(performing Chinese segmentaion and punctuation prediction jointly)

利用上述联合标注集(21标签)标注过的数据进行模型训练。测试时,可以分别对中文分词和标点预测的结果进行统计。对于中文分词,标签1表示词的开始,标签2表示中间字,标签3~11均表示词语的结束,标签12~20均表示单个字构成的词;对于标点预测,标签1、2、11和20表示无标点符号,标签3和12表示逗号,标签4和13表示句号,标签5和14表示问号,标签6和15表示感叹号,标签7和16表示顿号,标签8和17表示冒号,标签9和18表示段落标记(#)。

2.2 改进的多层BLSTM网络

改进的多层BLSTM的结构如图3所示,每层次都包含一层正向的LSTM网络和一层反向的LSTM网络,并将双向LSTM网络的输出向量通过加法器进行信息融合,并传递到下一层BLSTM,使得每一层的BLSTM网络都可以同时获得前后两个方向的信息,并且随着模型中层次的增加,双向输出向量能够得到更加深入的融合。不同于改进的网络,虽然传统的多层BLSTM网络最后输出的信息也是经过多层网络抽象得到的,但中间层并无融合双向网络的信息,因此在抽象信息的过程中并无获得足够的上下文信息,改进的网络很好地解决了这个问题。本文在提高测试准确率的基础上,希望能尽可能地降低系统计算的复杂度,因此采用两层次的BLSTM网络。

图3 改进的多层BLSTMFig.3 Improved multilayer BLSTM

3 实验与分析

3.1 数据集、实验环境和评测标准

实验选择了常用的PKU数据集作为对比。PKU数据集[27]由第二届国际中文分词Bakeoff提供,针对PKU数据集中的文本样本长度不一的情况,实验之前作了相应的预处理:

1)在标点符号处将长度大于预定长度的样本分成多个,以便使待处理处理的样本长度小于预定长度,并用空格补齐长度小于预定长度的样本;

2)滤除含有待预测标点之外标点的样本。

本文进行的实验用到了Google所开源的tensorflow,所用语言为python。源代码已经上传到个人github账户[28]。工作站主要参数:CPU为Intel Core i7 6800k,GPU为Nvidia Titan xp;操作系统为Ubuntu。

本实验同时采用召回率(R)、准确率(P)和综合指标(F)作为对预测结果的评价指标。指标F的计算如式(1)所示:

3.2 主要参数设置

实验中的超参数设定如表4所示,并对一些重要参数进行说明。

表4 实验超参数设定Tab.4 Experiment hyperparameters setting

综合考虑到随着字向量维数的增大会增加训练时间,实验中的字向量维数设定为200;LSTM网络长度的增加虽然能提取更多的上下文信息,但受限于中间隐层的维度,故将LSTM网络定长设定为100;为了防止实验中出现过拟合现象,采取了dropout方法,keep_prob作为进行dropout时所屏蔽的神经元比例,设定为0.5;训练过程中迭代次数为50,初始的学习率是1.0,迭代到max_epoch为16后学习率开始以0.9的速率下降,字典的大小设置为6000。

3.3 实验结果分析

本文的对比实验由三部分组成,每个部分的每个实验都分别在字向量随机初始化和字向量预训练等两种字向量初始化策略下进行。除此之外,还列出了当年国际中文分词大赛在PKU数据集上最好的分词结果[29],如表5中数据第一行所示。

第一部分为基于经典的多层BLSTM网络的中文分词和标点预测(分别单独执行两项任务)。本部分由实验A、实验B和实验C组成,每个实验都对应了不同层数的神经网络。实验结果如表5所示。

表5 第一部分实验结果汇总表Tab.5 The first part of experiment results

第二部分实验是基于改进的多层BLSTM网络的中文分词和标点预测(分别单独执行两项任务),本部分由实验D、实验E和实验F组成,每个实验都对应了不同层数的神经网络。实验结果如表6所示。

表6 第二部分实验结果汇总Tab.6 The second part of experiment result

0.960 0.959 0.960 0.964 0.960 0.962实验F(3层改进BLSTM)0.939 0.940 0.939 0.955 0.959 0.957标点预测中文分词

第三部分为基于改进的多层BLSTM网络的中文分词和标点预测(并行执行),由实验G(1层)、实验H(2层)和实验I(3层)共3个实验组成,实验结果如表7所示(本表的布局与表5相同。不同的是,本部分实验是联合任务方法,最后的中文分词和标点预测结果是按照表3所述的规则计算得到的)。

由上述三个部分的实验可知:网络模型相同的情况下,采用预训练字向量的初始化策略获得的预测结果优于采用随机向量初始化获得的预测结果;无论是经典的多层BLSTM网络模型进行中文分词,还是利用文本提出的改进的多层BLSTM网络模型进行中文分词,在进行预训练字向量的初始化策略后,其中文分词的预测性能均优于当年Bakeoff评测中最好的结果;更多层的深层网络拥有更好的预测性能,但过多的网络层数势必会增加训练时间,在此不对更多层的网络进行阐述。

表7 第三部分实验结果汇总Tab.7 The third part of experiment results

对比第一部分和第二部分的实验可知,在只有一层神经网络时,经典的多层BLSTM和改进的多层BLSTM都只经过了一次信息融合,所以两种网络模型并无本质区别,实验A和实验D相同的实验结果也验证了此种观点。在相同的神经网络层数下(2层以上的网络),本文所提出的改进的多层BLSTM网络模型无论是中文分词还是标点预测,其预测性能均优于经典的多层BLSTM网络。

对比第二部分和第三部分的实验可知,在相同的神经网络层数下,本文提出的基于改进的多层BLSTM的联合任务方法的预测性能不低于甚至优于用该模型执行单个预测任务时的性能。

经典多层BLSTM和改进多层BLSTM执行中文分词和标点预测所需的训练时间和预测时间如表8所示。实验结果表明,不管是经典BLSTM网络还是改进的BLSTM网络在网络层数增加的情况下,均会增加训练时间和预测时间;改进后的多层BLSTM网络减小了最后标签推理层的维数,因此其较经典的多层BSLTM网络可以在一定程度上缩减训练时间和预测时间;在需要执行中文分词和标点预测两项任务时,本文提出的联合任务方法由于可以并行执行中文分词和标点预测,避免了多次模型训练减小了系统复杂度,降低了训练时间和预测时间(分别单独执行中文分词和标点预测需要的时间总和大于联合任务方法)。

表8 多层BLSTM模型所需时间Tab.8 Time consumption of multilayer BLSTM

经典2层BLSTM标点预测104 31经典3层BLSTM 105 32中文分词140 41中文分词标点预测139 40改进2层BLSTM联合任务方法(中文分词&标点预测)106 31标点预测 104 31中文分词103 30改进3层BLSTM联合任务方法(中文分词&标点预测)132 40标点预测 139 40中文分词138 39

4 结语

本文提出了一种改进的多层BLSTM网络用于序列标注,并构建了一种整合了分词标注和常用标点标注的联合标注集,进而达到了并行执行中文分词和标点预测的目的。在公开数据集PKU上的实验结果显示,改进的多层BLSTM网络性能优越,和经典的多层BLSTM网络相比,提升了中文分词和标点预测的分类精度;当需要中文分词和标点预测时,联合任务方法可以并行执行中文分词和标点预测,避免了分别单独进行两项标注任务时的多次训练,减小了系统复杂度,减少了训练和预测时间。此改进的多层双向LSTM模型可以很容易地应用于其他序列标注任务,具有很强的通用性。

猜你喜欢

标点分词向量
向量的分解
标点可有可无吗
《辽史》标点辨误四则
聚焦“向量与三角”创新题
分词在英语教学中的妙用
小小标点真厉害
结巴分词在词云中的应用
结巴分词在词云中的应用
向量垂直在解析几何中的应用
有趣的标点