分享
 
 
 

我的形码输入法[C语言] 之四:输入法的设计(2)

王朝c/c++·作者佚名  2006-01-09
窄屏简体版  字體: |||超大  

输入法的转换需求:四位以下的数字-》字或词

词库的编码需要:字-》编码

从前篇的叙述以及上面的需求上可以看出,需要下列库:

字库:常用、罕用

词库:常用、罕用

考虑到字只有16位(不支持宽字),而且编码最多只有11110种(用排列组合算一下:)

我采用了数据文件以及索引文件的方法

其中:数据文件存放实际内容,索引文件把编码或这字作为索引指向数据文件中的内容(这个设计贯穿了整个输入法设计的始终)

字库索引:

首先,我做了一个 编码-》汉字 的索引,把编码转换位一个四位数,然后以这个四位数的值作为位置在索引文件中取索引,然后根据索引找到这个编码所对应的字起始位置。这么说可能不大好理解,举个例子:

编码:3584 ,索引文件中3584 * 2(乘以2是因为一个索引值占16个bit,即两个字节)位置上的一个WORD大小的内容就是编码3584 对应的字在数据文件中的起始位置,然后循着这个起始文件的位置,知道找到一个句子结束标志,其中所有的字就是3584 对应的所有的字,至于怎么显示只是个小问题了。

如数据文件那一行内容为:

3584 辞稡狡饺觪辤辭猝獐皎鮫鲛鱆

那么3584的编码对应字就都找出来了,这个会有几十个文件读取操作速度不算很快,但是对于输入法来说微乎其微。

词库编码生成:

前面说过词的编码是可以通过字的编码生成的,生成规则也在前面的文章中介绍过,要用到字的编码,即需要根据字来查编码

我分析了一下字,发现从0x0000 -》 0xFFFF只有0xFFFF种情况,而一个编码可以用一个WORD的内容来代替(两个BYTE),那么可以建立一个索引文件,以汉字的数值为索引,其对应的索引文件位置的内容为数值编码,然后转化一下就可以得到这个字的编码了,整个文件大小64 * 4=128K,即一个128K的索引文件,虽然大部分的地方浪费了,可以换个快速的查找也是值得的。

词的索引:

其实词的索引和字的索引类似,也从编码变到索引再从数据文件中取出一行词来,只不过词之间要用空格或者tab进行分隔,而字不需要罢了

坏了,出问题了:

仔细想一想上面的设计有什么问题?哦,有些字像“一”,只有一个编码,还有的字只有两个三个编码的,这时候编码“99“对应的数值是九十九,而编码“099”对应的也是九十九,怎么办?

呵呵,后来我给每一位都加上1,然后使用十六进制,即0013的数值是0x1124,0099对应的是0x11AA,这样就没有问题了,但是为了保险(后面就遇到了问题)起见,把空编码计为0xF,即编码042对应于0xF153,这样就没事了。

好了,今天就写到这里了,有些乱了,整理整理再写

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
推荐阅读
 
 
 
>>返回首頁<<
 
靜靜地坐在廢墟上,四周的荒凉一望無際,忽然覺得,淒涼也很美
© 2005- 王朝網路 版權所有