藏文联想输入法设计

时间:2022-07-04 12:23:23

藏文联想输入法设计

摘 要: 藏文输入法是藏文信息处理技术的一项基础工作,藏文输入法包括藏文单字输入法和词语联想输入法。文章在讨论藏文输入法实现方法的基础上,设计了藏文联想输入法中的生成树模块、检索模块和联想模块。

关键词:藏文信息处理 联想输入法 生成树

中图分类号:TP391 文献标识码:A 文章编号:1003-9082(2015)06-0002-01

一、引言

藏文是属于拼写文字,具有纵向和横向组合的特点,一个完整的藏文字由七个部件组成,按书写顺序依次是前加字、上加字、基字、下加字、元音、后加字、又后加字。藏文输入法就是根据用户的输入查找出相应的藏文字供用户选择,它分为两部分,一是运用分析、综合的方法将藏文字排序,也就是字库和码表的生成;二是运用一定的方法将需要的藏文字从字库中取出来,也就是检索,其难点在于检索算法的构造。目前已经开发出来的藏文输入法有方正、华光、桑布扎、班智达等,这些输入法不具有联想功能,从而影响了藏文字输入的速度。本文在讨论藏文输入法实现方法的基础上,设计了藏文联想输入法中的生成树模块、检索模块和联想模块。

二、藏文输入法的实现方法

构造藏文外码到内码的转换通常有两种方法,一是采用数组,二是采用有序树。

1.数组方法

藏文有30个辅音,将第一个字母相同的藏文字定义为一个数组,共有30个数组,分别用unsigned char zw-a[]、unsigned char zw-b[]、……、unsigned char zw-z[]表示。根据用户输入的藏文字在相关的数组中查询,得出相应的藏文字供用户选择。采用数组的方法虽然实现简单,但该方法不易实现藏文的联想功能。

2.有序树方法

静态数组不能动态释放内存,由数据结构算法可知,其检索效率不高,因此有必要将藏文单字构成一棵有序树,动态生成与释放,并且在树中的结点域中不包含藏文字,节省资源。键树是一种特殊的查找树,其树中每个结点不是通常意义的关键字,而是组成关键字中的一个字符,从根到叶子结点的一条“路径”才对应一个关键字。

设字符集{AE,AF,AG,AH,AI,AL,AN,AO,AR,AU,BA,BD,BG,BK,BN,BR,BS},按首字母将其分解得{AE,AES,AEH,AF,AFA,AFD,AFG,AG,AH,AI,AK,AKA,AKD,AKF,AL,AN,AO,AR,AU}和{BA,BD,BG,BGS,BK,BKS,BN,BR,BS}对于关键字个数大于1的集合再按第二个字母进行分解为{{ AF,AFA,AFD,AFG},{ AK,AKA,AKD,AKF }},其它的集合也按类似的方法分解。按此方法分解的集合很容易生成一棵有序树,同一层的兄弟结点之间所含的字符从左至右有序。从根结点到某子结点或叶子结点的一条路径构成一个关键字,对于某结点的子结点来说,它是有序的,即从左至右由小到大排列,这样将有利于构造和检索。

三、藏文联想输入法的设计

藏文输入的关键是根据用户的输入,从给定的字库中检索出相应的藏文字,即由用户的输入得出相应的藏文字的位置信息,根据该信息检索相关藏文字供用户选择,具体实现分为生成树模块、检索模块、联想模块。

1.生成树模块

为了实现该树的自动生成,需要构造一张藏文码表,该表主要包含字母和它对应的藏文字的个数。为了自动地生成有序的树,该表中的字母必须按照以字母从小到大排列,即首先比较第一个字母,第一个字母相同再比较第二个字母,以此类推。生成树模块主要从字母表中读取字母对应的藏文字信息,采用递归的方法自动实现。

2.检索模块

检索模块主要是根据用户的输入在树中查询相应的结点。从根结点出发,沿着与给定值相应的指针逐层向下,若分支结点值和给定的值相等,则停止查找,若不相等,则继续向下查找,直至叶子结点。若叶子结点相应的域值和给定值相等,则查找成功,否则,查找过程失败。当查找成功时,取相应结点包含该字母对应的藏文字的位置和个数信息,因此很容易以这两个信息作为参数从字库中得到字母相同的藏文字。

3.联想模块

联想功能是在用户完成一个藏文输入时,提示相关的藏文字供用户选择。要实现联想功能,需要重新构造一张表,称为联想码表,表中保存用户选择的藏文字在字库中的位置信息和由该藏文字母开头的联想到的藏文字在字库中位置信息。 将一个字母对应在字库中的位置信息称为地址,则联想码表即是用户选择的藏文字母地址和该藏文对应的联想藏文字的地址表,通过这张表,可以自动构造一棵数字键树。

struct node_figure

{short figure;//该结点的关键字,为0-9的数字

short add[9];//联想藏文字的地址数组,保存相应藏文的地址信息

struct node figure *child―figure,*next figure,*parent figure;}root_figure[10];

在该树中,结点的关键字不再是字母,而是数字。由根结点到分支结点或是叶子结点的路径表示用户选择的藏文字的地址信息,当用户从字母相同的藏文字中选出所需的藏文时,将该字在字库中的地址作为参数传递到联想子程序,并以该信息作为检索的条件在生成树中查询,得到由该字联想到的藏文字的地址信息,再从字库中取出藏文字供用户选择。如,当用户输入 时,系统自动查找到其,以该内码为参数,在联想码表生成树中查找该内码对应藏文字的联想藏文字,从其中取出由该字联想到的所有藏文字,以一个静态数组记录其内码,可选择所需的词组并显示,若有多个则顺序显示。

四、结束语

目前已开发出来的藏文输入法有多种,常用的有方正、华光、桑布扎、班智达等,这些输入法各有优点和缺陷,一个藏文单字最多的要输入七个部件,输入时需敲击七个键盘字母,影响其输入速度。本文根据以上各种输入法的缺陷,利用有序树的方法实现藏文联想功能的输入,提高了藏文输入的速度和效率,对藏文的信息处理和研究、办公自动化带来更大的方便。

参考文献

[1]中华人民共和国国家标准.信息技术藏文编码字符集( 基本集) 键盘字母数字区的布局(GBPT17543-1998)[S].中国标准出版社,1999.

[2]德熙嘉措.藏文计算机键盘的国家标准的研究[A].第三届中文信息处理国际会议论文集( 第2卷),1992.

[3]张泽斌等.常用汉字编码与键盘指法训练[M].科学出版社,1992.

作者简介:万玛冷智(1973-),男,藏族,青海尖扎,硕士研究生,研究方向:藏语自然语言处理;才智杰(1970-),男,藏族,青海西宁,教授、硕士生导师,研究方向:藏文信息处理,藏语自然语言处理。

上一篇:大盘股“泡沫”更大 下一篇:浅谈我国民航通信网络发展