乌格德勒李娟
摘要:本文首先介绍了蒙古文文本错误产生的原因和类型以及蒙古文正字法规则,重点介绍了3种蒙古文文本自動校对方法:包括基于词典与规则校对方法、基于有限状态自动机的校对方法、基于统计模型的校对方法等,最后探讨了蒙古文文本校对需要解决的问题和未来的发展方向。
关键词:蒙古文;自动校对;有限状态自动机;统计模型
中图分类号:TP311 文献标识码:A 文章编号:1009-3044(2016)35-0227-03
Survey of Mongolian Text Automatic Proofreading
BAO Wugedele1,2, LI Juan2
(1. Minzu University of China, Beijing 100081, China; 2. Hohhot Minzu College, Hohhot 010051, China)
Abstract: The causes and types of Mongolian text errors, and Mongolian orthography are first presented. Then, three kinds of Mongolian text automatic proofreading methods adopted are focused, including based on dictionary and rules, based on finite state automaton, and based on statistical model method. Finally, the problems need to be solved and the future developing directions of Mongolian text automatic proofreading are discussed.
Key words: Mongolian; automatic proofreading; finite state automaton(FSA); statistical model
随着蒙古文信息处理和互联网技术的发展,蒙古文语料库的规模也不断壮大。在对蒙古文进行词法分析、句法分析、语义分析时都需要高质量的标注语料库。由于蒙古文自身的语法特点,存在着大量的形同音不同的词和音同形不同的词,这就要求录入人员具有较高的蒙古语语法知识才能准确地录入蒙古文文本。但是,目前很多人还不能完全掌握这些语法知识,录入的蒙古文文本中存在大量的错误,需要经过校对以后才能作为进一步研究的原始语料。
自动校对指的是程序按照一定的算法自动检查文本中的错误并对错误进行纠错或提供纠错建议[1]。
1 蒙古文文本错误产生的原因和类型
1.1 编码转换产生的错误
由于蒙古文标准化工作的滞后,在蒙古文Unicode国际标准编码发布以前已经在市场上出现了多种蒙古文编码,这些编码统称为非国际标准编码,其中常用的编码包括:蒙科立编码、赛音编码、明安图编码、方正编码等。蒙科立、明安图和方正编码属于音形编码,赛音编码属于完全的形码,而Unicode国际标准编码则属于完全的音码。还有一个常用的蒙古文编码是拉丁编码,是由拉丁字母转写的编码,属于音码,它基本上能与Unicode国际标准编码一一对应,所以现在常用的蒙古文语料库都采用拉丁编码表示。
非国际标准编码存储的蒙古文转换为Unicode国际标准编码时,就会出现转换错误,因为这些编码并不是与Unicode国际标准编码一一对应,做不到完全正确的编码转换,所以转换成Unicode国际标准编码以后还需要校对。
1.2 键盘录入产生的错误
目前,常见的文字录入技术和方法主要有键盘录入、语音识别、文字识别和手写识别[2]。对于英文和中文以上四种方式录入的文本的正确率都很高,已达到应用要求,而对于蒙古文后三种识别技术还不能达到应用要求,所以键盘录入还是蒙古文的主要录入方式。蒙古文的原始语料基本上都是从键盘录入的。
现在人们常用的蒙古文输入法有蒙科立输入法、赛音输入法、明安图输入法、方正输入法和微软输入法(windows 7/8/10)等。除了微软输入法,其他输入法虽然简单易用,但是只能输入非国际标准编码的蒙古文,而微软输入法则可以输入Unicode国际标准编码蒙古文。微软输入法在输入分写词缀、分写元音、特殊字母变体时都需要使用不同的控制符,由于这些控制符的使用规则非常复杂,很多人滥用控制符而违反了蒙古文正字法规则,录入的词虽然在字形上完全正确,但是内部编码却是错误的。所以由微软输入法录入的Unicode国际标准编码蒙古文文本还需要校对以后才能使用。
1.3 蒙古文文本错误类型
蒙古文文本错误的类型与英文相同,包含非词错误、真词错误和句法语义错误[1],真词错误和句法语义错误属于上下文相关的错误。目前,蒙古文文本自动校对研究主要集中在非词检查和纠错上,而蒙古文非词错误又包括字形错误和读音错误,分别称为字形非词和读音非词。其中读音非词是指字形正确但是读音错误的单词,由于蒙古文普遍存在着形同音不同的词,所以读音非词错误也是非常普遍的。
蒙古文的读音非词错误是由于蒙古文的字母之间字形相同而错误录入造成的,具体包括[3]:
1)元音字形相同
蒙古文有8个元音,其中的第1和第2、第4和第5、第6和第7三对元音在词首、词中和词尾的形式都可以相同,第4、5、6、7元音的词中形式也可以相同。
2)元音和辅音字形相同
蒙古文辅音N的词中词尾形式可以与第1、2元音的词中词尾形式相同,辅音W的词中词尾形式可以与第8元音的词中词尾形式相同。
3)辅音字形相同
蒙古文的H和G、T和D这两对辅音在词首、词中和词尾的形式都可以相同。
2 蒙古文正字法規则
蒙古文文本校对原则是蒙古文正字法规则。蒙古文正字法是正确书写蒙古文的基本规则,是蒙古文语法的重要组成部分[4],包括词法规则和句法规则。现在的蒙古文文本自动校对研究都是基于词法规则的,没有涉及句法规则。文本校对中常用的蒙古文词法规则有:唇元音和谐规则、辅音和谐规则、元音阴阳和谐规则、名词的格附加成分使用规则、名词复数词缀使用规则、领属附加成分使用规则等。
3 蒙古文文本自动校对方法
目前的蒙古文文本自动校对方法可分为基于词典和规则的方法、基于有限状态自动机的方法、基于统计模型的方法等。其中基于有限状态自动机的校对方法其实也属于基于词典和规则的校对方法,不同的是使用有限状态自动机来组织和存储词典数据和规则。
3.1基于词典与规则的方法
1997年,华沙宝等开发了MHAHP蒙古文文本校对系统,该系统以蒙古文文本文件为操作对象,对文本中的单词按蒙古文正字法规则进行自动校对[5]。MHAHP系统使用的校对方法是一种基于蒙古文构形附加成份的推理算法,该系统由词根检验模块、动词构形附加成份检验模块和格附加成份检验模块等组成。
MHAHP系统把蒙古文文本中的错误分为以下4类:词根错误、动词构形附加成份错误、格附加成份错误、元音字母之间的阴阳性搭配错误等。由于词典规模的限制,MHAHP系统对动词构形附加成份错误和格附加成份的错误的校对才有效,而对另外两类错误的校对是无效的。另外,由于人名、地名以及外来词的书写方法往往和蒙古文正字法规则冲突,所以MHAHP系统也不能对它们进行校对。
2014年,江布勒等按照《信息技术传统蒙古文名义字符、变形显现字符和控制字符使用规则(GB25914-2010)》标准,研究了基于规则的蒙古文文本校对方法[6]。该方法首先以人工校对的方式认真统计人们的错误输入方式,对其进行分类统计,研究找出常犯的错误及错误的规律,根据这些规律研究出规则校对文本的方法。
该方法不仅可以校对不符合蒙古文正字法规则的错误单词,还能依据GB25914-2010标准校对错误使用的控制符,包括:3个蒙古文自由变体选择符、窄宽度无间断空格、元音间隔符、零宽连接符、零宽禁连接符等7个控制符。该方法在20种三百词左右的语料上进行实验,纠错率达到了90.2%。
3.2基于有限状态自动机的方法
2009年斯·劳格劳根据蒙古文特有的书写习惯和编码特点提出了一种基于有限状态自动机的校对算法[7]。该算法采用了常用的基于词典和规则的校对方法,但用有限状态自动机组织词典数据和规则后大大提高了算法的响应速度。该方法使用有限状态自动机建立了基于字形的蒙古文词法分析器和基于读音的蒙古文词法分析器。
该方法在随机抽取的10篇文章(每篇1万词)上进行实验,平均每篇文章的读音非词占总词数的38.85%,最后读音纠错算法的平均纠错率为92.09%。但是该方法主要适用于非词错误的自动检查和纠错(主要是读音非词错误),对真词、句法和语义错误的校对不太适用,同时还不具备同形词的自动识别功能。
2014年,廉冰也使用有限状态自动机理论,提出了一种基于有限状态自动机的蒙古文同形词校对方法[8]。该方法,首先以《蒙古文正字法词典》为依据,根据蒙古语单词的语法特征以及词的结构,构造词法分析器。然后使用蒙古文Unicode国际标准编码基本字符集、传统蒙古文名义字符的变形显现字符以及变形规则,建立同形字符规则库。最后,根据同形字符规则库,在词法分析器上进行启发式搜索,如果输入单词正确,则不做任何处理;如果输入单词错误,则用与其同形的单词对其纠错。
该方法使用有限状态自动机分别建立了蒙古文静词自动机(包括词干自动机和词尾后缀自动机)、动词自动机(包括词干自动机和词尾后缀自动机)、无变化词自动机。其中静词包括名词、形容词、数词、量词、时位词、代词等词类;无变化词包括副词、情态词、后置词、摹拟词、语气词、连接词等词类。同形词规则库包含了27对同形规则,每条规则不仅给出了同形字符的输入方式和编码,还给出了变形显现形式和同形条件。
该方法在3万词的语料库上进行实验,平均准确率为91.5%,平均召回率为84.9%。虽然该方法具备了同形词的校对功能,但是仍然不适用于真词、句法和语义错误的校对。
3.3基于统计模型的方法
2007年,赵军、敖其尔等人研究了基于音节统计的蒙古语校对方法,统计模型采用了一阶隐马尔科夫模型,语料来自3万词的电子词典[9]。实验结果显示,该方法的查错表现良好,对一些简单错误的纠错表现也很好,但是对一些复杂错误,校对结果不理想。
此后,赵军等人又提出了基于音节的2-gram蒙古文校对模型[10]。该模型是一个加权有向图,图中的每一个节点保存蒙古文的音节信息,节点之间的连接线上的权值表示节点之间的关联度。为了音节搜索的需要,在节点中加入了音节串、串长度、音节位置、最小词素串和后继指针等信息,采用了基于汉明距离的方法进行蒙古文音节相似性的度量。但是该方法没有给出最后的纠错率。
2010年,郝莉,敖登巴拉等人对蒙古文输入过程中出现的拼写错误进行了分析和归类,给出了用贝叶斯算法校正蒙古文单词拼写错误的实现方法[3]。贝叶斯算法是利用概率找出拼写错误单词的最可能的正确单词:在词汇V的所有单词中选择那些最可能给出已有的观察的单词,即选择使得P(单词|观察)为最大的那个单词。
该方法的测试语料来自内蒙古日报社2008年下半年的蒙古文新闻语料,共包含245460个单词,其中错误的单词1351个,训练语料是来自蒙古文正字法词典,包含34316个单词,两种语料均按蒙古文Unicode国际标准编码文本格式存储。最后该方法校对正确1204个单词,纠错率达到了89.2%。该方法较好地实现了上下文无关的蒙古文单词由于读音混淆造成的拼写错误(读音非词)的校对功能。
2013年,苏传捷、侯宏旭等人提出了一种基于统计翻译框架的传统蒙古文自动拼写校对方法,将拼写校对工作看成从错误词到正确词的翻译[11]。该方法首先利用人工校对前后的对应文本,根据传统蒙古文中拼写错误的原因与特点,选择基于短语的统计机器翻译模型作为框架来构建拼写校对模型,然后应用该校对模型对测试文本进行拼写校对。
该方法使用Moses开源工具包中的短语机器翻译模型训练工具和SRILM 开源工具包训练拼写校对模型,在训练中沿用机器翻译的经典特征集,包括正反向翻译概率、正反向词汇化权重、语言模型概率等。该方法的优点在于不依赖于语法知识,很容易移植到其他语言上或者与其他方法结合使用。
该方法在包含1026个正确词、1102个错误词的测试集上进行了测试,纠错率达到了97.55%。
4 存在的问题和研究趋势
总结目前的蒙古文文本自动校对研究,还有以下两个问题需要解决:
1)从实验结果看测试语料规模都比较小,一般在几万词左右,提出的校对方法能否适用于大规模语料还不得而知。
2)目前的校对方法只能校对上下文无关的非词错误,而不能校对上下文相关的真词错误和句法语义错误。
今后的研究趋势:
1)通过词语的固定搭配、N元模型等方法,研究上下文相关的真词错误和句法语义错误;
2)进一步扩大词典和规则库,提高纠错率;
3)通过扩充语料库的规模,验证校对方法的通用性和有效性。
参考文献:
[1] 斯·劳格劳.基于不确定有限自动机的蒙古文校对算法[J].中文信息学报,2009,23(6):110-115.
[2] 张仰森,俞士汶.文本自动校对技术研究综述[J].计算机应用研究,2006(6):8-12.
[3] 郝莉,敖登巴拉,巩政,等.基于贝叶斯算法的蒙古文文本自动校对研究[J].内蒙古大学学报:自然科学版,2010,41(4):440-442.
[4] 清格尔泰.蒙古语语法[M].呼和浩特.内蒙古人民出版社.1991.
[5] 華沙宝.现代蒙古文自动校对系统—MHAHP[J].内蒙古大学学报:人文社会科学版 ,1997(4):49-53.
[6] 江布勒.基于规则的蒙古文自动校对方法研究[D].呼和浩特:内蒙古大学, 2014.
[7] 斯·劳格劳.基于不确定有限自动机的蒙古文校对算法[J].中文信息学报,2009,23(6):110-115.
[8] 廉冰.基于有限状态自动机的蒙古文同形词校对方法的研究[D].呼和浩特:内蒙古大学,2014.
[9] 赵军,敖其尔,吉仁尼格,等.基于统计语言模型蒙古文词汇分析校正器的设计与实现[C]//第十一届全国民族语言文字信息学术研讨会,2007:158-163.
[10] 赵军.基于音节统计语言模型蒙古文词汇分析校正器的设计与实现[D].呼和浩特:内蒙古大学,2007.
[11] 苏传捷,侯宏旭,杨萍,等.基于统计翻译框架的蒙古文自动拼写校对方法[J].中文信息学报,2013,27(6):175-179.