西南交通大学 西藏大学 藏文文本自动校对方法及系统设计 作 者:珠杰,李天瑞 二0一三年十一月十八日
目 录 引言 藏文文本自动校对系统 藏文文本自动校对方法 测试 结论
ས་སྐྱ་པཎྜི་ཏ་ཀུན་དགའ་རྒྱལ་མཚན་གྱི་གསུང་རྩོམ།། 一 、引言 例子: ས་སྐྱ་པཎྜི་ཏ་ཀུན་དགའ་རྒྱལ་མཚན་གྱི་གསུང་རྩོམ།། 梵音转写藏文错误 拼写错误 接续关系错误 词语错误
一 、引言 定义1:藏文音节拼写错误是指不符合藏文字性组织规则的无效藏文音节。 例1:“གཅིག་”写成“གཆིག”,“སྟོང་”写成“སྠོང་”等。这些错误可能是由于人为的输入错误,或者正字法知识的缺陷,造成的拼写错误。 定义2:梵音转写藏文错误是指由音节点隔开的藏文字符串不符合梵音转写藏文文法规则的无效梵音转写藏文。例2:“ཀརྨ་བཀའ་བརྒྱུད”写成了“ཀསྨ་བཀའ་བརྒྱུད་”等。 定义3:接续关系错误是指不符合藏文格助词、不自由虚词接续关系文法的连接错误。例3:“བློ་བཟང་གིས་བཅད་”写成“བློ་བཟང་གྱིས་བཅད་”。 定义4:词语搭配错误是指几个正确的藏文音节搭配成词语时,该词语不在藏文词典集合中的无效藏文词语。 例4:“ང་ན་ཚ་མེད། གཡག་རྔ་དཀར་ཤི་སོང་།”写成“ང་ན་ཚྭ་མེད། གཡག་ལྔ་ཀ་ཤི་སོང་།”等。 定义5:语法语义错误是指不符合藏文语法结构规律或客观事理的句子错误,包含了语法错误和逻辑错误。例5:“ཆུ་སྐོལ་ཤིག”写成“ཆུ་བསྐོལ་ཤིག”时态错误等。
二、藏文文本自动校对系统——系统框架 藏文语法和语义检查 藏文词语校对 梵音转写藏文校对 藏文接续关系检查 藏文音节拼写检查 变精度粗 糙集模型 优势粗 糙集模型 经典粗 糙集模型 模糊粗 糙集模型 邻域粗 糙集模型
二、藏文文本自动校对系统——拼写检查 A B
二、藏文文本自动校对系统——自动校对算法 藏文文本自动校对算法: 输入:藏文文本内容 输出:校对结果文本 1.藏文音节拼写检查,若拼写正确,转到3,否则,转到2; 2.梵音转写藏文错误检查,若正确,转到5;否则做标记错误,并转到5; 3.藏文的接续关系检查,若接续关系正确转到4,否则做标记错误,并转到5; 4.藏文分词,匹配词典,若匹配成功转到5,否则标记错误标记,并转到5; 5.输出校对结果
二、藏文文本自动校对系统——自动校对算法 输入藏文文本 藏文音节拼写是否正确? 虚词接续关系是否正确? 梵音转写藏文是否正确? 标记错误 藏文词语是否正确? 输出校对结果文本 N Y
二、藏文文本自动校对系统——自动校对算法
三、藏文文本自动校对方法——各个环节的校对方法 (1)藏文音节拼写检查: 利用藏文音节规则模型进行拼写检查,参考“TSRM的藏文拼写检查算法” (2)梵音转写藏文拼写检查方法: 采用词典匹配方法,13765个梵音转写藏文字典为依据,进行检查。
三、藏文文本自动校对方法——藏文音节拼写检查 藏文音节模型-1 藏文音节模型-2 藏文音节模型-3
三、藏文文本自动校对方法——藏文音节拼写检查 算法1:藏文音节识别算法 输入:文本中的字符串 输出:藏文音节 bigin 创建一个文件读取对象 fr; 创建一个文件输出对象 output; 创建一个字符串对象st; 创建一个字符对象 ch; 创建一个字符串对象 syllable; ch<—fr.read(); st<—ch;//ch转为字符串 while(st不为音节点或藏文数字或其他语言符号) do syllable+=st; ch<—fr.read();//读取下一个字符 end if syllable>7 then syllable+=?//添加错误标记 output.write(syllable);//输出藏文音节 syllable=0; else
三、藏文文本自动校对方法——藏文音节拼写检查 算法2:拼写检查算法 输入:藏文音节 输出:拼写检查结果 begin 创建读取藏文音节的对象fr; 创建输出结果的对象output; 创建字符串syllable; 创建boolean 类型 f1,f2; 创建Compare类型对象com;//比较字符串匹配是否成功 创建int类型的PrefixIndex;//返回前缀子字符串的位置 syllable=fr.read(); while(syllable!=null) do com=new Compare(syllable); f1=com.compare1();//前缀与Trule集合匹配,匹配成功返回true,否则返回false PrefixIndex=com.indexof();//前缀位的获取上,如果音节中存在元音,以元音为分界线,元音之前为模型-3的前缀部分,元音之后为后缀部分;否则,音节中去掉最后1个字符,剩余部分与Trule匹配,如果匹配不成,音节中再去掉最后2个字符,剩余部分与Trule匹配,如此类推 if f1==false then
三、藏文文本自动校对方法——藏文音节拼写检查 算法2:拼写检查算法 if f1==false then syllable+=”?”;//如果前缀匹配不成功,做错误标记 output.write(syllable);//写到输出对象中 syllable=””;//音节变量清空 syllable=fr.read();//读取下一个音节 else if 后跟音节点或元音 then if(!f2=com.compare2(PrefixIndex)) then //匹配后缀集合(Tpostfix),匹配成功返回true,否则返回false syllable+=”?”;//如果后缀匹配不成功,做错误标记 end output.write(syllable); //写到输出对象中 syllable=””; else//无元音和音节点 if (!f2=com.compare2(PrefixIndex));//匹配后缀集合(Tpostfix),匹配成功返回true,否则返回false
三、藏文文本自动校对方法——各个环节的校对方法 (3)藏文接续关系检查算法 首先需要识别集合P中后缀的不同类型和具体后缀字符; 其次需要识别集合X中格助词和不自由虚词; 最后判断是否满足接续关系函数xij=f(pi)。
三、藏文文本自动校对方法——各个环节的校对方法
三、藏文文本自动校对方法——各个环节的校对方法
三、藏文文本自动校对方法——各个环节的校对方法 (4)藏文词语错误检查方法 采用词典匹配,分词方法是用了正向最大匹配算法; 采用了197个虚词词典,2311个虚词兼类词典,133227个藏文词典。
四、测试 语料:“青海藏语广播网”的留言板中收集语料 接续关系测试 评测方法:召回率、查准率、误判率 系统测试
四、测试 接续关系测试:
四、测试 接续关系测试: 例子1:紧缩词的识别问题。 格助词和不自由虚词中“འི་འང་འམ་འོ་ས་ར་”紧缩词识别和还原,不仅存在识别的难度,还存在还原的难度,更存在接续关系判断的难度,也是算法召回率和查准率降低的主要原因。例如:“ངའི་མེ་ཏོག་”等。为了解决此问题,本文紧缩词的接续关系检查纳入到拼写检查模块中,然后进行接续关系检查,但仍然存在“ས་ར་”的识别问题。表3的数据是改进后的测试结果。 例子2:无后加字的识别问题。 音节中由于没有后加字而算法直接去寻找基字或元音,如果音节中存在元音或者是纵向叠加情况,在后加字的判断上不会存在问题;如果既无元音,又无叠加情况,基字又兼后加字的时候,算法会在无后加字的判断上存在歧义。例如:“ང་ཡིས་གླུ་གཏང་།” 中“ང་”后加字还是基字会出现判断失误。 例子3:2个后缀字符的识别问题。 在两个后缀字符的识别上,例如“བསྟནད་ཀྱང་ ”、“ནད་ཀྱང་”中,“ནད་ཀྱང་”按2个后缀字符来对待处理时,算法对此类语言现象的处理也是存在歧义的。
四、测试 系统测试: 分词错误、接续关系中后缀字符识别错误,拼写检查错误、各模块交叉错误等。
五、结论 (1)基于规则的藏文文本校对方法 (2)研究:基于统计的方法和统计和规则相结合的方法 (3)研究:纠错方法
致 谢 感谢提问!