基于藏文字符构件识别技术的藏文字符字典排序的方法与流程

文档序号:12470033阅读:342来源:国知局
基于藏文字符构件识别技术的藏文字符字典排序的方法与流程
本发明涉及藏文信息处理
技术领域
,具体涉及一种基于藏文字符构件识别技术的藏文字符字典排序的方法。
背景技术
:缩略语和关键术语定义藏字:表示一个藏文音节的藏文字符简称为藏字。藏字的位长:构成藏字的字符个数,一个藏字可能由一到七个字符构成,最多七位,最少一位。基字:构成藏字的必备构件,以基字为核心,将其和前加字、上加字、后加字、下加字、元音、再后加字、(再下加字)进行组合构成藏字。前加字:这五个字母可以放在基字的前面作为前加字构成字母组合。上加字:这三个字母可以放在上方构成组合。下加字:这三个字母可以放在下方构成组合。后加字:这九个字母可以放在基字的后面构成组合。再后加字:可以放在再后加字的后面构成组合。元音:这四个字母作为音节字母,放在基字的上方或下方。再下加字:可以放在下加字的下面。现代藏字:藏字是由藏文的图形字符拼写构成的,这些字符包括了现代藏文字符、梵音藏文字符、古藏文字符以及藏文特殊字符。所谓的现代藏字是指符合现代藏文文法规则的藏字,不包括撰写梵音的藏文字符、不符合现代文法的古藏文字符。1.现代藏字的一般结构藏字字形结构均以一个辅音字母为核心,其余字母均以此为基础前后附加和上下叠加,组合成一个完整的字表结构。通常现代藏字字形结构最少为一个辅音字母,即单独由一个基字构成;最多由6个辅音字母和一个元音符号构成。元音不能独立书写,只能加在辅音字母的上部或下部。核心字母叫“基字”,30个辅音字母均可作基字,其余字母的称谓均根据加在基字的部位而得名。即加在基字前的字母叫“前加字”,加在基字上的字母叫“上加字”,加在基字下面的字母叫“下加字”,加在基字后面的字母叫“后加字”,后加字之后再加字母叫“再后加字”或“重后加字”。藏字由三十个辅音字母和四个元音符号(简称为元音)拼写组合而成,藏文的纵向叠加只是在基字的上下,而前加字、后加字、再后加字均为无叠加的单一辅音字母。在现代藏文文法中,对藏文字符构成藏字有很严格的约束,一个藏字可有一到七个字符构成,其中基字是构成藏字必不可少的构件,其它位置上构件的有无因字而不同。藏文的音节最多由七字符构成(如图1所示),一个藏字一般只有一个元音符号。四个元音中第二元音叠加在辅音字符(块)的下面(图1中下面的圆圈表示元音),而第一、第三和第四元音叠加在辅音字符(块)的上面(图1中上面的圆圈表示的元音)。图2是7个构件的藏字实例。2、文字的排序文字的排序是指依据一定的规则将文字按照不同优先顺序排放。将文字进行排序是建立字典,进行查找等工作的重要前提。目前汉字的排序主要分为按照音序排序和按照笔画排序两种方式,而英文单词排序时是从左到右依次比较两个单词中同一位置上的字母的排放优先级,在计算机中是直接比较单词字符串码值的大小,由此确定单词的排列次序。目前中文和英文的排序技术已经相当成熟,并且在实际应用中都有比较统一和完善的标准。3、藏文的字典序列的排序藏字的排序是藏文信息处理技术的一项基础研究,由于藏文的拼写不同于英文和汉字,它是横向拼写和纵向拼写的非线性组合,不能采用汉字的音序法和笔画法,也不能直接借鉴英文直接按照编码从左向右比较的方法。因此,藏文音节的排序具有一定的难度。藏文字典序是给藏文排序的一种较为科学的办法。它的实现是通过比较藏字各个位置上的字符来确定藏字的序列,最终由藏字序来决定藏文文本序。藏文字典序也是人为规定的一种序列,但经过长期的使用,也是人们接受的、人们已经习惯的一种藏文排序的序列。现有技术一:1999年,扎西次仁在《藏文的排序规则及其计算机自动排序的实现》一文中初步提出了藏文的排序思想,他提出,在比较藏文音节的优先次序时,按基字->上加字->前加字->下加字->元音符号->后加字->再后加字的顺序依次一一对应地比较这七类构件的排序优先级。该文仅阐述了大致的排序思想,却没有涉及到具体过程的实现,比如如何识别音节的各个构件、针对缺失的构件如何处理等。并且,最重要的一点,虽然几乎所有的藏字都是由一到七个构件组成,但构件的种类其实应该有八种,这个方法没有考虑到藏字中包含“再下加字”这一构件的情况。现有技术二,2004年,江狄提出了书面藏语排序的数学模型及算法,将藏文音节区分为六个构件位置,分别为:基字、前加字、上加字、下加字、后加字、元音,排序的思想为:将藏字的每一个具体字符都赋予一个数值,排序时,通过查不同的表先将音节都转换为一串数值序列,再对这些数值序列进行排序。和技术方案一类似,该方案缺乏对藏文音节构件拆分方法的描述。通过将音节转换为数值序列,虽然方便了最终数值的排序,但是在转换为数值序列的过程中需要不停的查表,增加了程序运行的负荷。并且,unicode编码中对藏文字符的顺序有标准的规定,完全不需要自定义这些查询表。现有技术三,2009年,边巴旺堆等提出了基于ISO/IEC10646藏文编码字符集标准的藏文排序的方案。将藏文的一个音节优化为6个构件组成,并且整理了六个规则函数用来识别藏字的构件。排序时,根据“基字-上加字-前加字-下加字-元音-后加字”的顺序判断优先级。文中将后加字、再后加字、再下加字三种构件优化为一种构件,而在排序时又默认“同一种构件在同一个音节中只能出现一次”,这两种规则具有一定的矛盾性,并不能准确的识别所有的藏字,从而影响排序的结果。以上这些仅有一些论文、文档的说明,仅从理论上研究,没有看见实现的具体软件。技术实现要素:本发明的目的在于克服现有技术的缺点,提出一种基于藏文字符构件识别技术的藏文字符字典排序的方法,识别藏文构件的正确率为100%,在识别藏文字符构件的基础上,定义了藏文字符排序的优先级,按照该方法能够正确地将藏文字符进行排序,完成藏文字符字典序列的排序。本发明通过如下技术方案实现:一种基于藏文字符构件识别技术的藏文字符字典排序的方法,包括以下步骤:S1.按照藏文文法对现代藏字的构字结构进行分析,得出藏文有48种基本结构;S2.优先处理特殊结构,首先判断该字符中是否含有特殊构件音节,如果有特殊构件,再按照该结构中的字符个数和有无元音判断该特殊构件的结构;S3.把藏文纵向固定叠加的组合块作为一个整体处理,按照藏文的结构,把“上加字+基字”、“基字+下加字”、“上加字+基字+下加字”作为固定的结构识别藏文字符构件,把要判断的当前音节在这些结构中查找,如果在该结构中找到就能很好、很快地判断该音节的结构,则建立3个表,用于处理固定结构和识别特殊字符;S4.S4.对不带元音、没有叠加的三个构件的藏字有一些具有二义性,再建立1个表对二义性的14个字符进行特殊处理;S5.从藏文字符有无元音和元音的位置来判断构件,进行构件拆分,将识别的藏文字符的构件按照“前加字-上加字-基字-下加字-再下加字-元音-后加字-再后加字”八个部分放置;S6.确定藏文字符字典序的排序模型,最核心的层次即第一层是基字层,而从第二层到第七层分别是上加字、前加字、下加字、元音、后加字和再后加字;S7.定义一个TibetWord结构体,把读取的音节和识别的构件存入一个结构体中,存储空间主要用来存放音节及构件,选择一种排序方法进行排序。作为优选,S5具体如下:当藏字是1个字符就一定是“基字”,表示为“空空字符”。作为优选,S5具体如下:当藏文是2个字符,则识别构件的方法为:首先判断第2位是否是元音,是则表示为“空空1字符空空2字符”,如果没有元音,则查表1,如果有,判断为“上+基”的结构,如果表1中没有则查表2,判断为“基+下”。作为优选,S5具体如下,当构件为3个字符,则识别构件的方法如下:1)首先,判断第2位是否是元音,如果“是”则表示为“空空1字符空空2字符3字符”,如果“否”,则转到2);2)查表3,如果表中有,则判断为“上+基+下”的结构,如果没有在表3中,则转到3);3)查表1,判断前2位是否在表1中,如果有则判断第3位是否是元音,如果是则表示为“空1字符2字符空空字符3”,如果第3位不是元音,则表示为“空1字符2字符空空空3字符”;如果前2位不在表1中,则转到4)步;4)后两位查表1,判断是否在,如果是则结构为“1字符2字符3字符”,如果后2位不在表1中,则转到5)步;5)用藏字的前2位查表2,如果在表2中,再判断第3位是否为元音,从而得到“空空1字符2字符空3字符”和“空空1字符2字符空空3字符”;如果不在表2中,则转到6)步;6)用藏字的后2位查表2,如果在表2中,则为“1字符空2字符3字符”,如果没在表2中,则转到7)步;7)判读第3位是否是元音,如果是元音,则表示为“1字符空2字符空空3字符”,如果不是元音,则转到8)步;8)通过判读该三个字符是否是表4中特殊的17种字符判读结构。作为优选,S5具体如下,当构件为4个字符,则识别构的方法如下:1)首先判断第2位是否是元音,如果是元音,则结构为“空空1字符空空2字符3字符4字符”;如果不是元音,则转2);2)查表3,判断字符的前3位是否是“上+基+下”的结构,如果是则判断第4位是否是元音,如果是元音,则结构为“空1字符2字符空3字符”,如果不是元音,则是“空1字符2字符3字符空空4字符”;如果前3位不在表3中,则转3);3)查表1,判断字符的前2位是否是“上+基”的结构,如果是,则判断第3位是否是元音,如果是元音,则结构为“空1字符2字符空空3字符4字符”,如果第3位不是元音,则结构为“空1字符2字符空空空3字符4字符”,如果藏字的前2位不在表1中,则转4);4)用藏字的前2位查表2,如果在表2中,再判断第3位是否是元音,如果是,则结构为“空空1字符2字符空3字符4字符”,如果第3位不是元音,则结构为“空空1字符2字符空空3字符4字符”表示;如果前2位不在表2中,则转5)步;5)用藏字的后3位表3,如果在表3中,则结构为“1字符2字符3字符4字符”,如果没有则转6);6)藏文的中间2位查表2,如果有则判断第4位是否是元音,如果是则结构为“1字符空2字符3字符空4字符”,如果第4位不是元音,则结构为“1字符空2字符3字符空空4字符”;如果中间2位不在表2中,则转7)步;7)通过判断第3位是否是元音来判断结构。作为优选,S5具体如下,当构件为5个字符,则识别构的方法如下:1)判断藏文字符的第5位是否是元音,如果是,则结构为“1字符2字符3字符4字符空5字符”,如果第5不是元音,则转2);2)判断藏文字符的第4位是否是元音,如果是元音,藏文字符的前3位查表3,如果在表3中,结构为“空1字符2字符3字符空4字符5字符”;如果藏文字符的前3位不在表3中,则用藏文字符的2、3位查表1,如果在表1中,则结构为“1字符2字符3字符空空4字符5字符”;如果不在表1中,则结构为“1字符空2字符3字符空4字符5字符”;如果藏文字符的第4位不是元音,则转3);3)藏文字符的第3位是否是元音,如果是,则用前2位查表1,如果在表1中,则结构为“空1字符2字符空空3字符4字符5字符”;如果不在表1中,则查表2,如果在表2中,则结构为“空空1字符2字符空3字符4字符5字符”;如果也不在表2中,则结构为“1字符空2字符空空3字符4字符5字符”;如果第3字符不是元音,则转4);4)用藏文字符的前3位查表3,如果有则结构为“空1字符2字符3字符空空4字符5字符”;否则转5);5)用藏文字符的中间3位查表3,如果有则结构为“1字符2字符3字符4字符空空5字符”,否则转6);6)用藏文字符的2、3位查表1,如果在表中,则结构为“1字符2字符3字符空空空4字符5字符”,否则结构为“1字符空2字符3字符空空4字符5字符”。作为优选,S5具体如下,当构件为6个字符,则识别构的方法如下:1)判断藏文字符的第5位是否为元音,如果是,则结构为“1字符2字符3字符4字符空5字符6字符”,如果否则转2);2)判断藏文字符的第4位是否为元音,如果是,则用藏文字符的前3位查表3,如果在表中,则结构为“空1字符2字符3字符空4字符5字符6字符”;如果没在表3中,用2、3位查表1,如果在表中,则结构为“1字符2字符3字符空空4字符5字符6字符”;如果否则结构为“1字符空2字符3字符空4字符5字符6字符”;否则结构为“1字符2字符3字符4字符空空5字符6字符”。作为优选,S5具体如下,当构件为7个字符,则结构为“1字符2字符3字符4字符空5字符6字符7字符”。与现有技术相比,本发明具有如下有益效果:1、藏文字符结构的正确识别。由于所有的现代藏字都包含在48种结构中,按照本发明提出的方法识别藏文字符的结构,识别结果可以达到100%的准确率。2、藏文字符的字典序的排序方法。在识别藏文字符构件的基础上,按照本发明提出的排序方法能够对藏文字符进行排序,排序的结果符合藏文字典序列。可以广泛用于计算机藏文数据的排序、藏文字典的编排等。附图说明图1为藏字结构图;图2为7个构件的藏字实例;图3为一个构件的音节识别流程;图4为两个构件的音节识别流程;图5为三个构件的音节识别流程;图6为四个构件的音节识别流程;图7为五个构件的音节识别流程;图8为六个构件的音节识别流程;图9为藏字字典序的层次图;图10为主函数流程图。具体实施方式以下结合附图对本
发明内容做进一步说明。本发明方案由藏文字符构件识别和藏文字符排序两个步骤及两部分组成。藏文字符构件识别是藏文字符排序的先决条件,只有正确识别了藏文字符的构件后,才能进行藏文字符的排序。一、藏文字符构件识别按照现代藏文字符的结构、构成一个藏文字符的字符数来识别藏文字符构件,具体方法如下:1、本发明按照藏文文法对现代藏字的构字结构进行分析,得出藏文有48种基本结构,如表1所示。表1现代藏字的48种结构2、优先处理“特殊结构”实现中首先判断该字符中是否含有“特殊构件”音节,所谓的“特殊构件”就是在“下加字”下面还有一个“再下加字”构件,虽符合现在藏文文法的规范,但这种结构主要只有和2个字符及包含该两个字符的字符集合。如果有“特殊构件”,再按照该结构中的字符个数和有无元音判断该“特殊构件”的结构3、本发明把藏文纵向固定叠加的组合块作为一个整体处理。研究藏文音节字的结构发现文法对“上加字+基字”、“基字+下加字”和“上加字+基字+下加字”叠加的限制非常严格,并且其数量也很有限,也没有任何规律,故选择该三个结构作为一个固定的结构,把要判断的当前音节在这些结构中查找,如果在该结构中找到就能很好、很快地判断该音节的结构。建立4个表,用于处理固定结构和识别特殊字符。表名描述表1shang_ji[33]上加字+基字表2ji_xia[36]基字+下加字表3shang_ji_xia[15]上加字+基字+下加字4、14个字符“二义性”进行特殊处理3个构件的藏字有一些具有“二义性”,如既可以识别为“前加字+基字+后加字”,也可以识别为“基字+后加字+再后加字”,针对这类音节,算法中需要做特殊处理。经过人工整理,共找到14个具有二义性的特殊音节,如表所示,在算法中约定这14个音节都按照“基字+后加字+再后加字”的结构进行处理。5、利用元音的特殊性识别藏文字符的构件本发明又充分利用藏文字符的特殊构件——4个元音,从藏文字符有无元音和元音的位置来判断构件。进行构件拆分,将识别的藏文字符的构件按照“前加字-上加字-基字-下加字-再下加字-元音-后加字-再后加字”八个部分放置,(一般藏文字符都是7个构件,如前所述只有“特殊构件”才会有“再下加字”构件),缺少的构件用“空”、“0”或“NULL”补齐。具体而言,详细的处理过程如下:本发明按照现代藏文字符的结构和一个藏文字符的字符数来识别藏文字符的构件。流程图如下图3。本发明除去“特殊构件”后,按照字符的多少把藏文字符处理分为7个种不同的情况分别处理,7中情况对应于构成藏文字符的1-7个构件数。按照七种情况识别构件的具体方法如下:1、如果藏字是1个字符就一定是“基字”,表示为“空空字符”2、如果藏文是2个字符,则识别构件的方法为:首先判断第2位是否是元音,是则表示为“空空1字符空空2字符”,如果没有元音,则查表1,如果有,判断为“上+基”的结构,如果表1中没有则查表2,判断为“基+下”。见流程图如图4。3、如果构件为3个字符,则识别构件的方法如下:1)首先,判断第2位是否是元音,如果“是”则表示为“空空1字符空空2字符3字符”,如果“否”,则转到2);2)查表3,如果表中有,则判断为“上+基+下”的结构,如果没有在表3中,则转到3);3)查表1,判断前2位是否在表1中,如果有则判断第3位是否是元音,如果是则表示为“空1字符2字符空空字符3”,如果第3位不是元音,则表示为“空1字符2字符空空空3字符”;如果前2位不在表1中,则转到4)步;4)后两位查表1,判断是否在,如果是则结构为“1字符2字符3字符”,如果后2位不在表1中,则转到5)步;5)用藏字的前2位查表2,如果在表2中,再判断第3位是否为元音,从而得到“空空1字符2字符空3字符”和“空空1字符2字符空空3字符”;如果不在表2中,则转到6)步;6)用藏字的后2位查表2,如果在表2中,则为“1字符空2字符3字符”,如果没在表2中,则转到7)步;7)判读第3位是否是元音,如果是元音,则表示为“1字符空2字符空空3字符”,如果不是元音,则转到8)步;8)通过判读该三个字符是否是表4中特殊的17种字符判读结构。流程图如图5。4、如果构件为4个字符,则识别构的方法如下:1)首先判断第2位是否是元音,如果是元音,则结构为“空空1字符空空2字符3字符4字符”;如果不是元音,则转2);2)查表3,判断字符的前3位是否是“上+基+下”的结构,如果是则判断第4位是否是元音,如果是元音,则结构为“空1字符2字符空3字符”,如果不是元音,则是“空1字符2字符3字符空空4字符”;如果前3位不在表3中,则转3);3)查表1,判断字符的前2位是否是“上+基”的结构,如果是,则判断第3位是否是元音,如果是元音,则结构为“空1字符2字符空空3字符4字符”,如果第3位不是元音,则结构为“空1字符2字符空空空3字符4字符”,如果藏字的前2位不在表1中,则转4);4)用藏字的前2位查表2,如果在表2中,再判断第3位是否是元音,如果是,则结构为“空空1字符2字符空3字符4字符”,如果第3位不是元音,则结构为“空空1字符2字符空空3字符4字符”表示;如果前2位不在表2中,则转5)步;5)用藏字的后3位表3,如果在表3中,则结构为“1字符2字符3字符4字符”,如果没有则转6);6)藏文的中间2位查表2,如果有则判断第4位是否是元音,如果是则结构为“1字符空2字符3字符空4字符”,如果第4位不是元音,则结构为“1字符空2字符3字符空空4字符”;如果中间2位不在表2中,则转7)步;7)通过判断第3位是否是元音来判断结构。具体流程图如图6。5、如果构件为5个字符,则识别构的方法如下:1)判断藏文字符的第5位是否是元音,如果是,则结构为“1字符2字符3字符4字符空5字符”,如果第5不是元音,则转2);2)判断藏文字符的第4位是否是元音,如果是元音,藏文字符的前3位查表3,如果在表3中,结构为“空1字符2字符3字符空4字符5字符”;如果藏文字符的前3位不在表3中,则用藏文字符的2、3位查表1,如果在表1中,则结构为“1字符2字符3字符空空4字符5字符”;如果不在表1中,则结构为“1字符空2字符3字符空4字符5字符”;如果藏文字符的第4位不是元音,则转3);3)藏文字符的第3位是否是元音,如果是,则用前2位查表1,如果在表1中,则结构为“空1字符2字符空空3字符4字符5字符”;如果不在表1中,则查表2,如果在表2中,则结构为“空空1字符2字符空3字符4字符5字符”;如果也不在表2中,则结构为“1字符空2字符空空3字符4字符5字符”;如果第3字符不是元音,则转4);4)用藏文字符的前3位查表3,如果有则结构为“空1字符2字符3字符空空4字符5字符”;否则转5);5)用藏文字符的中间3位查表3,如果有则结构为“1字符2字符3字符4字符空空5字符”,否则转6);6)用藏文字符的2、3位查表1,如果在表中,则结构为“1字符2字符3字符空空空4字符5字符”,否则结构为“1字符空2字符3字符空空4字符5字符”。具体流程图如图7。6、如果构件为6个字符,则识别构的方法如下:1)判断藏文字符的第5位是否为元音,如果是,则结构为“1字符2字符3字符4字符空5字符6字符”,如果否则转2);2)判断藏文字符的第4位是否为元音,如果是,则用藏文字符的前3位查表3,如果在表中,则结构为“空1字符2字符3字符空4字符5字符6字符”;如果没在表3中,用2、3位查表1,如果在表中,则结构为“1字符2字符3字符空空4字符5字符6字符”;如果否则结构为“1字符空2字符3字符空4字符5字符6字符”;否则结构为“1字符2字符3字符4字符空空5字符6字符”。具体流程图如图8。7、如果字符为7个字符,则结构为“1字符2字符3字符4字符空5字符6字符7字符”。二、藏文字符排序1、本发明中确定了藏文字符字典序的排序模型经研究发现,由于藏文字典序是人为规定的一种序列,所以不同的字典对字的序列规定也有所区别。通过《藏汉大词典》等词典的排序情况分析后得到藏字的字典序列是分层循环。如图9所示,层次上分为:最核心的层次即第一层是基字层,这是构成每个藏字的基础和必不可缺少的构件,而从第二层到第七层分别是上加字、前加字、下加字、元音、后加字和再后加字,第二层到第七层上的字符不是构成藏字必不可缺少的成分,即按照藏字的不同,这些成分是可以缺少的,图中用0表示该缺少的成分。现代藏字的字典序列是,以基字为核心,与二至七层的字符分层组合,每一层又与其外层的字符依次组合,其中构件的辅音序列为藏文字母序。举例说明:字典序中的第一个字是与其他六个层的0组合;第二字是与第二至第五层的0,第六层的组合;第七层再后加字必须加在后加字后面,也可以认为单一后加字是跟再后加字0组合的结果。依次类推,字典字符的序列应该为:(如果有的话)2、本发明确定的藏文字符排序的实现过程(1)藏文字符在计算机中的存储方式藏文排序要比较藏文音节字的结构,所以从文本中读取藏字后首先要识别构件,构件与藏文音节字要作为一个元素,故定义一个TibetWord结构体,把读取的音节和识别的构件存入一个结构体中。存储空间主要用来存放音节及构件,结构体数组定义如下:(2)藏文字符的排序方法选择一种排序方法进行排序,藏字排序内循环具体过程如下,①比较基字,即第3位,若基字不相等,则比较结束,返回基字的比较结果,否则执行第②步;②比较上加字,即第2位,若上加字不相等,则比较结束,返回上加字的比较结果,否则执行第③步;③比较前加字,即第1位,若前加字不相等,则比较结束,返回前加字的比较结果,否则执行第④步;④比较下加字,即第4位,若下加字不相等,则比较结束,返回下加字的比较结果,否则执行第⑤步;⑤比较再下加字,即第5位,若再下加字不相等,则比较结束,返回再下加字的比较结果,否则执行第⑥步;⑥比较元音,即第6位,若元音不相等,则比较结束,返回元音的比较结果,否则执行第⑦步;⑦比较后加字,即第7位,若后加字不相等,则比较结束,返回后加字的比较结果,否则执行第⑧步;⑧比较再后加字,即第8位,返回再后加字的比较结果,比较结束。(3)应用到具体的一种计算机排序方法中选择的排序算法不同,函数的流程图也不同,以“归并排序”进行藏文字符排序的流程图如图10所示。当前第1页1 2 3 
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1