中文文本的自动校对_自然语言处理论文

中文文本自动校对,本文主要内容关键词为:中文论文,文本论文,此文献不代表本站观点,内容供学术参考,文章仅供参考阅读下载。

[中图分类号]H086.6[文献标识码]A

[文章编号]1003—5397(2001)01—0020—08

一 引言

中文自动校对是近几年兴起的一个研究课题。随着出版业电子化的迅猛发展,其中校对环节的工作量大大增加,人工校对的方式已经无法适应迅速增长的电子文本的数量。因此自动校对的课题被提出来。校对人员希望能由计算机帮助其完成部分或全部校对工作,以减轻繁重的工作任务。除出版业之外,自动校对的技术还可以应用在语音输入、汉字识别、文本编辑、辅助教学等领域。中文的特点决定了中文文本自动校对的难度要远远高于英文等文字。目前国内已经出现了一些商业性的校对系统,如黑马、北成、方正、文捷等。然而这些系统的技术细节没有公布,性能指标也不清楚。中文文本自动校对的研究总的来说还处在刚刚起步的阶段。从事这方面研究的人员还不是很多,公开发表的论文也比较少。目前的中文自动校对方法多是字、词级别上的统计方法,它们使用的语言模型比较简单,利用的语言学知识也不丰富。一方面,中文自动校对方法的性能指标有待提高。另一方面,迄今为止还没有找到一种理论来解决自动校对中的侦错和纠错两个基本过程。似乎人在理解书面文本中的全部知识在文本校对中都是不可缺少的。那么在自动校对中究竟使用什么知识才能既使系统的性能指标达到让人满意的程度,又保证在目前自然语言处理的研究水平下这些知识的获取和使用都是可行的呢?

二 错误分类以及校对系统的评价参数

中文文本中的错误形式多种多样。根据错误的文字或符号,我们将其分成以下几种:

一)文字错误。这种错误占文本中所有错误的绝大多数,也是自动校对研究的重点。根据文字错误的具体表现形式,它又可以分成:

1.代换错误。包括:

①错字。指一个汉字错成另一个汉字。它包括:i )同音或近音错字。例如“彬彬有礼”错成“斌斌有礼”。ii)同形错字。例如“自己”错成“自已”。iii)输入编码相近的错字。例如在五笔字型输入法中,“晶”错成“昌”。

②多字代换错。它包括:i)正确字串是一个汉字, 错误字串是两字或多字的。ii )正确字串是两字或多字, 错误字串是一个汉字的。iii)正确和错误字串都是多个汉字的。 在使用键盘输入法输入的文本中,多字代换错误的正误对应字串通常是编码相近的词或词组。但在通过语音识别得到的文本中,则可能出现更复杂的情况。

2.非代换错误。包括:

①缺字错误。例如“计算机”错成“计算”。

②加字错误。例如“急起直追”错成“急起直追赶”。

③换位错误。例如“秘密”错成“密秘”。

二)标点错误。

三)数字错误。

四)其它字符错误。

在这几种错误中,文字错误的比例通常要占90%以上,标点错误占5%强。而在文字错误中,代换错误占80%左右,缺字错误占15%左右,加字错误占5%左右。 需要注意的是文本中错误类型的比例由于错误来源的不同会有很大的差别。

中文文本中的错误来源包括:撰写人员、输入人员、输入系统(如语音输入系统,OCR系统)等。不同来源文本中的错误表现不尽相同。 比如OCR得到的文本中基本上都是一一对应的代换错误; 而通过语音输入的文本就基本上没有纯粹的同形错字。这些情况也都是校对系统需要考虑的事情。

中文文本自动校对有两个基本任务:①侦错。即发现并警示出文本中的错误位置。②纠错。即给出所警示错误的改正方案。自动校对系统的评价指标主要有:

系统正确警示的错误数

召回率=─────────────×100%

文本中的错误总数

系统正确警示的错误数

准确率=─────────────×100%

系统警示的错误总数

系统正确给出纠错方案的数目

纠正率=───────────────×100%

系统正确警示的错误数

三 中英文自动校对的异同与N元侦错模型

英文自动校对的研究早在60年代就已经开展。今天它的技术也相对成熟,并且出现了一批实用的商业系统。由于英文等拼音文字的文本中词与词之间有明显的分隔符,所以它们的自动校对基本以词的校对为核心在两个层次上进行:

①非词错误(non-word error)。即字串不是词典中存在的词。例如“the”错成“teh”。

②真词错误(real word error)。即虽然字串是词典中的词, 但它与上下文搭配不当。例如“from”错成“form”。这里的搭配不当包括语法、语义等许多方面。

早期的英文非词错误的侦错方法受到计算机硬件条件的限制,多建立在字母的N元模型上。 这些方法试图通过发现罕见的字母接续(例如shj)来定位有拼写错误的词。 随着计算机存储能力和计算能力的迅速增长,非词错误的侦错方法基本都转移到查字典上。字典里有没有的字母串被认为有错。不依赖上下文的非词错误纠错称为孤立词纠错(isolated-word error correction),它的任务是为非词字母串寻找可能的正确候选词,并对这些候选进行排序。选择候选的主要依据是候选词和非词字母串的相似程度。具体的方法可以分成以下几大类:①最小编辑距离法;②相似编码(similarity key)法;③有容错能力的自动机方法;④N元模型的方法;⑤基于规则的方法;⑥概率的方法; ⑦神经网络的方法等。非词错误的校对方法比较成熟,而且在英文文本错误中,非词错误的比例占相当大。因此英文校对系统的实用性容易得到保证。

真词错误在文本错误中占的比例虽然不大,但其处理难度则比非词错误高得多。由于真词错误的校对必须依赖上下文,所以它又称为上下文相关的词校正(context-dependent word correction)。 真词错误的校对方法有两大类:基于规则的方法和基于统计的方法。英文校对中基于规则的方法占很大的比例。它主要有①基于接受的技术;②基于松弛的技术;③机遇期望的技术等三种主要方法。由于中文的灵活性,基于规则的方法目前还难以在中文自动校对问题上一展身手。关于英文校对更多的细节详见文献[7]。

基于统计的英文真词错误的检查与纠正与中文自动校对有一定的相似之处,其方法可以借鉴。早期的基于统计的真词错误校对方法主要使用前面讲的N元查错模型。这种模型也被多数中文自动校对方法所采用。英文中通常使用的N元模型主要有词和词性的二元、三元模型。 中文里还有汉字的二元、三元模型。以词的三元模型为例,设句子S=W[,1]W[,2]...W[,n],,其中W[,i]是词。当试图判断W[,i]是否有错时, 就是要看不等式P(W[,i]┃W[,i-2]W[,i-1])<δ是否成立。其中δ为预先设定的阈值。如果不等式成立,则认为W[,i](或其附近)有错。 不等式中条件概率可以用极大似然法得到:

P(W[,i]│W[,i-2]W[,i-1])=freq(W[,i-2]W[,i-1]W[,i])/freq(W[,i-2]W[,i-1])其中freq表示词串在语料库中出现的次数。实际使用中通常要通过平滑(折扣或插值)或聚类(词群,词间字模型)等方法解决数据稀疏的问题。一个简单的插值公式如下:

P(W[,i]│W[,i-2]W[,i-1])=a·Pr(W[,i]│W[,i-2]W[,i-1])+β·Pr (W[,i]│W[,i-1])+γ·Pr(W[,i]) 其中,0<α,β,γ<1,a+β+γ=1,Pr表示用最大似然法估计的概率值。关于数据稀疏的问题请详见文献[9]。

在一些使用词性N元模型查错的方法中, 由于一个词的词性可能有多种,因此通常在查错判断之前不得不额外引入自动词性标注的过程。而目前的自动词性标注技术采用的语言模型也是词性的N元模型, 它的基本任务就是寻找一条标记间接续强度最大的标记路径。这时,再使用与自动标注过程相同的依据进行查错无疑会掩盖掉许多错误。因此我们认为在目前的技术水平下,自动标记过程在校对中应该用其它方法解决。

中文特点决定了中文自动校对的难度比英文更大。①首先中文文本中词与词之间没有明显的分隔符,这意味着中文自动校对要想从字一层上升到词一层就必须引入自动切分过程。而中文自动切分本身就是一个很困难的课题。何况文本中的错误还会对切分产生各种干扰。②其次,非词的概念在中文校对中的几乎没有意义。在中文自动切分中,不能和相邻汉字形成两字或多字词的汉字被看成单字词输出。因此英文中的非词字串在中文中仅仅指不能单独成词且分词后落单的汉字。例如单独出现在句子中的“蝴蝶”中的“蝴”字。在全部6700多汉字中不可以单独成词出现的汉字有2300个左右,但是它们出现的频率非常低。③另外,中文的灵活性比英文大得多。这不仅给中文自动校对本身带来很大的困难,也使得在英文校对中基于规则的方法在中文自动校对中难以施展。

四 英文真词错误的校对方法

4.1 基本方法

造成英文真词的错误的原因有许多,包括打字错,如“out ”错成“our”,同音词混淆,如“there”错成“their”和用法错等。 目前英文的拼写检查系统都根据各种错误来源,将彼此容易混淆的词收集到一起,形成混淆集(confusion set)。一个混淆集合S={W[,1],W[,2]…,W[,n]}表示S中的每一个词W[,i]都容易在使用中与S中其它的词发生混淆。这就意味着当我们在待校对文本中遇到一个S中的词W[,i]时,就要考虑S中其它的词是否更适合该处的上下文。例如S={desert,desset},当遇到desert或dessert时, 就要考虑究竟是 dessert还是desert更适合该处的上下文。此时,英文真词错误的校对模型就转换成一个排歧的模型。模型的核心任务就是根据上下文从混淆集中选择一个最合适的词。选择的具体依据有以下几种:

(1)基线(Baseline)。这种方法总是建议S中在语料库中出现频度最高的词。

(2)上下文词(Context Words)。所谓“观其伴,知其意”。通过考察目标位置附近的词,可以完成排歧选择过程。例如对上面的例子S={desert,desset},如果上下文中出现arid,sand和sun 一类的词,我们可以认为目标词应该是desert ; 反之, 上下文中 chocolate 或delicious这样的词则在很大程度上暗示目标词应该是dessert。设对待判定的目标词C,包含它的混淆集为S={W[,1],W[,2],...,W[,n]},宽度为2k的上下文中依次出现的词为C[,-k]...,C[,-1],C[,1]...,C[,k] ,则一种办法是选择使条件概率P(W[,i]│C[,-k],...,C[,1]...,C[,k] )最大。根据贝叶斯公式:

其中P(C[,j]│W[,i])可以事先从语料库中统计得到。即便如此,还是有可能存在严重的数据稀疏问题。一方面,可以用平滑或等价类的方法解决数据稀疏。另一方面,可以忽略对排歧无用或是信息不足的词,而仅使用比较可靠的依据。

本方法中一个重要的参数是上下文窗口长度的一半k。Yarowsky 和Golding指出,对英文k=3,4时对解决局部的句法错误效果很好,并且有最好的总体效果。随着k值的增大,总体性能下降。Yarowsky还指出,较大的k值(20—50)适合解决一些语义错误。

(3)搭配(Collocation)。与上下文词方法不同的是,搭配考虑词之间的有序依赖关系。它反映目标词周围句法元素的特定模式。实际应用中,通常使用词性和词本身这两种句法元素。例如对混淆集S ={desert,desset},下面的一条同现规则(其中“_”表示目标词)

PREP the_

更多地建议目标词是desert。当同时使用词和词性两种句法元素的时候,会引起搭配重叠的问题。例如下面的三个同现:

PREP the_

in the_

the_

这种特征重叠的情况又称为冲突。解决冲突的办法是为每个搭配统计出权值以反映该搭配对具体目标词之间的支持度,然后删除权值低的搭配。同样,使用搭配特征进行校对时也需要解决数据稀疏问题。同时对排歧无用或是信息不足的搭配也应该被忽略。

搭配的方法中一个基本的参数是统计多长的搭配ι。目前可行的ι只有1,2,3。Golding发现ι取2时总体效果最好。 使用词性元素要解决一个词有多个可能词性标记的问题。解决的方法有①引入自动词性标记过程。②分别匹配所有可能的词性。③使用词性类的概念。

4.2 基于特征的真词校对方法

上下文词和同现的方法分别利用了词之间的有序和无序的依赖关系。为了综合两种方法的优势,Yarowsky和Golding 分别提出了几种不同的混合模型。这些模型的出发点在于将上下文词和搭配统一看成特征。所谓特征就是在特定目标的上下文中出现的语言现象,无论上下文词还是搭配,都是特征的一种。这些混合模型主要有:

(1)Decision List。对混淆集S, 在学习过程中先要找出所有对区分其中元素有用的特征,然后计算出每个特征对区分S 中各个词的可信度并根据该可信度将所有特征从大到小排列。在校对过程中,依次在上下文中匹配各个特征,由最先匹配上的特征来决定选择哪个词。这种方法将答案交给单个最强的证据,因此特征可信度的定义就显得非常重要。当S中只有两个元素{W[,1],W[,2]}时,对特征f,Yarowsky定义:

Decision List方法的细节请参考文献[6]。

( 2 ) Bayesian Classifier 。 与仅仅依靠一个最强特征的Decision List不同,Golding的Bayesian Classifier认为综合考虑每个上下文特征回得到更好的结果。设目标词为C,它的混淆集为S={W[,1],...W[,n]},在目标词的上下文中提取出的特征集合为F={f[,1],f[,2],...,f[,m]}。排歧的核心就是选择最大的P(W[,i]│F)。 这种方法的算法模型和搭配方法相似,但它面临更严重的特征冲突问题。冲突不仅存在于搭配特征和搭配特征之间,还存在于搭配特征和上下文词之间。Bayesian Classifier的细节请参考文献[4]。

(3)Winnow。与其他方法直接利用从语料库中统计得到的P(W │f)作为特征对特定词的支持度不同,本方法利用Winnow 模型从语料库中对不同的混淆集学习不同特征对各个词的支持程度。在基于特征的方法的学习中,特征空间巨大且特定目标只和空间中少数特征相关。Winnow非常适合这种学习问题。图1是区分dessert和desert的Winnow模型简单示例。图中间椭圆部分表示不同词的分类器θ。分类器对适合上下文的词取值为1,对不适合上下文的词取值为0。每个分类器和图中底部标出的许多上下文特征相关联,并且每个关联有不同的连接权值。对要判断的目标词以及从它的上下文中提取的特征集合F有:

其中ε为常数。所有连接的权值都是学习得到的。权值的学习就是当分类器判定错误的时候调整权值的过程。如果对以词x 为目标的上下文特征集合F,x的分类器判定的结果θ[,x](F)=0,则要提升F 中各个特征与θ[,x]连接的权值。如果对以词为目标的上下文特征集合F,x的混淆集中其它词y的分类器判定的结果θ[,y](F)=1,则要降低F中各个特征与θ[,y]连接的权值。图中的彼此重叠的椭圆表示选用不同的参数β训练得到的分类器。根据学习过程中不同参数分类器的表现,赋予它们不同的可信度权值v。校对时,Weighted Majority综合各个分类器结果的加权得分。最后比较器从中选择得分最高的词。关于Winnow方法的细节请参考文献[5]。

五 中文校对方法的研究现状

中文校对系统的研究起步较晚。目前多数方法采用第3 章介绍的字、词或词性的N元模型进行查错。这些方法的召回率在70%左右, 准确率在30%左右。这些方法包括:

(1)啄木鸟系统[10]。 啄木鸟系统是出现得比较早的中文自动校对系统。该系统的自动查错方法的出发点是文本中的绝大多数错误都导致切分后的落单单字词。因此它首先对句子分词并定位落单单字词。然后根据落单单字词的词频和它与前后两个汉字的接续强度给该单字词打分,最后将得分与一个预先设定的阈值比较来判断该单字词是否为错字。评分公式为S=f(fwd,f[,1],f[,2])。其中fwd为单字词的词频,f[,1],f[,2]为以互信息表示的落单字与前后汉字的接续强度。该系统的召回率在70%左右,准确率只有2.5%。 该方法本质上还仅仅是字一级的校对方法。

(2)张照煌的近似字集代换法[1]。张照煌首先根据四种汉字的相似类型:①同音或近音;②字形相近;③字义相近;④输入编码相近,生成各个汉字C的相似字集cfs(C)。 这与英文中的混淆集概念类似。设要检查的输入句子S=C[,1],C[,2],...,C[,n],其中C[,i]为汉字。该方法将句子中的每个汉字都用其近似字集中的汉字依次代换,得到cfs (C[,1])│·│cfs(C[,2])│...│cfs(C[,n])│个候选字串,然后用词间字二元模型和词性二元模型对各个字串进行评分,并考虑非原字扣分。最后选出得分最高的字串,其中的汉字与原句子中对应汉字不同的地方被认为有错。这是一个查错纠错一体的方法。它的召回率为76.64%,准确率为51.72%。具体的算法还利用动态规划降低时间和空间复杂度。

需要注意的是,由于使用的训练和测试文本的不同以及参数定义的差异,各个方法中的参数只能提供一个大概的参考,并没有绝对的可比性。除了上面介绍的一些通用的方法之外,许多针对中文文本中错误特点的方法也值得介绍:

(1)Chi-Hong Leung[8]只对句子切分后的落单字串用相似字集进行替换,并对替换后可能与前后字串形成新的两字或多字词的句子用词性二元模型评分选出最优。该方法同样利用了中文文本中绝大多数错误都导致切分后的落单字的特点。

(2)孙才[3]使用简单的前后件规则来解决部分句法错误。这些规则形如:

〈前件〉〈后件1〉...〈后件n〉其中〈前件〉是规则的激活模式。在校对过程中,如果一个句子中前件模式匹配成功,则要求至少有一个后件模式匹配成功,否则句子存在句法错误。例如句子“空想社会主义者之所以是空想社会主义者,因为在资本主义...”中,连词“因为”应该是“是因为”。 此时规则为:〈之所以〉〈是因为〉。

(3)长词的模糊匹配。在中文中,常常有这样的错误, 如“一文不名”错成“一文不明”,“生产关系”错成“手产关系”,“忠心耿耿”错成“忠耿耿”等。这类错误的特点是一个多字词中出现错字、缺字或多字等错误。通过长词的模糊匹配可以非常准确地把这些错误定位出来。目前,虽然有不少方法提到了模糊匹配的概念,但还没有人给出具体的高效算法。

前面提到的中文自动校对方法的主要问题在于:①语言模型简单。大多数方法使用字、词或词类n元语言模型。但是n元模型只反映局部的语言限制,而不包括长距离的语言限制。②多数方法都是只使用字、词或词类的n元模型中的一种模型,或孤立地分别使用其中的几种模型。 而真正综合使用多种模型时,应该有模型合一的过程或方法。③字词两个级别的校对没有很好地融合成一体。为此,我们设计了基于特征的中文自动校对方法[2]。该方法综合使用邻接词, 词性的三元接续关系,上下文语义类,词内邻接汉字四中特征模板。其中邻接词和词性的三元接续关系模板反映局部的有序的语法限制,上下文语义类则能反映较长范围的无序的语义限制,而词内邻接汉字更是针对中文文本中词与词之间没有明显的分隔符号的特点特别设计的。与许多其它方法一样,我们也引入混淆集的概念并将校对的任务近似为一个排歧问题。在特征学习方面采用Winnow方法。该方法的召回率达到85.1%,准确率达到51.2%。

六 中文文本自动校对展望

中文文本自动校对涉及到中文处理的各个领域,从最基本的自动分词,到语法语义分析等。虽然目前中文文本自动校对还处在刚刚起步阶段,但它遇到的困难是非常巨大的。我们认为从目前的研究水平看,有以下几个问题需要得到解决:①对错误类型以及错误在文本中引起的各种异常进行更加深入的分析。现有的分析受到错误实例缺少等许多条件的限制,不够充分。更细致的分析才能更清晰的指导校对的研究方向。②适合校对任务的语言学知识的引入。这些语言学知识可以是人工构造的,也可以是从大规模语料库中自动学习得到的。目前我们对什么样的知识能有效地提高中文文本校对的性能还不清楚。但似乎只用现有的字、词或词性的N元模型,校对系统的性能已经难以有所提高。 ③适合校对任务的语言模型的研究。在引入新知识的情况下,如何建立综合新老知识的语言模型也非常重要。④对中文的一些错误类型有针对性地提出解决方案。例如第五章提到的长词模糊匹配,以及针对加字错误中的重字错误的判断方法等。这些错误既占一定的比例,也有明显的表现特征,有希望用专门的方法解决。⑤解决好校对中的人名、地名的识别问题。

[收稿日期]2000—05—20

标签:;  ;  ;  ;  ;  

中文文本的自动校对_自然语言处理论文
下载Doc文档

猜你喜欢