首页 > 代码库 > 初出茅庐--文本自动校对技术综述

初出茅庐--文本自动校对技术综述

  申明:本博纯属个人对文本校对技术的偏好,以便于以后查阅。由于自己尚在学习探索中,内容不免有些显得不成熟,若有不当之处还请阅者指正。

  文本自动校对是自然语言处理的重要研究领域之一。可用个人书写文字的检查,也可满足出版社的大量较高需求。文本自动校对,分为集中技术,一是文字文字自动校对,即程式将文本中出现的错字,借助文法检查器的检查,一一标出,由使用者用眼看逐一校对。二是语音自动校对,即让语音程式将文本转成语音输出,让校稿人员来听,以发现错误。这种校对方式,属于比较弱的校对方式,更多的依赖于人的听觉与判断,以上属于官方描述。简单一点说就是,在一句话(或一段文本)中有些字词(或句子)出现得明显不合理,或者这句话本身就不合理,但机器不知道,所以需要设计一些方法来让机器识别并自动校对。有很多文档都有各种各样的错误,所以文本校对是相当有必要的。本人尚未接触语音方面的知识,所以本文主要描述文字方面的校对。下面是一些已有的关于文本校对方面的方法及其概述

  文本自动校对技术:

  1.英文文本自动校对简介

    英文文本的错误类型:

    a.非词错误,即文本中那些被词边界分隔出的字符串,根本就不是词典中的词。如输入错误: them->tehm, the->thr,         partition->patition, study->studdy等。(粗心或者外行人写英文都很容易造出自己的词,不是吗!!!)

    b.真词错误,即词典中存在,但却不是原本想要的词。如from->form,she->shed等。真词又分为上下文无关错误和上下文相关错    误。上下文无关,顾名思义即不需要联系上下文就可以判别的错误(局部错误);而上下文相关错误则是需要结合长距离词的匹配才能判别的错误,有时需要观察整句甚至整段才能判别。如a piece of cake->a peace of cake,introduce myself->introduce my self等。

    A:英文错词自动校对方法:

    1.查错方法:N-gram和查词典法。N-gram用在单词查错上是指对每个单词,取其n(一般去2、3)元字符串,判断这种字符串在构成单词时是否合法。判断是否合法的条件主要是在事先编辑好的N-gram表中查找,查看此字符串的频次,若频次过低则认为这种组合在成词上不合法,以此来判定词拼错,如“shj”或“het”就是错误的三元串。此方法依赖大规模的预料以便编辑N-gram表。而查词典发则比较粗暴,直接判断此单词是否在字典中存在,不存在则判定为错误。此方法的查词精度依赖于字典的规模,同时此方法也可让差错和纠错同时进行。(此时高效的查词算法大有用武之地了)

    2.纠错方法:误拼字典法、词形距离法、最小编辑距离法、相似键法、骨架键法、N-gram法、基于规则法、词典、神经网络技术等

    误拼词典法:收集大量真实语料库中文本拼写错误的单词,并给出其相应正确的词,构建一个无歧义的误拼字典(对应到中文中相当于字词的混淆集)。在进行拼写检查时,查询该字典,如果命中,则判定有错。并给出正确的拼写建议。(貌似这个方法好撮,随机性好大,拼写错误的方式千千万啊)

    词形距离法:一种基于最大相似度和最小串间距离的英文校对法。其核心思想是构造单词的似然性函数, 如该单词在词典中, 则单词拼写正确; 否则, 按照似然性函数, 在词典中找到一个与误拼单词最相似的词作为纠错候选词。该方法的特点是节省存储空间, 能反映一定的常见拼写错误统计规律, 是一种模糊校对法

    最小编辑距离法:通过计算误拼字符串与词典中某个词间的最小编辑距离来确定纠错候选词。所谓最小编辑距离是指将一个词串转换为另一个词串所需的最少的编辑操作次数( 编辑操作是指插入、删除、替换等) 。还有人提出了反向最小编辑距离法, 这种方法首先对每个可能的单个错误进行交换排列, 生成一个候选集, 然后, 通过查词典看哪些是有效的单词, 并将这些有效的单词作为误拼串的纠错建议(感觉和上面的词形距离法差不多,都是看相似程度)

    相似键法:相似键技术是将每个字符串与一个键(值)相对应, 使那些拼写相似的字符串具有相同或相似的键(值), 当计算出某个误拼字符串的键值之后, 它将给出一个指针, 指向所有与该误拼字符串相同或相似的单词, 并将它们作为给误拼字符串的纠错建议。

    骨架键法:通过构建骨架键词典, 在英文单词出现错误时, 先抽取出该错误单词的骨架键, 然后再去查骨架键词典,将词典中与该单词具有相同骨架键的正确单词作为该单词的纠错建议。另外还可以根据键盘的进行纠错也是一种可考虑的方法,根据人在拼写的单词时,容易将字母按成此字母周围的键而导致的错误,如:t->y,e->r等。这种错误可将单词进行逐个替换,然后逐个判断替换后的词。

    N-gram:基于n 元文法, 通过对大规模英文文本的统计得到单词与单词间的转移概率矩阵(即相当于邻接矩阵,表示在S1出现时后面接着出现S2的概率)。当检测到某英文单词不在词典中时,查转移概率矩阵, 取转移概率大于某给定阈值的单词为纠错建议。这里用到了概率论的知识,而概率是目前应对文本校对比较流行的做法。核心就是根据现实大量语料库统计相关词出现的频率,根据频率来判断待校对的文本的词频是否达标。

    基于规则法:利用规则的形式将通常的拼写错误模式进行表示, 这些规则可用来将拼写错误变换为有效的单词。对于一个误拼字符串, 应用所有合适的规则从词典中找到一些与之对应的单词作为结果,并对每个结果根据事先赋予生成它的规则的概率估计计算一个数值, 根据这个数值对所有候选结果排序。

    B:上下文相关错误的纠错方法:

    要联系上下文才能校对的错误比单词拼写错误纠正要难的多。如同音错误(peace和piece),字母排序错误(from和form),语法错误(between和among),词边界混淆错误(maybe和may be)等甚至还要判断是否出现缺词、叠词等等。这些词都是存在的真词,在拼写上都没错,但要找到并校对却绝非易事。要对这类错误进行校对, 必须使用上下文信息来判定哪些词在文本中出现是不合理的, 这些词可能就是潜在的错误。现有的基于上下文的文本错误校对方法有三类: ①利用文本的特征, 如字形特征、词性特征或上下文特征; ②利用概率统计特性进行上下文接续关系的分析; ③利用规则或语言学知识, 如语法规则、词搭配规则等。

    (1) 利用文本上下文的同现与搭配特征
    可以将文本的校对过程描述为词排歧过程。若称待校对的词为目标词, 则建立混淆集C = { W1 , ?, Wn} , 其中的每个词Wi 均与文本中的目标词容易发生混淆或歧义。如假设C ={ from, form} , 如果在文本中出现from或form时, 就将它看作是一个from与form之间的歧义, 校对的任务就是根据上下文决定哪个词是我们想要的词。上下文相关的校对问题由语句和语句中要被校正的词构成, Bayesian 方法和基于Winnow 的方法都是将这样的问题表示成有效特征表, 每一个有效特征表示目标词的上下文中有一个特殊的语言学模式存在。目前常使用的特征有两种类型: 上下文的词和词的搭配。上下文词特征用来检查在目标词周围的±k 个词的范围内是否有特殊词存在; 词搭配则用来检测在目标词的周围l个相邻词或词性标注的状态。如假设目标词的混淆集为{ weather, whether} ,若置k =10, l =2, 目标词的可用特征包括:

    ①目标词前后10 个词范围内的cloudy;
    ②当前词后为to +动词。
特征①就预示着当前词应为weather; 而② 则用来检查词搭配, 它表明当前词后紧接着一个“to + 动词”的结构, 表明当前词应取whether( 如I don’t know whether to laugh or cry) 。在这种方法中, 主要要解决的问题包括混淆集的求取; 目标词所在上下文中特征的表示, 即如何将语句的初始文本表示转换为有效特征。
    基于词语同现与搭配特征的校对方法有很多种, 较好的有Bayesian方法和基于Winnow方法。各种N-gram模型, 如长距离N-gram、触发对N-gram等模型, 都可以利用目标词上下文中的词同现特征或搭配特征, 采用最大似然估计法、互信息、相关度等方法检测文本中的错误, 并通过相邻词间的转移概率确定纠错候选词, 实现对目标词的校正。

    (2) 利用规则或语言学知识
    这种技术利用语言学家的语言学知识或句法语义规则去纠正文本中出现的错误。在基于语言学知识或规则的技术中,随着分析过程的进展, 系统将依据句法、语义和篇章结构知识,建立一个它希望在下一个位置看到的词的列表, 如果输入字符串的下一字符不在所期望的字符列表中, 则系统就认为检测到了一个错误, 并从其期望词表中选择一个词作为对其进行修正的候选词。

    (3) 利用概率统计学的方法

    概率统计学的既可独立成方法:如纯粹利用字与字、字与词、词与词等之间的临街程度来校对,这些邻接程度包括相邻的搭配概率和“远程”的搭配概率。而概率的求得则是利用大量的现实语料(现实生活中的正确文档)训练而来。

    概率统计也可用来辅助上面两个校对的方法。

    尽管对不同的错误类型目前形成了诸多的方法,但是对方法的选取也成了问题。到底哪些方法可取,或者还是考虑综合以及技术等,另外对技术的效率也有要求。

  2.中文文本中的错误类型与校对技术

    中文与西文的差异:

      ①文本结构不同。英语文本中词与词之间有空格, 而汉语文本无空格。②词结构不同。英语的词有形态变化( 时、数、量) ,而汉语缺少形态变化且汉语词类与句法成分之间不存在某种简单的对应关系。③ 字符进入计算机的方式不同。英文单词进入计算机是按字母一个个地录入, 而中文字符进入计算机只能借助汉字编码。这种输入过程不可能产生拼写错误, 即显示在计算机屏幕上的每个汉字都必须是汉字编码字符集中的一个单字, 绝不会是缺一点少一捺的错字。因此, 中文输入不会产生“非字错误”, 只能产生别字错误, 这些错误往往与要输入的字或词音同、音近或形近。④字符集规模的差异。英文的字符集是26 个字母加标点符号, 而汉语字符集则是一个包含了超过6 763 个汉字符的大字符集, 这将导致在应用语言模型时参数计算的极大困难。

    中文文本的错误类型:

      基本错误类型有(只考虑文字级的,不考虑符号,标点等):错词、叠词、缺词、替换、字词搭配错误、语法搭配错误等

    基本校对方法:① 利用文本上下文的字、词和词性等局部语言特征, 包括词性特征、同现特征或相互依存特征, 甚至包括字形特征等; ② 利用转移概率对相邻词间的接续关系进行分析; ③ 利用规则或语言学知识, 如语法规则、词搭配规则等。其实, 这些方法之间没有严格的界限,甚至一般是混合使用的。

    基本介绍:

    (1) 基于上下文的局部语言特征微软中国研究院设计实现了一个基于多特征的中文自动校对方法, 它综合考虑了汉语文本中字、词和词性的局部语言特征以及长距离的语言特征, 并采用Winnow 方法进行特征学习, 利用这些上下文特征对目标词混淆集中的词进行选择。其
主要难点是如何将目标语句转换为多元有效特征以及混淆集的获取。哈尔滨工业大学将对被校对的句子中的每个字词寻找其可能的候选, 构成句子的字词候选矩阵, 在此基础上, 利用语言本身所具有的结构特征与统计特征, 从候选矩阵中选出句子的最佳字词候选序列, 将其与原句对照, 找出错误的字词,并以第一候选加以改正。语言结构特征的获取则应用t 元规则对字词候选矩阵中的字词进行捆绑与剪枝, 形成语言结构元素, 并将其构成元素格子图, 然后借助文本统计特征, 应用Markov 模型从语言结构元素格子图中寻找一条最佳的元素路径, 即为从候选矩阵中寻找的待校对语句的最佳句子。该方法的关键是候选矩阵构造以及语言结构特征的获取, 由于候选矩阵中只选择了同音字, 因而, 目前仅适于校对拼音输入法形成的文本。其主要难点在于特征的统一表示与格子图中的有效候选路径的求取

    (2) 基于规则
    北京师范大学利用校正文法规则对文稿进行校对, 若句子满足校正文法规则, 则根据规则把相应字词标记错误, 但有限的规则很难覆盖大量难以预料的错误现象, 查错能力有限。哈尔滨工业大学则以小句为单位, 对汉语句子进行三遍扫描, 通过自动分词、自动识别生词、用短语规则将单字词散串合成短语, 逐步把正确的字符串捆扎起来, 将不能捆绑的剩余单字符串判定为错误。其不足之处是有限的短语捆扎规则难以覆盖大量的语言现象, 短语的捆扎缺乏定量的判断依据, 查错算法只能查出单字( 串) 错误, 不能查出多字词的替换错误,比如“用户社会主义制度”这样的错误就无法查出。吴岩等人还提出了一种词匹配和语法分析相结合的校对方法。采用规则与统计相结合的方法, 不使用大规模语料库, 通过逆向最大匹配和局部语料统计算法发现散串, 并对散串进行词匹配和语法分析处理, 进而发现候选错误字串, 由人机交互的方法对错误串进行自动校正, 取得了较高的查错率。
    (3) 基于统计
    张照煌提出一种利用综合近似字集替换, 并用统计语言模型评分的方法, 其基本思想是以事先整理好字形、字音、字义或输入码相近字的综合近似字集替换待校对句子中的每个汉字, 产生许多候选字符串( 或许多路径) , 利用统计语言模型对各候选字符串评分, 将评分最高的字符串与待校对文本中的句子进行对照, 即可发现错误之所在并提供相对应的正确字。该方法的难点是如何整理综合近似字集, 且若近似字集较大的话, 计算量是非常大的; 其不足之处是只能校对所谓的别字错误, 对多字、漏字、易位等错误难以发现。东北大学提出了一种混合文本校对方法HMCTC, 采用模式匹配方法进行最长匹配分词, 发现长词错误; 然后根据类三元语法, 将与前后相邻词同现频率乘积小于一定阈值的词标记为错误; 最后对词进行语法属性标注, 在不可能的语法标注序列字词处作错误标记。其缺点是基于词语同现频率的查错判据受限于训练语料的大小和语料选取的领域, 且词语同现频率数据的获取需要大规模经过切分的熟语料, 而这样的熟语料是难以获得的。清华大学利用语料库统计知识指导文本校对, 以句为单位, 把句子看作字段和词段, 对字段计算字段平均字频、字段平均转移概率;对词段计算词间字转移概率、词性转移概率, 将转移概率作为查错判据, 把转移概率小于阈值的字或词作为查出的错误。其中, 查错判据是自动查错研究的核心, 仍有待于进一步研究。北京工业大学计算机学院在对大规模语料库的统计分析基础上, 构建了二字结构工程并引入人名、地名辨识规则, 利用词语类间的接续关系进行查错, 对人名、地名误报率低。

                           注:本文中的方法介绍来自张仰森和俞士汶的《文本自动校对技术研究综述》