基于神经网络的预警领域分词仿真算法
2022-01-22陈静雯马福民
陈静雯,马福民,刘 新,李 娟
(1.江苏省突发事件预警信息发布中心,江苏 南京 210008;2.南京财经大学信息工程学院,江苏 南京,210023)
1 引言
分词是自然语言处理技术的基础性工作,其结果直接影响后续的文本质量控制、本体构建、知识提取、辅助决策和舆情监控等工作。预警信息发布作为国家十三五规划[1]应急体系建设中的重要一环,文本的正确性校验及信息分析至关重要。然而,面对预警信息第一时间准确发布、快速发布的需求,预警文本专业术语、组合词较多的独特性以及一定规模语料库的缺失,给面向预警领域的分词方法带来了巨大挑战。如何在提高预警领域分词效果的同时,兼顾分词效率成为当前的研究热点。
根据分词文本是否涉及特定专业领域,中文分词问题可以分为两种类型:通用领域分词方法和特定领域分词方法。前者主要采用基于词典的机械分词方法或基于统计的分词方法。机械分词方法分词速度快且易于实现,但词典的构造结构对分词速度有着直接的影响。为进一步提高分词算法的效率,Zhou等[2]提出了一种双字哈希词典机制,在不提升已有词典空间复杂度与维护复杂度的情况下,提高了中文分词的效率。Chen等[3]深入分析最大匹配分词算法的不足,根据首字词长递减原则构造双字哈希词典,并设计了相应的快速最大匹配分词算法,分词速度大幅提高。机械分词算法在大多数情况下是合理的,但由于不涉及语法及语义知识,不具备歧义处理能力,容易引发一些切分错误。
为弥补机械分词的不足,基于统计的分词方法将分词问题转化为序列标注问题,将语料库中汉字的共现频率作为切分依据,能够有效处理歧义并识别未登录词。常用方法包括条件随机场、隐马尔科夫[4-6]以及基于深度学习的长短期记忆神经网络[7]、卷积神经网络[8]分词模型等。然而,当隐藏状态数为N,预测状态为NT时,条件随机场模型和隐马尔科夫模型的时间复杂度为,计算量较高,神经网络模型的计算量则更为庞大。
由于通用词典和通用语料库的限制,通用分词方法的领域适应性较差,直接将通用分词方法应用于专业领域文本,其分词效果会急剧下降。为此,诸多学者将领域信息引入通用分词方法,尝试研究针对特定领域的分词模型[9-11]。Gong等[12]在马尔科夫模型的基础上,构建石油领域术语集,结合领域词典和互信息校准粗分结果,实现对石油领域术语和组合词的精确识别,为预警领域分词提供了思路。Zhang等[13]采用双向长短期记忆网络对3774条预警信息文本数据集(约30万余字)进行训练,提出了一种针对预警文本的分词算法。遗憾的是,算法过度依赖统计结果,语料库的规模限制了分词效果[3]。不同于石油文本,预警信息是一个非常狭窄的领域,以江苏省为例,2018年度全年预警共11683条,汉字量不足200万,且并未完成预警文本的人工语料标注工作,大规模语料库构建困难重重。因此,文献[13]的分词结果在准确率、召回率上都无法满足预警信息准确校验的需求(P仅为87%)。针对这一问题,Lan等[14]详细论证了较小规模语料库在纠正场景中的可用性,提出了一种领域纠正器框架,第一阶段使用通用分词方法对文本进行粗分,可由任意一种分词器完成;第二阶段引入领域语料,利用LSTM模型构建领域纠正器,获得了较好的分词性能和鲁棒性。在此基础上,文献[15]使用GRU代替LSTM,在一定程度上加快了训练速度。仍存在的问题是,上述两种领域纠正器分词模型在两个阶段分别使用基于统计和神经网络的分词方法,在分词效率上仍无法满足预警信息第一时间快速发布的需求。
本文以领域纠正器分词模型为理论基础,深入探索预警文本特性,将词频作为权重信息,对文献[3]的双字哈希词典构造方法进行改进,适用于预警文本的有效词语排列位置大幅前移,匹配成功率得到极大提高。利用最大匹配分词算法进行粗分,相对于完全依赖统计结果的领域适应模型[12],分词效率进一步提高。在领域纠正阶段,为弥补LSTM模型[13]在小规模语料库上应用效果较弱以及单向GRU模型[15]忽略了未来语义信息的缺陷,采用双向GRU模型提高了算法的领域适应性。对比实验证明了分词结果及分词速度的优越性。
2 领域纠正器框架
本章将介绍领域纠正器框架(Domain Corrector Frame-work,DCF)及其形式化说明。
领域纠正器框架由两部分组成:通用分词过程、领域纠正过程。图1展示了领域纠正器框架的工作流程。其中,通用分词过程仅对文本进行初步分词,可由任意一种分词器来完成。在获得初步分词结果后,领域纠正过程通过由统计模型实现的“纠正器”预测出针对通用分词结果的纠正动作序列,结合预先定义的纠正逻辑逐字修改分词结果,最终得到符合特定领域的分词输出。
图1 领域纠正器框架流程图
领域纠正器框架不依赖于构建通用分词器时使用的语料资源和建模方法,大大降低了对训练资源的要求。其形式化说明如下所述。
2.1 通用分词过程
给定一个字符输入序列xc=c1,c2,…,cn,经过通用分词过程输出原始的分词结果,并将其转换为分词标签序列ys=ls1,ls2,…,lsn,其中ls∈LS,Ls={B,N},B代表词首字,N代表词中字或者词尾部。如分词结果“江苏省/气象台/发布/寒潮/蓝色/预警/信号”对应的分词标签序列为“B,N,N,B,N,N,B,N,B,N,B,N,B,N,B,N”。
2.2 领域纠正过程
通用分词过程结束后,xc和ys同时被送入称之为“纠正器”的纠正模块,以预测纠正标签序列yC=lC1,lC2,…,lCn,其中lC∈LC,LC={U,LI,D} ,表示纠正动作的类型,U表示无需纠正,I表示插入字前空格,D表示删除字前空格。例如对文本“我市区域空气质量”的通用分词结果为“我市区/域/空气/质量”,准确分词结果应为“我市/区域/空气/质量”,则期望的纠正序列为“U,U,I,D,U,U,U,U”,可由CRF、LSTM等模型实现。
3 基于领域纠正器框架的预警分词模型
3.1 分词模型思想
文献[13]利用已有合法预警文本数据集和开放域通用公开数据集进行建模,设计了一种基于Bi-LSTM-CRF的预警信息分词算法,是目前针对预警文本分词效果最好的一种算法,分词准确率达到0.87、召回率达到0.89。由于没有进一步探究预警文本独有的特点,分词算法在准确率和召回率上仍有提高的空间。此外,该算法的高准确率建立在庞大建模数据集的基础上,分词速度较慢,距离预警信息第一时间快速发布的需求仍有差距。引入领域纠正器思想,在一定程度上解决了上述问题。
深入分析近五年的预警信息文本可以发现其存在如下特点:1)本文由通用词汇及预警领域词汇组成,通用词汇占比较大;2)易产生歧义的部分通常伴有领域词汇,如2.2节的“区域空气质量”;3)预警发布相关法律规定对预警信息文本从内容及形式上作出了限制,因此,相当程度上的通用词语在预警文本中不会出现,如人民日报语料库收录的“历史”、“人民”、“科技大学”等。
考虑预警信息文本特点并兼顾算法效率,利用机械分词算法作为通用分词器对预警本文进行快速粗分较为合适。在3.2节提出了一种基于权重的双字哈希词典构造方法,进一步提高粗分效率。领域纠正阶段,将近五年发布的预警文本作为语料库进行建模,语料库的领域针对性对提高分词准确率帮助较高;使用运算效率较高的双向GRU模型进行建模,分词速度进一步提高。
3.2 权重双字哈希字典构造
词典结构对机械分词算法的效率有着举足轻重的影响。由3.1节的分析可知,通用词典中大部分词语并不会在预警文本中出现,遍历整个词典的匹配机制严重影响切分速度。但考虑到防灾减灾事业的发展及政策变更可能会产生相对于历史预警文本的未登录词,缩减通用词典词量并不合适。为在一定程度上提高通用分词阶段的分词效率,设计了一种基于权重的字典构造方法。通过对已有合法预警本文的词频统计(出现次数总计),将词频作为权重信息,在双字哈希的基础上,标注词典正文的权重信息,按权重逆序排列,大幅度减少匹配次数。词典结构如图2所示。
图2 基于权重的词典结构
3.3 双向GRU领域纠正器
文献[13]将已有合法预警数据和开放域通用公开数据集作为输入,通过LSTM-CRF模型训练预警分词模型。预警语料库的规模不足导致领域适应性较弱,复杂的神经网络结构则导致模型耗时较长。文献[15]使用结构较为简单的GRU-CRF模型构造领域纠正器,在加快训练速度的时候减少了模型过度拟合的可能性,在小规模语料库上的应用效果相对LSTM-CRF模型较优。然而,单向GRU模型仅携带过去的语义信息,并未考虑到未来语义对分词结果的影响。针对规模较小的预警语料库,本文采用双向GRU-CRF模型,充分利用预警语义信息的同时兼顾模型构建效率。
3.3.1 Embedding层
该层由两种不同的Embedding组成:汉字Embedding和分词标签Embedding,分别记为Ec∈R|D|×dc以及El∈R|Ls|×dl,其中|D|表示汉字字典的大小。一个汉字字符cl或一个分词标签lSt的前向数值向量为vLct和vLlt,逆序输入的汉字Embedding和分词标签Embedding得到后向数值向量为vRct和vRlt。使用四词位标签集Ls={B,M,E,S},其中,B,M,E,S分别表示词首字、词中字、词尾字和单字词。
3.3.2 输入层
在输入层对词向量和标签向量进行两次拼接。第一步将时刻前向向量vLct和vLlt,后向向量vRct和vRlt拼接为前向词-标签向量vLclt和后向词-标签向量vRclt。第二步将上下文窗口[t-k1,t+k2]中的k1+k2+1个向量拼接成前向GRUL、后向RGRUR和最终的输入向量vinput,即
vLclt=[vLct,vLlt],vRclt=[vRct,vRlt]
GRUL=[vLclt-k1,vLclt-k1+1,…,vLclt-k2-1,vLclt-k2]
GRUR=[vRclt-k1,vRclt-k1+1,…,vRclt-k2-1,vRclt-k2]
vinput={[vLclt-k1,vRclt-k1],[vLclt-k1+1,vRclt-k1+1],…
3.3.3 隐藏层
隐藏层分别从序列的首端和尾端运行,某一时刻的输出同时考虑过去和未来的上下文信息,在序列标注的任务上表现的更加优秀。GRU单元通过更新门和重置门来控制信息流动,计算过程如下:
更新门
zt=σ(Wz·[st-1,vinput])
重置门
rt=σ(Wr·[st-1,vinput])
状态更新
3.3.4 CRF层
CRF层可推断纠正序列的最优标记,进一步提高分词正确率。隐藏表征向量序列h经过线性映射后可得到一元势函数φnn(yCt,X)。而二元势函数可由矩阵A∈R|LC|×|LC|来表达,Ai,j表示从纠正标签i转移到标签j的分值。对于给定的纠正序列yC,其由输入决定的条件概率计算如下
3.4 算法描述
算法1 快速预警信息分词算法(FCWS_ WI)
输入:字符串x=c1c2…cn,c表示一个单字
输出:分词结果S=s1s2…sm,s表示一个词
1) 对输入的字符串,采用权重哈希双子词典及相应的最大匹配分词算法,计算得到通用分词阶段的粗分结果M=m1m2…mp。
算法工作流程如图3所示。
图3 FCWS_ WI算法工作流程
4 仿真分析
为满足预警信息第一时间准确发布的需求,本文提出了一种基于预警领域知识的权重哈希双字词典,通过减少通用分词过程的匹配次数降低分词算法计算量;构建已有合法预警文本语料库,提出了一种基于双向GRU-CRF的预警领域纠正器模型,从快速性、准确性两方面对现有的面向预警领域的分词方法进行了优化。实验阶段将从上述两方面分别开展。
4.1 算法快速性对比
本文算法FCWS_WI,在通用分词阶段构造了适用于预警文本的领域词典,匹配计算量大幅度缩减;为提高领域适应性,在领域纠正阶段,针对性的采用已有合法预警文本作为语料库,相对于文献[13]的Bi-LSTM-CRF_WI算法语料库规模较小,神经网络训练速度较快,进一步提高到了算法效率。
本节首先对比不同领域词典下的粗分效果,再对现有领域分词算法的计算时间进行对比。
实验选用江苏省2013年至2018年合法预警信息文本作为语料库,记为DB1,构建本文权重哈希双字词典,将2019年合法预警信息文本作为测试数据,记为DB2。以上数据集均通过江苏省气象局预报员进行语义校准。数据集特征如表1所示。
表1 数据集
为证明本文引入权重信息构造词典的领域优势,实验将对比三种哈希结构词典:双字哈希(记为Dic_Hash)、字长双字哈希(记为Dic_ HashLen)以及本文提出的权重双字哈希(记为Dic_HashWei)的粗分效率。三种词典分词结果示例如表2所示,平均计算时间见图4。
表2 三种词典结果分词结果示例
图4 不同样本数量三种结构词典平均分词时间
由表2的分词结果及图4的平均分词时间可知,三种词典的不同构造方式,并不改变词语在词典中的相对位置,词语长度信息和权重信息的引入旨在缩小有效匹配范围,加快分词速度,对分词结果不构成任何影响。如图4所示,本文所提出的Dic_HashWei词典结构对分词效率有着较大的贡献,计算时间明显快于采用Dic_ Hash和Dic_ HashLen两种词典结构。由于缺乏领域知识,基于Dic_ Hash和Dic_ HashLen两种词典的分词算法在每一次匹配时都需遍历整个词典(概率),而基于Dic_HashFre的分词算法在每一次匹配时都有极大的概率在小规模的搜索范围内匹配到目标词语,随着数据集样本数量的增加,后者的计算时间大幅下降,在搜索的快速性方面具有明显的优势。
在此基础上,对比本文算法FCWS_WI与通用分词算法MTE-CRFs[4]以及领域分词算法:现有预警分词算法Bi-LSTM-CRF_WI[13]、石油领域分词算法HMM_O[12]、文献[15]中的领域纠正器算法(记为:DCF-GRU)在算计效率上的表现。实验结果如图5所示。
图5 不同样本数量五种分词算法平均计算时间
图5的结果表明,由机械分词算法、权重哈希双字词典和双向GRU-CRF模型建立的分词算法FCWS_WI能够快速的得到预警文本的分词结果。在样本数量为22242时,领域分词算法HMM_O、DCF-GRU、Bi-LSTM-CRF_WI平均分词时间接近本文FCWS_WI算法的5倍、8倍和13倍。更进一步的,即使是相对领域分词算法计算较为简单通用分词算法MTE-CRFs,其计算时间也是本文算法的2倍。相较而言,本文FCWS_WI分词算法更好的满足了预警信息第一时间发布的需求。
4.2 算法效果对比
4.2.1 评价指标
文本使用准确率、召回率和F值评价分词算法性能。其中,准确率是分词正确的单词数与分词结果总数的比率,衡量分词结果的查准率;召回率是分词正确的单词数与实际单词总数的比率,衡量的是分词结果的查全率。取值在0到1之间,越接近1准确率或召回率越高,具体定义如下:
4.2.2 预警领域分词结果
实验中用DB1训练分词模型,DB2作为测试数据,分别对比算法Bi-LSTM-CRF_WI、HMM_O以及本文算法FCWS_WI的分词效果。部分分词结果如表3所示。
表3 五种中文分词算法分词结果
在该段预警文本中,含有“大到暴雨”、“大暴雨”、“强降水”、“部分地区”等预警常用词语常用词汇和“将出现”、等歧义短语,红色标注错误分词结果。通用分词算法MTE-CRFs未考虑预警领域语义,对比领域分词算法分词能力较差。同时使用通用语料库和领域语料库训练模型的Bi-LSTM-CRF_WI算法、HMM_ O算法以及未考虑未来语义的DCF-GRU算法,在预警文本的切分上仍存在偏差。反观本文FCWS_WI算法,由于在训练模型时仅使用预警领域语料,领域适应性较强,上述词语均被有效识别并切分。三种算法的准确率、召回率和F值如表4所列。
表4 准确率、召回率及F值对比(单位:100%)
本文算法准确率、召回率及F值的结果都高于Bi-LSTM-CRF_WI算法和HMM_O算法,且都高于90%,进一步说明了本文算法在分词效果上的优越性。
5 结束语
作为国家应急体系的重要工作之一,预警信息的第一时间快速发布,对预警领域分词算法的效率和准确性作出了较高的要求。将领域纠正器模型作为理论基础,分析预警文本特性,提出了一种针对预警信息的领域分词模型。①引入权重信息构建哈希双字词典,在保证切分结果不变的前提下大幅度缩减匹配计算量,粗分效率提高可达6倍。② 仅采用已有合法预警文本构建领域语料库,选用小规模语料库应用效果较优的GRU模型进行建模,结构较为简单,分词速度相对于现有领域分词器提高了5-13倍。③考虑到未来语义信息对分词结果的影响,构建双向GRU-CRF模型,进一步提高领域适应性,在准确率、召回率和F值方面较现有分词算法提高5.06%、2.78%和3.9%。下一步工作是研究如何从领域语料中进一步提取语义信息,提高未登录词的处理能力。