中文拼音输入法设计要点.doc

上传人:pu****.1 文档编号:544647451 上传时间:2023-12-18 格式:DOC 页数:5 大小:28.51KB
返回 下载 相关 举报
中文拼音输入法设计要点.doc_第1页
第1页 / 共5页
中文拼音输入法设计要点.doc_第2页
第2页 / 共5页
中文拼音输入法设计要点.doc_第3页
第3页 / 共5页
中文拼音输入法设计要点.doc_第4页
第4页 / 共5页
中文拼音输入法设计要点.doc_第5页
第5页 / 共5页
亲,该文档总共5页,全部预览完了,如果喜欢就下载吧!
资源描述

《中文拼音输入法设计要点.doc》由会员分享,可在线阅读,更多相关《中文拼音输入法设计要点.doc(5页珍藏版)》请在金锄头文库上搜索。

1、导入我的形码输入法C语言 我的形码输入法C语言 之一:输入法的字词编码 以下的介绍内容涉及到专利权的,不过不是偶的,是客户的:) 用在windows平台上,是形码输入法,使用四位十进制数字代替形码: 0 口囗日目曰罒 1 丨丶宀 2 一 3 丿 4 十乂艹丰井卅 5 亅了亠广疒 6 乚厶厂乙 7 乛丆亻又廴 8 八丷冫氵人入 9 冂凵匚冖卩几彐月凡臼卪 、左右结构字:左边只取第一码,右边按笔顺取前两码和最后一码。例如: 社142捡2822科3114杨4533新5621铝600码7752泅808欧9378呻001 2、左中右结构字(中间和右边合在一起,作为右边)按左右结构字规则取码。例如: 龇1

2、126班2132狮3131柳4939辩5164缴6304候7171湖8409膨9423啷0191 3、其余结构字:按笔顺取前三码和末笔码。例如: 宴1067露2910毽3227春410卫512等6641面7012送8247免3706圆0098 4、框形编码时不能按笔顺拆开。 词的编码如下: 两字词:两字前两码 三字词:第一字两码,后二字各一码 四字词以上:第一字和最后三字各一码 =我的形码输入法C语言 之二:输入法的功能 输入法要实现: 1、字词编码2、常用字和罕用字、常用词和罕用词分开3、打字词上屏后给出拼音提示、编码提示4、可以加词(包括批量导入),可以智能组词,可以智能加整句(目前功能不

3、完善)5、打字词上屏后可以联想以其开头的词(词组关联)6、词语和编码查询7、中文字词-英文,拼音-中文,英文-中文,数码转中,简繁输出等8、有大键盘和小键盘两种输入方式。9、可以使用软键盘。10、提供打字练习、帮助等附件呵呵,就这么多吧,其他的以后再添加=我的形码输入法C语言 之三:输入法的设计(1) 本篇只叙述我的形码输入法内部从输入到输出转换的原理,如果想要了解输入法程序的框架是怎么样的、到底是怎么被调用出来的,请参见自由拼音输入法源码3.1版,我最初的程序就是用这个改的 如果想要了解windows平台输入法编程时的接口、convension等等,请参见以下这几篇文章,其中详细的说明输入法

4、程序是如何进行工作的:http:/ http:/ http:/ 关于编写输入法程序要注意的问题以后我可能会写一些,有问题,直接跟我email联系交流:mail to : 输入法乍听起来好像很难做,其实原理却很简单:从输入的数字或者英文找出与之汉字或者词语对于我这个输入法而言,最长的编码就是四位数字参见我前面的文档 (后来添加了数码转中和拼音、英文转中不算,这个是附加功能),而且词的编码可以由字的编码来生成,所以只需要有个有编码字库就可以了,然后到网上去下载一个别人的什么十三万啦、三十万啦,稍稍修改以后往里面导入就可以具备一个不错的大词库了现在的汉字有好几万,但常用的汉字有六千七百多,所以输入

5、法中常用字和难字是分开的,一般输入的编码查处来的只是常用字,可以用个键进行切换,暂定的是键,就是tab键上面按个键,称为难字键同时,词库也有很多内容,如果都放在一起使用起来翻页较多影响效率,所以把词库也分为两类:常用词库和罕用词库(也叫非常用词库),使用/键进行切换。由于输入法只需要输入数字和翻页,所以只要小键盘就可以完成(这个特点对于以后把输入法移植到手机上极为有利)小键盘功能说明:NumLock : 未使用1-9:输入编码,选字词/ :常用词语和罕用词语切换* :类似于空格上屏,但是不一样的是可以终止编码输入用来选字,如输入123,这时候并没有处于选字状态,还可以输入4,如果想选字,可以使

6、用星号键,就处于选字状态了,- + :上下翻页以及激活选字(这个以后再说),其中-还可以用来删除前面输入的词,即一次回退一个输入的词,如输入了词语“身体”,然后按-,就可以删除这两个字,多个字也是一样. (Del) :删除一个词,也可以在编码输入状态删除一个编码Enter :删除输入的编码,用于编码输入错误的情况下进行修正= 我的形码输入法C语言 之四:输入法的设计(2) 输入法的转换需求:四位以下的数字字或词 词库的编码需要:字编码从前篇的叙述以及上面的需求上可以看出,需要下列库:字库:常用、罕用词库:常用、罕用考虑到字只有16位(不支持宽字),而且编码最多只有11110种(用排列组合算一下

7、:)我采用了数据文件以及索引文件的方法其中:数据文件存放实际内容,索引文件把编码或这字作为索引指向数据文件中的内容(这个设计贯穿了整个输入法设计的始终) 字库索引:首先,我做了一个 编码汉字 的索引,把编码转换位一个四位数,然后以这个四位数的值作为位置在索引文件中取索引,然后根据索引找到这个编码所对应的字起始位置。这么说可能不大好理解,举个例子:编码:3584 ,索引文件中3584 * 2(乘以2是因为一个索引值占16个bit,即两个字节)位置上的一个WORD大小的内容就是编码3584 对应的字在数据文件中的起始位置,然后循着这个起始文件的位置,知道找到一个句子结束标志,其中所有的字就是358

8、4 对应的所有的字,至于怎么显示只是个小问题了。如数据文件那一行内容为:那么3584的编码对应字就都找出来了,这个会有几十个文件读取操作速度不算很快,但是对于输入法来说微乎其微。词库编码生成: 前面说过词的编码是可以通过字的编码生成的,生成规则也在前面的文章中介绍过,要用到字的编码,即需要根据字来查编码我分析了一下字,发现从0x0000 0xFFFF只有0xFFFF种情况,而一个编码可以用一个WORD的内容来代替(两个BYTE),那么可以建立一个索引文件,以汉字的数值为索引,其对应的索引文件位置的内容为数值编码,然后转化一下就可以得到这个字的编码了,整个文件大小64 * 4128K,即一个12

9、8K的索引文件,虽然大部分的地方浪费了,可以换个快速的查找也是值得的。 词的索引:其实词的索引和字的索引类似,也从编码变到索引再从数据文件中取出一行词来,只不过词之间要用空格或者tab进行分隔,而字不需要罢了坏了,出问题了: 仔细想一想上面的设计有什么问题?哦,有些字像“一”,只有一个编码,还有的字只有两个三个编码的,这时候编码“99“对应的数值是九十九,而编码“099”对应的也是九十九,怎么办?呵呵,后来我给每一位都加上1,然后使用十六进制,即0013的数值是0x1124,0099对应的是0x11AA,这样就没有问题了,但是为了保险(后面就遇到了问题)起见,把空编码计为0xF,即编码042对应于0xF153,这样就没事了。

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 生活休闲 > 社会民生

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号