首页> 中国专利> 一种蒙古文自动校正方法

一种蒙古文自动校正方法

摘要

本发明公开了一种蒙古文自动校正方法,属于语言校正技术领域,首先对输入的蒙古文文本进行预处理、中间码转换,并对中间码进行词干词缀切分判断该词是否是集内词;然后对集内词进行基于词典和规则的方法进行校正,对未登录词不做处理原样输出;对转换后的同形多音词采用语言模型选择最优转换结果输出,对转换后的同形单音词直接输出;最后将集内词和未登录词的校正结果合并,即得到校正完成的文本。采用中间码将文本中所有显现形式相同但编码不同的蒙古文单词进行统一表示,采用基于词典和规则的方法对集内词进行校正,解决了现有技术中人工统计错误输入方式容易出错,且存在很大局限性的问题。

著录项

  • 公开/公告号CN106339367A

    专利类型发明专利

  • 公开/公告日2017-01-18

    原文格式PDF

  • 申请/专利权人 内蒙古大学;

    申请/专利号CN201610706212.0

  • 发明设计人 飞龙;路敏;高光来;

    申请日2016-08-22

  • 分类号G06F17/27;

  • 代理机构北京国坤专利代理事务所(普通合伙);

  • 代理人郭伟红

  • 地址 010021 内蒙古自治区呼和浩特市大学西街235号

  • 入库时间 2023-06-19 01:24:14

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2018-09-18

    授权

    授权

  • 2017-02-15

    实质审查的生效 IPC(主分类):G06F17/27 申请日:20160822

    实质审查的生效

  • 2017-01-18

    公开

    公开

说明书

技术领域

本发明属于语言校正技术领域,涉及一种蒙古文自动校正方法。

背景技术

蒙古文是蒙古族人民的主要语言,是我国内蒙古自治区的主体文字。由于蒙古文的书写方式与汉文和西文有着很大的不同,它被认为是最难信息化的文字之一。它包含35个字母,单词中字母上、中、下位置的不同将导致写法也不相同,并且有些字母在单词中存在相同的显现形式。由于相当一部分用户录入蒙古文时只在乎显现形式正确与否,而不关心蒙古文单词的正确拼写方式,胡乱使用相同显现形式代替正确的字母,现有的蒙古文文本资源中,存在大量的显现形式相同,但编码不正确的蒙古文单词。这严重制约着蒙古文信息处理研究的发展。因此亟需对这种文本进行自动校正,使之变成准确的、可用于信息处理的语料。

对于蒙古文文本语料中的显现形式相同但编码不同的错误蒙古文单词学者们提出了很多校正方法。“基于音节统计语言模型蒙古文词汇分析校正器的设计与实现,赵军,民族语言文字信息技术研究——第十一届全国民族语言文字信息学术研讨会论文集,2007年”和“基于统计翻译框架的蒙古文自动拼写校对方法,苏传捷,中文信息学报,2013年6月”都采用语言模型研究了蒙古文校正问题,“基于不确定有限自动机的蒙古文校对算法,斯·劳格劳,中文信息学报,2009年6月”提出了基于有限自动机的蒙古文校正方法;“基于规则的蒙古文自动校对方法研究,江布勒,内蒙古大学硕士论文2014年”利用基于规则的方法对蒙古文校正问题进行了一系列的研究,并取得了一定的成果,主要内容分为三个方面:

(1)用人工校对的方式认真统计人们的错误输入方式,对其进行分类统计,研究找出常犯的错误及错误的规律,对研究校对方法提供依据和理论支持。

(2)用总结出的常犯错误和掌握的规律研究出用规则校对这类文本的方法。

(3)用关键技术实现了研究出的校对方法,构建了一个实验性的基于规则校对蒙古文的方法的平台。

基于规则的方法对蒙古文校正的方法相对简单,理论依据和模型研究不足。在统计错误和挖掘可用于校对的规则方面不够深入,只是简单的设计了校对的初步方法。统计 错误规则的方法本身有较大的局限性。首先,基于规则的方法很难归纳统计出所有的错误规则。再而,不能够解决校对中存在的一些关键问题,如同形异音词的校对问题。

发明内容

为实现上述目的,本发明提供一种蒙古文自动校正方法,采用中间码将文本中所有显现形式相同但编码不同的蒙古文单词进行统一表示,采用基于词典和规则的方法对集内词进行校正,解决了现有技术中人工统计错误输入方式容易出错,且存在很大局限性的问题。

本发明所采用的技术方案是,一种蒙古文自动校正方法,首先对输入的蒙古文文本进行预处理、中间码转换、词干词缀切分,然后对集内词进行基于词典和规则的方法进行校正,对未登录词不做处理原样输出;针对转换后的同形多音词采用语言模型选择最优转换结果输出,对转换后的同形单音词直接输出;最后将集内词和未登录词的校正结果合并,即得到校正完成的文本。

本发明的特征还在于,进一步的,预处理包括对蒙古文文本分句和符号处理;蒙古文文本分句采用基于规则的分句方法;符号处理包括蒙古文控制符、标点符号和其它特殊符号的处理;错误使用的单独的蒙古文控制符做直接删除处理,其余所有符号均在文本中相应位置标注并存储;其中标点符号中的结尾符号和回车换行符保留在文本中,其它标点符号和特殊符号均从文本中删除;最后根据符号的位置标注信息将文本中的符号和校正完成的文本进行合并。

进一步的,中间码转换是根据蒙古文中字母在词中的位置和前后字符的关系,采用中间码将编码不同但显现形式相同的字母进行统一表示;先将蒙古文单词转换成拉丁形式,然后在中间码转换和校正规则中逐一进行遍历,根据相应的替换规则对蒙古文单词的拉丁形式进行中间码转换。

进一步的,中间码转换和校正规则采用正则表达式进行表示,其中,“_'"`&\*\^”表示蒙古文控制字符,“:ANY:”表示任何蒙古文字母,“:VOW:”表示所有元音,“:CSNT:”表示所有辅音,“G”、“U”、“V”、“A”、“I”表示定义的中间码。

进一步的,对于单词中间码进行词干词缀切分,并从词干库中遍历该中间码词干,判定是否是集内词;对于集内词采用基于词典和规则的校正方法,具体按照以下步骤进行:建立附有相应中间码的蒙古文词干库和后缀库,蒙古文词干和后缀由蒙古文拉丁形式表示,具体的结构如下:

动词词干库结构={ID,动词词干拉丁形式,中间码形式,词性,阴阳性},

静词词干库结构={ID,静词词干拉丁形式,中间码形式,词性,阴阳性},

动词后缀库结构={ID,动词后缀拉丁形式,中间码形式,阴阳性},

静词后缀库结构={ID,静词后缀拉丁形式,中间码形式,阴阳性};

对于一个中间码唯一对应一个蒙古文单词的情况,直接输出;反之采用语言模型处理:根据蒙古文的构词规则将中间码切分成中间码词干和中间码后缀;分别从词干库和后缀库中找出中间码词干和中间码后缀对应的拉丁形式词干和拉丁形式后缀,并根据蒙古文的构词规则将拉丁形式词干和拉丁形式后缀合并。

进一步的,针对转换后的同形多音词采用语言模型选择最优转换结果输出的方法,具体按照以下步骤进行:

蒙古文句子最优路径T′表示为公式(1):

T=argmaxTQP(T)---(1)

其中,T={t1t2...tm}表示所有候选集合Q中的任意一个候选路径,t1t2...tm表示蒙古文单词,P(T)表示选择候选路径T的概率,候选路径Ti的概率P(Ti)表示为公式(2):

P(Ti)=P(t1)P(t2|t1)P(t3|t1t2)...P(tm|t1t2...tm-1)=Πj=1mP(tj|tj-11)---(2)

假定任意一个蒙古文单词的出现概率只同它紧前面的N-1个蒙古文单词有关,N<m;这时的语言模型就是典型的N元模型,如式(3):

P(Ti)=P(t1)P(t2|t1)P(t3|t1t2)...P(tm|tm-N+1tm-N+2...tm-1)=Πj=1mP(tj|tj-1j-N+1)---(3)

则蒙古文单词tj的条件概率的估计公式为式(4):

P(tj|tj-N+1tj-N+2...tj-1)=count(tj-N+1tj-N+2...tj)count(tj-N+1tj-N+2...tj-1)---(4)

式中count(…)表示一个特定蒙古文单词序列在整个文本语料库中出现的累计次数,采用Kneser-Ney平滑方法对语言模型的训练数据进行平滑处理后,输出校正后文本。

本发明的有益效果是,本发明基于蒙古文中间码,并采用基于词典和规则的方式对蒙古文文本进行校正;对一个蒙古文单词对应多个编码的问题采用语言模型进行解决。采用本发明的校正方法对蒙古文单词的校正准确率高达98.72%;其中,一个蒙古文单词 唯一对应一个编码方式的情况(非多音字),校正的准确率达99%以上;一个蒙古文单词对应多个编码方式的情况(多音字),校正的准确率近93%。

附图说明

图1是本发明的流程图。

图2是本发明集内词校正示例图。

图3是对于同形异音词采用语言模型选择最优转换结果的示例图。

具体实施方式

下面结合附图和具体实施方式对本发明进行详细说明。

本发明的蒙古文自动校正方法,如图1所示,首先对输入的蒙古文文本进行预处理、中间码转换、词干词缀切分,然后对集内词进行基于词典和规则的方法进行校正,对未登录词不做处理原样输出;对转换后的同形多音词采用语言模型选择最优转换结果输出,对转换后的同形单音词直接输出;最后将集内词和未登录词的校正结果合并,即得到校正完成的文本。

预处理:预处理包括对蒙古文文本分句和符号处理两个内容;其中蒙古文文本分句采用基于规则的分句方法;符号处理包括:蒙古文控制符、标点符号和其它特殊符号的处理;错误使用的单独的控制符做直接删除处理,剩下的所有符号都在文本中相应位置标注并存储,其中标点符号中的结尾符号(句号,问号,感叹号等)和回车换行符保留在文本中,用来分句,其它标点符号和特殊符号均从文本中删除;最后,根据符号的位置标注信息将文本中的符号和校正完成的文本进行合并。

中间码转换:根据蒙古文中字母在词中的位置将编码不同但显现形式相同的字母采用相同的符号进行表示,这些符号称作为中间码。中间码转换是根据蒙古文的编码特点,采用中间码对显现形式相同编码不同的字母进行表示的方法。该方法主要是对编码不同但显现形式相同的字母进行了归一化,根据蒙古文中字母在词中的位置和前后字符的关系,将编码不同但显现形式相同的字母进行了统一表示。

根据蒙古文中字母的变形显现特点,几个词中显现形式相同的字母会用一个中间码表示,也有可能一个字母由于单词中的显现形式不同导致对应多个中间码,一个中间码也有可能是几个词中字母的组合。中间码转换规则除了将显现形式相同的字母进行合并表示以外,针对有一定规律的蒙古文拼写错误整理了校正规则。首先将蒙古文转换成了对应的键盘字母形式,本发明称之为拉丁形式,然后根据中间码转换规则对蒙古文拉丁 形式进行中间码转换。

本发明采用正则表达式的方法进行了中间码转换,这是由于中间码转换规则可以正确的表示成正则表达式形式、并且可以灵活的更改和增加转换规则。本发明总结了117条中间码转换和校正规则,并采用正则表达式的方式进行了表示,部分规则如表1所示。表1中,“_'"`&\*\^”表示蒙古文控制字符,“:ANY:”表示任何蒙古文字母,“:VOW:”表示所有元音,“:CSNT:”表示所有辅音,“G”、“U”、“V”、“A”、“I”等表示定义的中间码。表1中,序号1-7是中间码转换规则,序号8-10是校正规则。下面以 (让……坐下)这个蒙古文单词举例。

首先,将转成拉丁形式:“sagvlgahv”。

然后,在117条转换规则中逐一进行遍历;单词“sagvlgahv”分别可以匹配第1条、第4条和第7条的正则表达式;可以根据相应的替换规则进行替换。

由第1条规则,从“sagvlgahv”变成“sAgvlgahv”;

由第4条规则,从“sAgvlgahv”变成“sAgVlgahv”;

由第7条规则,从“sAgVlgahv”最终变成“sAgVlgahV”。

表1部分中间码转换和校正规则

基于词典和规则的集内词校正:

集内词是指可以通过蒙古文词干库和后缀库生成的蒙古文单词。我们已经建立了附有相应中间码的蒙古文词干库和构形后缀库,蒙古文词干和后缀由蒙古文拉丁形式表示。具体的结构如下:

动词词干库结构={ID,动词词干拉丁形式,中间码形式,词性,阴阳性}。

静词词干库结构={ID,静词词干拉丁形式,中间码形式,词性,阴阳性}。

动词后缀库结构={ID,动词后缀拉丁形式,中间码形式,阴阳性}。

静词后缀库结构={ID,静词后缀拉丁形式,中间码形式,阴阳性}。

下面列出部分动词词干库和动词后缀库的内容,如表2和表3所示:

表2部分动词词干库内容

ID 动词词干拉丁形式 中间码形式 词性1 词性2 1 ab ab V 2 abagaila abAgaIlA V 3 abaqi abAqi V N 4 abqag_a abqAg_A V N 5 abvrida abOriTA V A 6 agi aGi V N/adv. 7 aljagv aljAgV V A 8 sagvlg_a sAgVlg_A V

表3部分动词后缀库内容

ID 动词后缀拉丁形式 中间码形式 阴阳性 1 ba bA C 2 bai bAI C 3 bal bAl C 4 baqv bAqO C 5 basv bAsO C 6 bav bAO C 7 be bA H 8 hv hV C 9 hu hU H

集内词的判定过程:首先基于蒙古文的构词规则对上一步生成的中间码进行词干和后缀的切分;然后遍历动词词干库和静词词干库,寻找对应词干的词条。在词库中能找到对应的词条则表明该词是集内词,反之,该词是集外词,也叫未登录词。对于集内词, 如果中间码唯一对应一个蒙古文词干,该词是一形单码词。校正过程:首先分别从词干库和构形后缀库寻找切分的词干和后缀对应的拉丁形式词干和拉丁形式后缀,然后基于蒙古文构词规则将其合并。下面用上一步得到的蒙古文单词的中间码“sAgVlgahV”为例,演示一形单码的单词校正过程;如图2所示,先将中间码切分成中间码词干“sAgVlg_A”和中间码后缀“hV”。其次,分别从词干库和后缀库中找出中间码对应的蒙古文(用拉丁形式表示),最后根据结合蒙古文的构词规则进行合并。

最优转换结果的选择:

蒙古文文本中会频繁地出现形同音不同的蒙古文单词。实验中,5万句的测试文本中有46000多句都包含同形异音词。例如,句子中蒙古文单词和是同形异音词。如图3所示,每个蒙古文单词下面显示了其对应的拉丁转写形式,图中可看出单词对应两种拉丁形式,单词对应四种拉丁形式;粗线路径表示正确转换结果,正确结果对应的拉丁形式为“minu bwdwgsan ni wdw ehileged bi harigvqahv bwlvn_a.”。

我们采用语言模型来解决以上所提的问题。则蒙古文句子最优路径表示为公式(1):

T=argmaxTQP(T)---(1)

其中,T={t1t2...tm}表示所有候选集合Q中的任意一个候选路径,P(T)表示选择候选路径T的概率,候选路径Ti的概率P(Ti)表示为公式(2):

P(Ti)=P(t1)P(t2|t1)P(t3|t1t2)...P(tm|t1t2...tm-1)=Πj=1mP(tj|tj-11)---(2)

为了计算方便,假定任意一个词的出现概率只同它紧前面的N-1个词有关(N<m)。这时的模型就是典型的N元模型(N-gram),如式(3):

P(Ti)=P(t1)P(t2|t1)P(t3|t1t2)...P(tm|tm-N+1tm-N+2...tm-1)=Πj=1mP(tj|tj-1j-N+1)---(3)

则词tj的条件概率的估计公式为式(4):

P(tj|tj-N+1tj-N+2...tj-1)=count(tj-N+1tj-N+2...tj)count(tj-N+1tj-N+2...tj-1)---(4)

式中count(…)表示一个特定词序列在整个文本语料库中出现的累计次数。由于训练数据的稀疏和低频词,会出现零概率问题(也称作数据稀疏问题);为了解决数据稀疏问题 必须采用数据平滑方法进行处理,我们采用Kneser-Ney平滑方法对训练数据进行平滑处理后,输出校正后文本。

本发明的蒙古文校正方法设计完成后,采用J2EE框架并使用java语言进行开发,最终实现了整个校正系统。

校正效果验证:

我们用41416句文本语料做了实验,此语料已经进行人工校正。每个句子都包含多音字,选择39416个句子作为训练数据训练语言模型,2000个句子的原始语料(未进行人工校正)作为测试集,校正数量统计如表4。

表4校正数量

类别 数量 没有校正的单词 587 校正的单词 29913 总的单词数量 30500

2000句测试集文本,总共包含30500个单词。按照统计需要,格也算成了一个“单词”。没有校正的单词是指未登录词,即词典里不包含的词,未登录词没有做任何处理。在没有去重统计的情况下失败单词的总数是587,在整个测试集的占比是1.92%。校正的单词数是29913。下表显示的准确率统计是在校正的单词基础上进行计算的。结果如表5所示:

表5校正结果

类别 数量 准确率 5945 99.7% 多音字 4582 92.9% 单音字 19386 99.8% 总词 29913 98.72%

表中可以看出格和单音字的校正准确率都达到了99%以上,其原因是格的校正可以按照格的拼接规则完成。没有达到100%是因为,程序中还没有加入对阿拉伯数字的相关处理。比如这个词,后面的格按照前面词的阴阳性进行判断,其对应的 正确的拉丁形式是“-aqa”。由于“10”没有用文字表现出来,处理的时候就不知道这个词的阴阳性,结果就有可能出错。单音字准确率高的原因是单音字的校正是基于词典和规则进行校正。多音字的准确率是92.9%,比起单音字和格,准确率较低的原因是多音字的校正依赖概率语言模型,概率语言模型对数据量的需求比较高,固数据稀疏是主要问题。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号