国际标准码计算机,蒙古⽂国际标准编码到形码转换⽅法、装
置及计算机终端与流程...
本发明涉及信息处理技术领域的⼀种转换⽅法,尤其涉及⼀种蒙古⽂国际标准编码到形码转换⽅法,还涉及⼀种蒙古⽂国际标准编码到形码转换装置,还涉及⼀种计算机终端。
背景技术:
蒙古⽂信息处理的研究⼯作最先是在⽂字排版⽅⾯展开的,由于⽂字排版系统对⽂字⽽⾔⽐较关注的是⽂字的“形”,⼀个单词只要能够出现正确的形状即可。因此基于形码的蒙古⽂编码⽅案也应运⽽⽣。不同的研究单位在制定各⾃的形码⽅案时有的采⽤⼀个字符只定义⼀个编码,但可以表⽰多个不同发⾳的字母;有的采⽤⼀个字符定义多个编码,相同字形编码不同,可表⽰不同发⾳的字母;有的采⽤将多个字母中都会出现的部分结构,重新定义为⼀个“字符”或从⽂字书写的习惯和美观⾓度出发,将字母中的部分笔画进⾏了重组,并为每⼀个“字符”定义⼀个编码。
1993年国际标准化组织和unicode技术委员会在iso/iec10646国际标准字符集中发布了蒙古⽂国际标准编码。在该标准中,把从
u+1800开始的⼀个“平⾯”作为蒙古⽂字符集编码码位。蒙古⽂字符实际占有码位区间是u+1800⼀u+18af。蒙古⽂国际标准字符集包括传统蒙古⽂、托忒⽂、锡伯⽂、满⽂以及蒙、托、满三种⽂字⽤于转写藏⽂和梵⽂的阿礼嘎礼字符、标点符号、数字和控制符。传统蒙古⽂、托忒⽂、锡伯⽂、满⽂的⼤部分字母根据它们在词⾥的位置(词⾸、词中、词尾)等有不同的变体形式,有时⼀个字母能有⼗种以上
的变体形式。
在⽬前的蒙古⽂印刷体识别和⼿写识别任务中有时需要字形编码作为中间码,⽽不直接使⽤unicode编码。因为蒙古⽂unicode编码不能直接表⽰字形信息。⽬前蒙古⽂资源都是⽤unicode编码表⽰和存储。因此需要⼀种蒙古⽂unicode编码到字形码的转换过程,以解决现有的蒙古⽂unicode编码不能够直接使⽤在蒙古⽂印刷体识别和⼿写识别任务中,使⽤不便的问题。
技术实现要素:
为解决现有的蒙古⽂unicode编码不能够直接使⽤在蒙古⽂印刷体识别和⼿写识别任务中,使⽤不便的技术问题,本发明提供⼀种蒙古⽂国际标准编码到形码转换⽅法、装置及计算机终端。
本发明采⽤以下技术⽅案实现:⼀种蒙古⽂国际标准编码到形码转换⽅法,其包括以下步骤:
(1)枚举出⽣成每个蒙古⽂字母的所有可能unicode编码序列,并记录各格式“unicode串=字母id”且记作ul;
(2)将ul按照位置属性分为四份,并分别记作ul_a、ul_s、ul_m、ul_e,且每份中按照unicode串长度的倒序进⾏排序;其中,定义
ul_x(i).uni为ul第i⾏“=”前的unicode串,ul_x(i).scode为ul第i⾏“=”后的字母id,x为字母a、s、m、e中的⼀种;
(3)将待转换蒙古⽂unicode串记作mgl,初始化转换结果序列glist=[];
(4)遍历ul_a并判断mgl是否存在于ul_a中,如果存在且⾏号为i时,则glist=[ul_a(i).scode]并结束遍历ul_a,否则继续遍历ul_a;
(5)遍历ul_s,判断ul_s(i).uni是否与mgl开头匹配,如果有匹配⾏时则glist=[ul_a(i).scode]且mgl=mgl-ul_a(i).uni,并继续遍历ul_s,否则中⽌遍历ul_s;
(6)遍历ul_e,判断mgl是否存在于ul_e中,如果存在且⾏号为i时,则glist=glist+[ul_a(i).scode]并结束遍历ul_e,否则继续遍历ul_e;
(7)遍历ul_m,判断ul_m(i).uni是否与mgl开头匹配,如果有匹配⾏时则glist=glist+[ul_a(i).scode]且mgl=mgl-ul_a(i).uni,并当mgl==空则结束遍历ul_m,否则继续遍历ul_m,如果没有匹配⾏则中⽌遍历ul_m。
本发明通过先枚举出每个蒙古⽂字母的所有可能的unicode编码序列,再将按照位置属性分为四份,并且每份中按照unicode串长度的倒序进⾏排序,然后对各份进⾏遍历并分别判断,并且在遍历过程中利
⽤转换结果序列进⾏存放,从⽽实现将蒙古⽂国际标准编码转换到形码,即能够实现多对多的关系转化,也可以对没有固定转换关系的转换,还可以对不是定长的编码进⾏转换,从⽽可以⽣成作为中间码的字形编码,便于蒙古⽂印刷体识别和⼿写识别,⽅便蒙古⽂unicode编码表⽰和存储,从⽽解决现有的蒙古⽂unicode编码不能够直接使⽤在蒙古⽂印刷体识别和⼿写识别任务中,使⽤不便的技术问题。
作为上述⽅案的进⼀步改进,所述位置属性包括“独”、“⾸”、“中”、“末”;其中,位置属性“独”⽤于表⽰没有连接符的独⽴词,位置属性“⾸”⽤于表⽰存在所述连接符且所述连接符必须出现在词开头的串,位置属性“中”⽤于表⽰存在所述连接符且所述连接符必须出现在词中间的串,位置属性“末”⽤于表⽰存在所述连接符且所述连接符必须出现在词结尾处的串。
作为上述⽅案的进⼀步改进,所述蒙古⽂字母的数量为382个;其中,所述蒙古⽂字母按照先⾏后列的顺序依此按三位数字给每个字母编码。
作为上述⽅案的进⼀步改进,蒙古⽂字母的所有可能unicode编码序列为:
1833180b1823180b=001
183********c=001
1833180b1823200d=001
数字转unicode编码1833180b1824200d=001
1833180b1825180b200d=001
1833180b1826180b200d=001
200d183********b=001
200d183********b=001
200d183********b=001
200d183********b=001
200d183********d=001
200d183********d=001
200d183********d=001
200d183********d=001
200d183********d=001
200d183********d=001
200d183********d=001
200d183********d=001
202f183********d=001
202f183********d=001
其中,“200d”表⽰连接符。
作为上述⽅案的进⼀步改进,在步骤(5)中,中⽌遍历ul_s后发出错误代码1;在步骤(7)中,中⽌遍历ul_m后发出错误代码2。
本发明还提供⼀种蒙古⽂国际标准编码到形码转换⽅法,其包括以下步骤:
(1)定义蒙古⽂字母集合,所述蒙古⽂字母集合包括多个蒙古⽂字母;其中,每个蒙古⽂字母按照先⾏后列的顺序依此按三位数字给每个蒙古⽂字母编码,获得每个蒙古⽂字母的字母id;
(2)枚举出⽣成每个蒙古⽂字母的所有可能unicode编码序列,且定义每个蒙古⽂字母的格式“unicode串=字母id”且为⽆序列表;
(3)按照位置属性“独”、“⾸”、“中”、“末”将所述⽆序列表分为独性部分、⾸性部分、中性部分以及末性部分,且每份中按照unicode串长度的倒序进⾏排序;其中,位置属性“独”⽤于表⽰没有连接符的独⽴词,位置属性“⾸”⽤于表⽰存在所述连接符且所述连接符必须出现在词开头的串,位置属性“中”⽤于表⽰存在所述连接符且所述连接符必须出现在词中间的串,位置属性“末”⽤于表⽰存在所述连接符且所述连接符必须出现在词结尾处的串;
(4)获取待转换蒙古⽂unicode串,初始化转换结果序列;
(5)遍历所述独性部分,并判断所述待转换蒙古⽂unicode串是否存在于所述独性部分中,如果存在则将相应⾏“=”后的字母id存于所述转换结果序列中,否则继续遍历所述独性部分;
(6)遍历所述⾸性部分,并判断所述⾸性部分的各⾏的unicode串是否与所述待转换蒙古⽂unicode串开头匹配,如果有匹配⾏时则相应
⾏“=”后的字母id存于所述转换结果序列中并从所述待转换蒙古⽂unicode串中删除相应的匹配部分,并继续遍历所述⾸性部分,如果没有匹配⾏则中⽌遍历所述⾸性部分;
(7)遍历所述中性部分,并判断所述待转换蒙古⽂unicode串是否存在于所述中性部分中,如果存在则将相应⾏“=”后的字母id累加在所述转换结果序列中,否则继续遍历所述中性部分;
(8)遍历所述末性部分,并判断所述末性部分的unicode串是否与所述待转换蒙古⽂unicode串开头匹配,如果有匹配⾏时则相应⾏“=”后的字母id累加在所述转换结果序列中并从所述待转换蒙古⽂unicode串中删除相应的匹配部分,并继续遍历所述末性部分,如果没有匹配⾏则中⽌遍历所述末性部分。
作为上述⽅案的进⼀步改进,在步骤(1)中,所述蒙古⽂字母的数量为382个;
在步骤(6)中,中⽌遍历所述⾸性部分后发出错误代码1;
在步骤(8)中,中⽌遍历所述末性部分后发出错误代码2。
本发明还提供⼀种蒙古⽂国际标准编码到形码转换装置,其应⽤上述任意所述的蒙古⽂国际标准编码到形码转换⽅法,其包括:
枚举模块,其⽤于枚举出⽣成每个蒙古⽂字母的所有可能unicode编码序列,并记录各格式“unicode串=字母id”且记作ul;
划分模块,其⽤于将ul按照位置属性分为四份,并分别记作ul_a、ul_s、ul_m、ul_e,且每份中按照unic
ode串长度的倒序进⾏排序;其中,定义ul_x(i).uni为ul第i⾏“=”前的unicode串,ul_x(i).scode为ul第i⾏“=”后的字母id,x为字母a、s、m、e中的⼀种;
初始化模块,其⽤于将待转换蒙古⽂unicode串记作mgl,初始化转换结果序列glist=[];
遍历模块⼀,其⽤于遍历ul_a并判断mgl是否存在于ul_a中,如果存在且⾏号为i时,则glist=[ul_a(i).scode]并结束遍历ul_a,否则继续遍历ul_a;
遍历模块⼆,其⽤于遍历ul_s,判断ul_s(i).uni是否与mgl开头匹配,如果有匹配⾏时则glist=[ul_a(i).scode]且mgl=mgl-ul_a(i).uni,并继续遍历ul_s,否则中⽌遍历ul_s;
遍历模块三,其⽤于遍历ul_e,判断mgl是否存在于ul_e中,如果存在且⾏号为i时,则glist=glist+[ul_a(i).scode]并结束遍历ul_e,否则继续遍历ul_e;
遍历模块四,其⽤于遍历ul_m,判断ul_m(i).uni是否与mgl开头匹配,如果有匹配⾏时则glist=glist+[ul_a(i).scode]且mgl=mgl-
ul_a(i).uni,并当mgl==空则结束遍历ul_m,否则继续遍历ul_m,如果没有匹配⾏则中⽌遍历ul_m。
本发明还提供⼀种蒙古⽂国际标准编码到形码转换装置,其应⽤上述任意所述的蒙古⽂国际标准编码到形码转换⽅法,其包括:
定义模块,其⽤于定义蒙古⽂字母集合,所述蒙古⽂字母集合包括多个蒙古⽂字母;其中,每个蒙古⽂字母按照先⾏后列的顺序依此按三位数字给每个蒙古⽂字母编码,获得每个蒙古⽂字母的字母id;
枚举模块,其⽤于枚举出⽣成每个蒙古⽂字母的所有可能unicode编码序列,且定义每个蒙古⽂字母的格式“unicode串=字母id”且为⽆序列表;
划分模块,其⽤于按照位置属性“独”、“⾸”、“中”、“末”将所述⽆序列表分为独性部分、⾸性部分、中性部分以及末性部分,且每份中按照unicode串长度的倒序进⾏排序;其中,位置属性“独”⽤于表⽰没有连接符的独⽴词,位置属性“⾸”⽤于表⽰存在所述连接符且所述连接符必须出现在词开头的串,位置属性“中”⽤于表⽰存在所述连接符且所述连接符必须出现在词中间的串,位置属性“末”⽤于表⽰存在所述连接符且所述连接符必须出现在词结尾处的串;
初始化模块,其⽤于获取待转换蒙古⽂unicode串,初始化转换结果序列;
遍历模块⼀,其⽤于遍历所述独性部分,并判断所述待转换蒙古⽂unicode串是否存在于所述独性部分中,如果存在则将相应⾏“=”后的字母id存于所述转换结果序列中,否则继续遍历所述独性部分;
遍历模块⼆,其⽤于遍历所述⾸性部分,并判断所述⾸性部分的各⾏的unicode串是否与所述待转换蒙古⽂unicode串开头匹配,如果有匹配⾏时则相应⾏“=”后的字母id存于所述转换结果序列中并从所述待
转换蒙古⽂unicode串中删除相应的匹配部分,并继续遍历所述⾸性部分,如果没有匹配⾏则中⽌遍历所述⾸性部分;
遍历模块三,其⽤于遍历所述中性部分,并判断所述待转换蒙古⽂unicode串是否存在于所述中性部分中,如果存在则将相应⾏“=”后的字母id累加在所述转换结果序列中,否则继续遍历所述中性部分;
遍历模块四,其⽤于遍历所述末性部分,并判断所述末性部分的unicode串是否与所述待转换蒙古⽂unicode串开头匹配,如果有匹配⾏时则相应⾏“=”后的字母id累加在所述转换结果序列中并从所述待转换蒙古⽂unicode串中删除相应的匹配部分,并继续遍历所述末性部分,如果没有匹配⾏则中⽌遍历所述末性部分。
本发明还提供⼀种计算机终端,其包括存储器、处理器以及存储在存储器上并可在处理器上运⾏的计算机程序,所述处理器执⾏程序时实现上述任意所述的蒙古⽂国际标准编码到形码转换⽅法的步骤。
相较于现有的蒙古⽂unicode编码,本发明的蒙古⽂国际标准编码到形码转换⽅法、装置及计算机终端具有以下有益效果:
1、该蒙古⽂国际标准编码到形码转换⽅法,其通过先枚举出每个蒙古⽂字母的所有可能的unicode编码序列,再将按照位置属性分为四份,并且每份中按照unicode串长度的倒序进⾏排序,然后对各份进⾏
遍历并分别判断,并且在遍历过程中利⽤转换结果序列进⾏存放,从⽽实现将蒙古⽂国际标准编码转换到形码,即能够实现多对多的关系转化,也可以对没有固定转换关系的转换,还可以对不是定长的编码进⾏转换,从⽽可以⽣成作为中间码的字形编码,便于蒙古⽂印刷体识别和⼿写识别,⽅便蒙古⽂unicode编码表⽰和存储。
2、该蒙古⽂国际标准编码到形码转换装置,其有益效果与上述蒙古⽂国际标准编码到形码转换⽅法的有益效果相同,在此不再做赘述。
3、该计算机终端,其有益效果与上述蒙古⽂国际标准编码到形码转换⽅法的有益效果相同,在此不再做赘述。
附图说明
图1为本发明实施例1中蒙古⽂unicode编码的⽰意图。
图2为本发明实施例1中的382个蒙古⽂字母的统计图。
图3为本发明实施例1的蒙古⽂国际标准编码到形码转换⽅法的流程图。
具体实施⽅式
为了使本发明的⽬的、技术⽅案及优点更加清楚明⽩,以下结合附图及实施例,对本发明进⾏进⼀步详细说明。应当理解,此处所描述的具体实施例仅⽤以解释本发明,并不⽤于限定本发明。
实施例1
本实施例提供了⼀种蒙古⽂国际标准编码到形码转换⽅法,该转换⽅法⽤于将蒙古⽂国际标准编码转换到形码。请参阅图1,本案发明⼈通过研究发现,根据iso/iec10646的有关规则,只对这些变体形式中的⼀个进⾏编码,称为“名义字符”。“名义字符”选取的⼀般原则是:对于元⾳,采⽤它们的独⽴形式:对辅⾳,采⽤出现在元⾳“a”前⾯的词⾸形式。所有其它形式称为“变形显现形式”。如果不同⽂种的⼀些字母在词⾸时有相同的形式。⽽在词中或词尾有不同的形式时,应采⽤不同字形,以区分⽂种。如发⾳为ba的字母,传统蒙古⽂⽤(u+182a)表⽰,⽽托忒⽂⽤u+184b)表⽰。
传统蒙古⽂中有四个特殊的元⾳o、u、oe和ue,前两个字符的变形显现字符形状⼀样,后两个字符的变形显现字符形状也⼀样,但它们是形同⾳不同的四个字母。在字符集中取。的独⽴形式u的词⾸形式oe的独⽴形式和e的词⾸形式
在每个⽂种中,名义字符所对应的变形显现字符的选择,⼀般情况下都可以根据其在单词中的位置或词性确定。但有少数变形⽆法确定,需要通过字符集中的控制符才能确定。蒙古⽂国际标准编码字符集⽤到的控制符包括:u+180b、u+180c、u+180d、u+180e、
u+202f、u+200c、u+200d。其中后3个编码来⾃通⽤符号区。在⽬前的蒙古⽂印刷体识别和⼿写识别任务中有时需要字形编码作为中间码,⽽不直接使⽤unicode编码。因为蒙古⽂unicode编码不能直接表⽰字形信息,⽽⽬前蒙古⽂资源都是⽤unicode编码表⽰和存储。从字形⾓度看,蒙古⽂不像英⽂那样有固定独⽴的26个字母,⽽可以从不同⾓度定义不同的字母集合。
基于此,本实施例定义蒙古⽂字母的数量为382个,即形成个包含382个字母的蒙古⽂字母集合,并且这382个蒙古⽂字母如图2中所⽰。
其中,蒙古⽂字母按照先⾏后列的顺序依此按三位数字给每个字母编码,从左上⾓开始,如
转换过程就是将⼀个unicode编码表⽰的蒙古⽂,转成⽤字母编号便是的蒙古⽂。例如:蒙古
⽂“(0x18200x18370x18200x1833)”转换成“244196369”。这种转换关系特点有:
(1)多对多关系。例如,上例⼦中“0x18370x1820”这俩个转换成”“196”;
(2)没有固定转换关系,例如“0x1820”上例中转换成了“244”,但其它⽂字中“0x1820”可能会被转成“307310329357”等;
(3)不是定长转换,上例中“0x1820→244”“0x18370x1820→196”“0x1833→369”。
请参阅图3,本案发明⼈考虑到以上,提出⼀种转换⽅法,并且本实施例的蒙古⽂国际标准编码到形码转换⽅法就包括以下这些步骤。
(1)枚举出⽣成每个蒙古⽂字母的所有可能unicode编码序列,并记录各格式“unicode串=字母id”且记作ul。其中,蒙古⽂字母的所有可能unicode编码序列为:
1833180b1823180b=001
183********c=001
1833180b1823200d=001
1833180b1824200d=001
1833180b1825180b200d=001
1833180b1826180b200d=001
200d183********b=001
200d183********b=001
200d183********b=001
200d183********b=001