热门论文:
  • 网站首页 > 计算机类硕士 > 计算机理论 > 一种基于层叠CRF的古文断句与句读标记方法
  • 一种基于层叠CRF的古文断句与句读标记方法

    作者:张 合 王晓东 杨建宇 周卫东 【 2009-10-12 23:38:31 】
    【字体: (右键暂停)

      0 引言
      
      古汉语是中华民族悠久历史文化的积淀,利用自然语言理解技术对古文进行挖掘对发扬我国古代灿烂的历史文化具有重要意义。无标点符号是古代汉语的重要特点之一,大量未修订的古籍均是无标点符号的文本。本文针对古文句子缺少标点符号的问题,研究了条件随机场(conditional random fields, CRF)模型在古文句子切分与标点符号自动标注的应用,设计了在一个六字位标记集的基础上,提出基于层叠式条件随机场模型的古文断句与句读标记算法,开发出了集训练、解码、评测为一体的古文句子切分与标点符号标注工具包。实验显示,本文提出的方法在封闭测试中断句与句读标注的F值分别达到96.48%和91.35%,开放测试中断句与句读标注的F值分别达到71.42%和67.67%,具有较好的效果。
      
      1 问题的难点与相关研究
      
      本文要解决的问题是设计算法对无标点的古文文本进行句子切分,确定句读后进行标点符号的自动标注,包括逗号、句号、问号、分号、感叹号、冒号、引号等。不等同于句子边界的识别问题,句子边界识别是识别作为句子边界的句号,其实质是对自然语言文本中出现的句号根据前后文进行消歧[1]。对于无标点的古文,句子切分与标点符号自动标注是一个新颖而困难的问题,其难点主要体现在以下几个方面:
      a)古文具有严重的数据稀疏现象。相对于现代汉语的海量数据,古文数据的来源主要依靠于典藏和考古发掘,这使得可获取的古文总量较少。
      b)古文具有词、句简练,单字成词甚至成句现象普遍的特点,如“善曰:囅,敕忍切。,呼来切。”“子以四教:文、行、忠、信。”等。这也使得古文的语言数据量减少,同时预测古文句子切分位置及标点符号所依赖的局部前后文信息变少,增加了句子切分和标点符号标注的难度。
      c)古文分词界限模糊,词性标注歧义较多,很难进行词的切分,无法利用词一级的特征以及词性特征进行切分与标点符号位置的预测,只能利用有关单字或字串方面的信息来进行决策。
      d)古文文体迥异,年代跨度大。例如《老子》《水经注》《左传》《诗经》等,每一种文体都有自己独特的风格,且具有的文本数量少,很难获取训练语言模型所需要的足够样本,因此加剧了数据稀疏问题以及语言模型的复杂程度。
      目前,人们在英语和现代汉语句子边界识别方面进行了大量的研究工作,提出了一系列基于规则和基于统计的识别算法,达到了99%左右的准确率,但是针对古文的句子切分和标点符号标注的相关研究还不是太多。北京大学计算机语言学研究所的胡俊峰等人[12]针对古文诗词开展研究,开发了唐宋诗计算机辅助研究系统。该系统以全唐诗(481万字)和宋代部分名家诗(160万字)组成的语料库为基础,运用计算语言学方法对唐宋诗进行分析研究,提取了唐宋诗中的词汇,计5万余条目。在对诗文进行词语切分的基础上,建立了词汇的共现关系、对仗关系以及词汇的作者分布特征信息。系统除了提供面向诗文内容的全文检索功能外,还进一步开发了基于词汇的统计分析和诗句相似性检索等功能,实现了对全唐诗的自动注音。四川大学计算机学院的陈天莹等人[3]提出了一种基于前后文n-gram模型的古文句子切分方法,通过收集上下文信息,对切分位置进行比较准确的预测。该方法能够较好地处理小规模训练语料的情况,降低数据稀疏对切分准确率的影响。采用《论语》对提出的算法进行句子切分实验,达到了81%的召回率和52%的准确率。两者运用自然语言理解技术针对不同的目标,从不同的角度分别对古文进行研究。虽然研究中都涉及到古文的句子切分,但是并没有涉及句读标记的研究,而且还没有开发出功能全面的古文断句与句读自动标注的工具包。本研究的目的是研究新的古汉语断句与句读标记的算法,最终设计、开发一套功能全面的古文断句与句读标记工具集。
         2 CRF模型研究
      
      2.1 CRF的图结构
      CRF是无向图模型的一种形式。定义G=(V,E)是一个无向图,Y={Yv|v∈V},即V中的每个节点对应着一个随机变量所表示的标记序列的成分Yv。因而,整个图和与图相关的分布类别以X为条件,与G相关的联合分布的类别的形式是P(y1,…,yn|X)。这里y和X分别是类别序列和观测序列。如果每个随机变量Yv满足关于G的马尔可夫属性,给定X和Yv以外的所有随机变量Y(u|u≠v,{u,v}∈V),则随机变量Yv的概率式为:P(Yv|X,Yu,u≠v)=P(Yv|X,Yu,u~v)。其中:u~v表示u与 v在图G中相邻,那么(X,Y)就是一个条件随机场[4]。最简单的CRF图模型是线性链条件随机场(Linear-chain CRF),本文采取的就是这种模型结构,如图1所示。
      2.2 CRF的势函数表示
      在给定观测序列X的情况下,Lafferty等定义了标记序列Y的概率是势函数(potential function)乘积的一个归一化形式,其中每个因子形式如下:
      exp(∑jλjtj(Yi-1,Yi,X,i)+∑kμksk(Yi,X,i))
      其中:tj(Yi-1,Yi,X,i)是关于整个观测序列和位置i以及i-1标记的特征函数;sk(Yi,X,i)是关于位置i的标记和观测序列的状态特征函数;λj和μk是特征权重,可从训练语料中估计得到。
      对于一个给定观测序列X=X1,X2,…,Xi,…,Xn,其对应的标记序列Y=Y1,Y2,…,Yi,…,Yn的概率公式为[4]P(Y|X,λ)=(1/Z(X))exp(∑jλjFj(Y,X))。其中Z(X)是归一化因子(normalization factor),Z(X)=∑Yexp(∑jλjFj(Y,X))。这样就可以表示出P(Y|X)了。
      2.3 CRF的参数估计
      建立CRF模型的主要任务就是从样本数据中估计得到特征权重λ。CRF参数估计可以使用最大似然估计(maximum likelihood estimation,MLE)和贝叶斯估计(Bayes Estimation)。本文主要介绍用MLE估计CRF的模型参数。
      在训练集T={〈Xk,Yk〉}中,最大似然参数估计就是假设P(Y|X,λ)为λ的函数,使P(Y|X,λ)的对数值最大的λ为估计值。其似然值和最大值分别如下:
      LΛ=∑TlogP(Yk|Xk,λ)=
      ∑Tlog(1/Z(Xk))exp(∑jλjFj(Yk,Xk))=
      ∑T(∑jλjFj(Yk,Xk)-log(Z(Xk)))
      Λ=argmaxλ∑TlogP(Yk|Xk,λ)
      由于LΛ为凸函数,导数为零点为最值点,故对λ求导:LΛ/λj=∑T(∑jFj(Yk,Xk)-EP(Y|Xk)[Fk(Y,Xk)]),简写为LΛ/λj=Oj-Ej=0。其中:Oj为λj在训练集T中出现的频率;Ej=∑TEP(Y|Xk)[Fk(Y,Xk)]是λj在模型分布中的特征期望。直接计算Ej需要很大的计算量,通常使用动态规划的方法求解。
      
      3 基于层叠CRF的古文断句与句读标记的原理
      
      本文的目的是对无标点的古文文本进行句子切分,确定标点符号的位置并进行自动标注。该目标主要包括两个任务:句子边界确定和句读标记。古汉语可用的知识相对贫乏,尽可能地探寻新的特征参数用于模型训练是一种比较可行的提高最终效果的思路,由此需要引入多层次的条件随机场模型。目前主要有层叠式模型和层次式模型两种多层次条件随机场模型。相比层次式模型,层叠式模型多个模型之间呈线性组合,不同层次模型间是一种松耦合的关系,各层模型可以独立地建立,整个模型的复杂度与句子的长度呈线性关系[5]。因此,本文引入层叠式的条件随机场模型用于古汉语的断句与句读标记,提出了基于层叠式条件随机场模型的古汉语断句与句读标记算法,如图2所示。图2中空心圈表示观察序列,实心圈表示状态。低层的条件随机场模型仅以观察序列为条件,用于句子边界的确定,低层结果再传递到高层模型,这样高层模型的输入参数不仅包含观察序列,而且包含了来自低层模型的结果信息,从而为高层条件随机场模型对句读的标记提供了更多可用的知识。
      按照这种思路,本文分别定义句子边界确定和标点符号标注的标记集,句子切分与标点符号标注分为两个阶段分别进行。句子边界确定阶段使用观察值作为特征参数训练CRF模型,句读标注阶段把观察值和句子边界确定的结果共同作为特征参数训练模型。可以看出,基于层叠式条件随机场模型方法的主要特点包括:a)用于句读标记的高层条件随机场模型同时以观察值和低层句子边界信息作为输入特征参数,具有更多的决策知识;b)两个阶段标记集分别单独定义能够充分考虑不同任务的具体特点。
      
      4 特征的选择与特征参数构造
      
      4.1 六字位标记集的设计
      句子边界确定本质上是对字串中的每一个字做出一个在该处切分与否的二值决策过程。标点符号自动标注实际上是为每一个切分位置确定一个标点符号并标注的过程。可以根据汉字在句子中出现的不同位置标注不同的标签,如用B标示句子的开始,I标示非句子的开始。同样可以根据汉字后面的标点符号不同,标注不同的标签,如J标示该汉字后面是一个句号,D标示后面是一个逗号。这样,句子的切分和标点符号标注的问题就被转换成了一个纯粹的序列数据标记问题[6]。标记集设计的合理与否对最终效果有比较大的影响,所以标记集的设计应尽可能地与语言特点相吻合。
      在定义标记集时充分考虑了古汉语的特点:a)古汉语句子具有明显的边界特征,句子结束位置经常会出现“者”、“也”等,因此标记集要能够描述句子末尾几个字;b)古汉语单字成句的现象比较普遍,因此可以考虑用一个标记表示单字句。最终本文设计了一种六字位的标记集T1={B,M,E3,E2,E,S}用于古汉语句子边界的描述。其中:B表示句子开始位置;M表示非句尾;E3, E2, E分别表示句子的末尾三个汉字;S表示单字句。表1给出了使用该标记集标注句子的示例。用于标点符号的标记集只需描述句子边界后面紧临的字即可,定义为T2={J,D,W,F,G,M,Y}。其中:J表示该字后面是句号;D表示后面是逗号;W表示后面是问号;F表示后面是分号;G表示后面是感叹号;M表示后面是冒号;Y表示后面是引号。
      ……
      4.2 特征模板的构造
      条件随机场或最大熵学习中,用于表达语言特性的特征函数起核心作用。如何针对特定的任务为模型选择合适的特征集合,用简单的特征表示复杂的语言现象是条件随机场模型中一个非常重要的因素。通常,特征会按照某种定义被适当分组,称之为特征模板[7]。古文句子切分和标点符号标注时,特征模板的选择与构造是最基本且重要的问题,直接影响模型训练的准确性。根据分析可知,古文单字成词的情况比较普遍,上下文中没有太多可用的信息。大量实验表明,古文句子切分及标点符号标注时考虑当前特征、前一个特征及后一个特征的效果是最好的。表2给出了句子切分的特征模板。由于标点符号标注以句子切分结果作为特征参数,除了表2中所示的特征模板外还使用了新的特征模板,如表3所示。
         条件随机场的训练目标是在给定一个训练数据集D={〈0,1〉(1),…,〈0,1〉(i),…,〈0,1〉(n)}的条件下,最大化训练集的对数似然(log-likelihood):
      LΛ=∑Nj=1log(PΛ(l(j)|O(j))-∑Kk=1(λ2k/(2σ2))
      其中:式中的第二项是用于提供平滑处理的特征参数的高斯先验值,σ2表示先验方差。本文使用L-BFGS算法实现对目标函数的优化求解。L-BFGS[8]是一种充分利用以前梯度和修改值来近似曲率值的二阶方法,可以避免准确的Hessian矩阵的逆矩阵计算,因而使用L-BFGS算法进行CRF训练只要求提供似然函数的一阶层数,假定第j个训练实例的标注使其状态序列不产生二义性,且S(j)表示那条路径,则训练数据集的对数似然的一阶层数为L/λk=[∑Nj=1Ck(s(j),σ(j))]-[∑Nj=1∑PΛ(s|s(j))Ck(s,o(j))]λk/σ2。其中:Ck(s,o)表示fk在串s中各个位置t的和,则式中前两项相应于特征fk的经验期望值E~[fk]与关于模型的期望值EΛ[fk]的差,对它们的计算,可采用动态规划算法高效地实现。
      
      5 实验结果与分析
      
      虽然北大计算语言所开发出了古代诗词语料库,但是,对于大量文体迥异的古代汉语,目前还没有比较权威的语料库可用。因此,实验所用的数据是用网络上随机抓取的包括《老子》《水经注》《战国策》《左传》《赤壁赋》《出师表》等多种文体大约5 M的古文语料,包括257 325个句子。
      数据序列标注任务可以看做是从所有测试数据中找出满足某种要求的数据进行标注的过程。假设用全集U表示所有的测试数据,集合A表示满足要求却没有被系统标出的数据,集合B表示不满足要求却被系统标出的数据,集合C表示系统标出的满足要求的数据,集合D表示不满足要求且系统也没有标出的数据,则A与C的并集A+C表示满足要求的数据,B与C的并集B+C表示系统标出的数据。那么系统标注的准确率(P)、召回率(R)、F值可定义如下:
      P=C/(B+C)
      R=C/(A+C)
      Fβ=(β2+1)×P×R/(β2×P+R)
      上述三个指标是通常使用的评测指标,Fβ表示准确率和召回率的平衡,β通常取1,即F1值。本文后面实验将采用这三个指标进行结果的评测。
      根据测试集和训练集的不同关系,可以将评测分为封闭测试和开放测试。为了能够充分评价基于层叠条件随机场的古文断句与句读标记算法的效果,本文做了四组实验。其中前两组实验是本文算法的封闭测试与开放测试,如表4所示;后两组是传统条件随机场模型的封闭测试与开放测试,如表5所示。封闭测试时,训练数据为全部古文语料,测试数据是其中随机抽取20%组成的子集。开放测试时,训练数据为随机抽取80%组成的集合,剩下的20%作为测试数据。实验结果表明,基于层叠条件随机场模型的方法将低层模型的断句信息作为特征引入句读标记过程,增加了句读标记阶段可用的特征参数;另一方面,基于层叠模型的方法针对不同阶段的任务设计不同的标记集,便于更好地描述语言特点。因此句子切分和标点标注的性能均有明显提升,尤其是标点符号标注的召回率得到了较大的提高。
      
      6 结束语
      
      本文研究了CRF模型在古文句子切分与标点符号自动标注的应用,设计了能够更好描述古文语言特点的六字位标记集,提出了基于层叠条件随机场模型的算法。实验结果证明,基于层叠条件随机场模型的算法的性能较传统方法有了明显提升,是一种比较理想的古文断句与句读标注方法。
      古文可用的特征比较少,如何利用已有信息发掘新的特征,进一步提高古文断句和句读标注算法的性能将是下一步努力的方向。
      
      参考文献:
      [1]CHAROENPORNSAWAT P, SORNLERTLAMVANICH V. Automa-tic sentence break disambiguation for Thai[C]//Proc of ICCPOL’01. 2001:231-235.
      [2]胡俊峰,俞士汶. 唐宋诗之计算机辅助深层研究[J]. 北京大学学报:自然科学版,2001,37(5):727-733.
      [3]陈天莹,陈蓉,潘璐璐,等.基于前后文n-gram模型的古汉语句子切分[J].计算机工程,2007,33(2):192-193.
      [4]LAFFERTY J, McCALLUM A, PEREIRA F. Conditional random field: probabilistic models for segmenting and labeling sequence data[C]//Proc of the 18th International Conference on Machine Lear-ning. San Francisco: Morgan Kaufmann Publishers, 2001: 282-289.
      [5]刘群,张华平,俞鸿魁,等. 基于层叠隐马模型的汉语词法分析[J]. 计算机研究与发展, 2004,41(8):1421-1429.
      [6]赵海,揭春雨.基于有效子串标注的中文分词[J]. 中文信息学报,2007,21(5):8-13.
      [7]ZHAO Hai, HUANG Chang-ning, LI Mu. An improved Chinese word segmentation system with conditional random field[C]//Proc of the 15th SIGHAN Workshop on Chinese Language Processing. Sydney: [s.n.], 2006:162-165.
      [8]NOCEDAL J, WRIGHT S J. Numerical optimization[M]. New York: Springer, 1999:194-200.
     

    复制地址 】【 收藏 】 【 打印 】 【 关闭

    联系电话:0591-87230077,13675012021 杨老师、刘老师 电子邮件:papers8@qq.com QQ:250537075,860350187

    版权所有 中华论文库 Copyright (C) 2007-2008

    闽ICP备09069815号