基于有效子串标注的中文分词

时间:2022-10-19 08:39:09

基于有效子串标注的中文分词

摘要:由于基于已切分语料的学习方法和体系的兴起,中文分词在本世纪的头几年取得了显著的突破。尤其是2003年国际中文分词评测活动Bakeoff开展以来,基于字标注的统计学习方法引起了广泛关注。本文探讨这一学习框架的推广问题,以一种更为可靠的算法寻找更长的标注单元来实现中文分词的大规模语料学习,同时改进已有工作的不足。我们提出子串标注的一般化框架,包括两个步骤,一是确定有效子串词典的迭代最大匹配过滤算法,二是在给定文本上实现子串单元识别的双词典最大匹配算法。该方法的有效性在Bakeoff-2005评测语料上获得了验证。

关键词:计算机应用;中文信息处理;中文分词;基于子串标注的分词

中图分类号:TP391 文献标识码:A

1 引 言

中文分词技术随着基于切分语料的机器学习方法的兴起而在最近几年获得了显著突破。特别是SIGHAN①举办的国际中文分词评测(International Chinese Word Segmentation Bakeoff,简称Bakeoff)活动,提供多标准的训练和测试语料,让研究者们得以搁置困扰学界多年的切分标准问题,把研究集中到机器学习方法的改进上来。Bakeoff活动中,基于字标注的机器学习方法获得了广泛注意。此类方法在Bakeoff2005以及2006上获得了巨大成功,性能领先的系统几乎无一例外都应用了类似的标注学习的思想,形成中文分词研究中新的主流技术。

本文继续致力于这一技术的深化,考虑使用更长的子串作为基本的标注单元来实现更充分的分词知识学习。尽管已有一些工作考虑了这一思想,但是它们不能在单一的学习过程中获得理想的分词性能,而是依赖于附加的集成技术支撑。我们的改进是将子串单元的获取分解为两个步骤,提出使用改进的最大匹配算法来获得有效的子串标注单元。在Bakeoff语料上,所提出方法的有效性得到了验证。

2 学习模型

基于字标注①的分词方法实际上是将分词知识的学习转换成字串的标注过程。由于每个字在构造一个特定的词语时都占据一个构词位置,即字位,因此,可以将分词过程看成学习这个字位信息的机器学习过程。把分词过程视为字的标注问题的一个重要优势在于,它能够平衡地看待词表词和未登录词的识别问题。

2.1条件随机场模型

条件随机场(Conditional Random Fields,CRFs)是一个无向图上概率分布的学习框架,由Lafferty等首先引入到自然语言处理的串标引学习任务中来。最常用的一类CRF是线性链CRF,适用于我们的分词学习。记观测串为W=w1w2…wn,标记串(状态)序列Y=y1y2…yn,线性链CRF对一个给定串的标注,其概率定义为:

其中,Y是串的标注序列,W是待标记的字符,fk是特征函数,λk是对应的特征函数的权值,而t是标记,Z(W)是归一化因子,使上式成为概率分布。

CRF模型的参数估计通常使用L-BFGS算法来完成。CRF的解码过程,也就是求解未知串标注的过程,需要搜索计算该串上的一个最大联合概率,即

y*=arg maxYP(Y|W)

在线性链CRF上,这个计算任务可以用一般的Viterbi算法来有效地完成。

2.2 标注集和特征模板

分词本质上是对字串中的每一个字相应作出一个在该处切分与否的二值决策过程,已有的基于字标注的CRF分词系统大多使用二字位标注集。在基于最大熵模型的分词系统中,广泛使用的是四字位标注集。我们在Bakeoff-2006的参赛系统中,首次使用了六字位标注集口。已有的结果表明,较之于其他标注集,六字位标注集搭配适当的特征模板,能够获得更佳性能。

本文继续使用六字位标注集进行标注。我们记该集合为T=(B,B2,B3,M,E,S),其中,B、B2和B3分别表示一个词的前三字位置,M表示更后但非词尾的位置,E表示词尾,S表示单字词。表1中给出了六字位标注集对不同长度的词的标注例示。

条件随机场或最大熵学习中,用于表达语言特性的特征函数起核心作用。通常,所用的特征会按照某种定义被适当分组,称之为特征模板。在中文分词学习中,最重要也是最基本的特征模板,就是当前字符本身及其上下文各字符。我们使用的基本特征模板将使用6个字符组合:C-1,C0,C1,C-1C0,C0C-1,以及C-1C1。这里的下标0、-1和1分别指当前及其前后一个字符的位置。我们记这组特征模板为TMPT-H。为了便于比较,我们也将使用一组模板,它包括10组字符组合,C-2,C-1,C0,C1,C2,C-2C-1,C-1C0,C0C1,C0C2以及C-1C1。记这组模板为TMPT-R。该标注集定义详见表1。

3 从基于字到基于子串的标注:算法描述

关于分词的串标注学习中,迄今为止的工作绝大多数都是基于字的。诚然,在一般情形下,字是最基本的构词单元,但是,这种做法也会忽略掉很多有意义的组合信息。例如下面的句子:

(a)以/北京市/为/例/,/国有/粮食/企业/有/28家

(b)笔者/近日/采访/了/位于/北京/朝阳区/的/几家/粮食/批发/市场/和/集贸/市场

(c)烟波/浩渺/的/密云水库/,/是/首都/北京/的/重要/水源

这三个句子都包含有“北京”一词,高频而且固定,但是基于字标注的学习算法不能有效利用这一信息,依然会对“北”和“京”这两个字进行独立的标注学习。在解码的时候,算法也同样无法利用这一信息,而依然需要在系统规定的特征之外对这两个字的组合特性做出它们相互独立的概率假设。

因此,如果能够捕捉这种有效的高频子串,那么这种有意义的信息应该能用来改进分词的串学习的效果。在已有的工作中,高频词直接被抽取,作最终 所用的子串词典。子串标注方法,在训练语料上以词内最大匹配来标注子串单元,在无标记的测试文本上直接使用最大匹配算法。然而,由于所用的子串词典以及确定标注单元的切分算法不佳,导致了大量的标记跨越现象,影响最终性能。下面解释一下切分标记跨越。假设正确切分句子为:

(d)风湿性/心脏病/的/中医/疗法/介绍/如下

使用某个初始的子串词典进行最大匹配算法操作后,切分为

(e)风/湿/性/心脏/病/的/中/医疗/法/介绍/如/下

该切分中,“医疗”一词跨越了正确的切分标记“中医/疗法”。在这种情形,除非采用复杂的后处理技术进行弥补,否则,难以纠正这个标记跨越在学习训练中最终导致的性能损失。

为此,我们这里提出一个子串标注框架,分两个步骤,一个用来构造较为理想的子串词典,一个用来有效地从原始子串中标出所需的子串单元。针对第一个步骤,我们提出一种称之为迭代最大匹配过滤的算法,用来构造子串词典,其算法描述如下:

1.从训练用的已切分语料中按照某个截断频率抽取高频词构成初始的子串词典。

2.用这个词典对训练语料所有的字串进行最大匹配切分。

3.如果某个子串词典词跨越了训练语料中的切分标记,则从词典中去掉该词。

4.重复步骤2~3直到最大匹配切分在整个训练语料上不再导致任何切分标记跨越,此时获得的子串词典,是我们所构造的词典,用于下一步的操作。

针对第二个步骤,我们提出一种称之为双词典最大匹配算法,将基于字的串转为基于子串的标注单元,该算法描述如下:

1.使用第一个步骤获得子串词典(称之为主词典)以及另外一个辅助词典。

2.设置匹配位置p=1,表示从第一个字之前的位置开始匹配操作。

3.如果主词典中存在一个词长为L的词,能匹配从p到p+L的子串,并且,没有任何一个来自辅助词典的词跨越切分位置p+L,则在p+L处设置切分标记,匹配位置更新为p=p+L。否则,在p+1处设置切分标记,匹配位置更新为p=p+1。

4.重复步骤3直到整个串被匹配完毕。

5.由步骤4切分出来的字串的各个部分,用作为子串标注单元。

我们以上述的句子(d)(e)为例,如果获得的切分结果为

(f)风/湿/性/心脏/病/的/中/医/疗/法/介绍/如/下

则在(d)的标准切分下,我们所获得训练用的切分标注串为

这样,上节为字标注设计的标注集和特征模板,可以不加修改直接移植到基于子串的标注上来。所不同的是,标注单元全部由单个字符换成了以上算法标出的子串。

4 评 估

我们使用第二届国际分词竞赛(Bakeoff-2005)中的两组语料对上面提出的方法进行评估,一组是Big5码,一组是GB码。表2是这两组语料的统计数据。按照Bakeoff规则,在每种组语料库上又分封闭和开放两种测试:封闭测试只允许从同组的训练语料中获取知识来从事分词;开放测试则不受此约束。由于开放测试涉及的方法和语言资源变化多样,并不专对分词技术本身做出有效评价。考虑到本文研究的性质,我们仅在封闭测试条件下进行实验比较。我们使用基于词的F值作为评估标准,它是准确率P和召回率R的调和平均值:F=2RP/(R+P)。为了和相关工作比较,我们也同时列出词表词的召回率Riv和未登录词的召回率Roou

4.1 子串标注的效果

我们首先抽取部分高频词构造有效的子串词典。为了比较不同选择的效果,分别抽取1 000,2 000和3 000个最高频多字词作为初始的子串词典。通过迭代最大匹配过滤算法分别获得一个优化词典。相关的词数以及迭代次数信息如表3所示。

在以下的实验比较中,为简化起见,双词典最大匹配算法的辅助词典也重复使用过滤后的子串词典。表4给出了不同的子串标注算法下的标记跨越现象的统计。在每个词边界标记上出现一个跨越,我们记标记跨越一次。从表4可以看到,初始子串词典越大,标记跨越现象会越严重。

考虑到一次标记跨越将会导致两个词被切分错误,使得系统评估的F值遭到加倍的惩罚性损失,也就是,如果直接使用最大匹配算法进行子串标注而不做专门处理,以初始词典为3 000个词为例,按照表4中的数据,系统的F值将降低0.4~1个百分点。这是一个相当可观的性能损失。而依据所提出的算法,这一性能损失可以降低几十倍,说明所提出的算法具有很强的针对性。同时可以也注意到,仅使用双词典最大匹配算法能降低1/4~1/3的标记跨越,而仅使用过滤词典能将消解95%以上的标记跨越。这说明,子串词典的选择在这一标注框架下具有更为重要的意义。

为了比较,我们也重新实现了基于TMPT-R模板集和三标注集的分词学习系统。在不同的初始子串词典的情形下,该系统和TMPT-H模板集与六标注集搭配的分词系统的效果对比如表5所示,表征标注集后的o和w分别代表不使用和使用我们所提出的子串词典生成和标注策略。从表5中可以看到,所提出的子串词典过滤以及标注策略,在不同规模的子串词典、不同的特征和标注集下都获得更为稳定的性能。而不做专门处理的基于子串的标注,在某些情形下其性能低于基于字的标注。

4.2 与已有结果的比较

我们的结果和已有最佳结果的比较列在表6之中。这个表格中列出了Bakeoff-2005的最佳成绩以及该届Bakeoff封闭测试的最佳参赛者Tseng的成绩。同时,为了和已有工作作一个全面的比较,我们列出了Zhang完整系统的结果中报告的非正式Bakeoff-2005结果。

表6中的实验结果表明,我们基于子串标注的系统能够达到最佳的分词精度,基于子串标注的系统优于基于字标注的系统。同时,我们的结果也优于已有的类似的工作所获得结果。本文构建的是单一的基于子串标注的系统,但其性能优于中相应的单一的子串标注系统,同时,也优于其中使用了复杂集成技术的组合系统。作者认为基于字符或者子串标注的系统对未登录词的识别具有更大的贡献,而一个基于已知词典的概率分词方法能够更好地改进词表词的识别。因此,该文使用了一种加权方法来集成这两种分词系统(加权的权重是另外一个经验性参数,而非由自动学习获得)。我们的结果在此证明,仅使用单一的串标注学习方法,无需复杂的系统集成技术或者是自定义的后处理步骤,同样可以获得更好的性能。这再一次验证我们的结论,即,强调词表词信息的复合系统不一定优于单一的标注系统。

5 结论以及将来的工作

基于字标注的统计学习方法已经成为中文分词的主流技术。我们使用一种包含两个步骤的子串标注框架将这一方法推广到更为一般的情形。我们的研究目的是为了克服已有工作中的标记跨越问题,同时期望能够获得更高的分词性能。

在形式上,我们的直接目标是以一种更为可靠的算法寻找更长的标注单元来尽可能地捕捉有用的长串信息,从而改善中文分词的统计学习效能。我们提出了这种可靠的子串标注的一般化框架,它包括两个步骤,一是确定有效的子串词典,二是在给定文本上实现子串单元识别。对于前者,我们提出了一种迭代最大匹配过滤算法;对于后者,我们提出了一种双词典最大匹配算法。所提出方法的有效性在Bakeoff-2005的评估语料上获得了验证。实验结果表明,所提出的方法优于已有的最佳结果。同时,按照所提出的子串标注方法,所获得的基于子串的学习系统,也优于基于字标注的学习系统。

在未来的工作中,可以考虑有效地确定初始的子串词典。在本文的研究中,我们依然是依据经验性知识来确定初始的子串词典的规模,寻找更有效的判据来确定这个词典依然是一个很有意义的工作。其次,在子串的标注上,可以考虑使用概率算法来进一步改进标注的效果。

上一篇:讯宜国际:,网吧市场加速度 下一篇:基于加权二部图的汉日词对齐