作者cnoize (泥巴星球Server)
看板IME
标题[xx] 快速记忆机器人脑输入法(01)
时间Wed Apr 18 19:51:40 2007
由於内容没有条理, 本系列文章为草稿.
在此为各位读者介绍一个史上最多字根(字块)的输入法,
它的名字是: "快速记忆机器人脑输入法", 所使用的编码可以称为
"千万字块码".
类型:全形
码键:标准文字 26 个 [a-z]{3}, 选字键 " 1234567890-=",
符号及控制键 "`[]\;',./", 三字词 "[a-z]{3};",
输出键为 选字键 加 ",."(已输入超过三码时)
授权: 免费使用.
进度: 编码中, 目前 2187 个字根, 15681 个字.
这不是给平凡人使用的输入法.
将打字比赛当作是休闲活动的电脑重度使用者或许可以一试,
也可以用相似的观念做出较实用、适合自己的输入法.
这个输入法的字根大约从 3500 个到 100000 个之间.
字根多的原因是因为编码范围大, 作者会尽量将所能找到的电脑文字编入.
受限於规则, 字根数量增加得很快.
目前看到的文字数量如下:
今昔文字镜 汉字 128573字
Unicode 累计的 74480 字.
CCCII 75684 字
CNS11643 全字库 92690 码
四库全书逾82000字(造字约 1 万字)
香港常用中文字体 约 4900 字.
佛典造字 数量不明.
不过这个输入法的重点不是那些很少用到的不常用字,
而是分为四组的标准字集. 标准字集内部不重码,
用补码将每个字补成固定三码. 三字词的简码预设为加上 ";".
预设的标准模式, 标准字集 = 标准字集1 (可用热键切换)
(切换时可以一起切换简码区).
标准字集1 = big5 + gb2312 + jis0208
标准字集2 = GBK/2 汉字6763个 + GBK/3 汉字6080个 + 其他常用字.
标准字集3 = jisx 0208 + jisx 0212 + ...
标准字集4 = BIG5HKSCS 为主
作者本人常用的标准字集1
big5 约 13053 (再加 7 个倚天字), 在 unicode 中, gb2312
约有 6763 字, 去掉与 big5 同位置的部分,还有 2381 个.
jisx 0208 约有 6356 字, 去掉与 big5 & gb2312 同位置的部分,
还有 848 字.
13060+2381+848 = 16289 字.
26*26*26 = 17576 字, 所以每个字都用三键, 可以做到不重码.
(big5 + gb2312 + jisx 0208 的文字) (符号另外处理)
在标准模式是标准字集1时, 输入三键 + "2" 是输出 GBK 字元,
+ "3" 输出 JIS 字元, + "4" 输出 BIG5HKSCS 字元.
输入三键 + "1" 不变, 输出标准字集1字元.
标准字集1 ~ 4 之间, 同形的字键位相同.
不常用字选字区 [a-z]{3} + "567890-=", 空间 26*26*26*8 =
140608.
三键 + "5" 越文汉字、喃字
三键 + "9" 韩文汉字的同形异音字. (编码不同)
(参考 CJKV 933 页, Duplicate Hanja in KS X 1001:1992)
让标准字集内部不重码的技巧有三种:
1. 补码, 以尾码为主, 容易造成重码的状况就补首码.
2. 增加字根, 将其他输入法重码的字形用不同的字根分开.
U+54E1: 员 (贝) (八) # 员 (b5)
U+5504 : 口 贝 (八) # 呗 (b5)
3. 一个字根可以对应到多键.
例如这个不常用字 "乜", 可以依需求, 找一个空位,
随意编成 "EXS".
由於这是一个不常用字, 所以可以不必学.
不过对於有需求的人而言, 不需要选字, 整个系统仍然无重码.
U+4E5C : 乜 EXS # 乜 (b5)
4. 因此标准输入方式是四键出字. (包含空白或 1 ~ 0-= 选字键)
用独有的无智能整句方式输入时, 平均约三键出字.
特色:
1. 无省略字形, 字形损耗率为零:
一般的拆字输入法, 常常采用 "首、次、三、尾" 的方式取码, 我认为
这样子不合理, 会造成讯息的损失, 所以用相反的方法处理, 字根一定
可以组成完整的文字.
2. 用可见字组描述字根:
在每一个独立支援的字集, 都可以用字集内的字元描述字根.
如此就不必造字, 也可以描述字根, 方便使用者学习.
U+897B : 左衣 攀 (手) # 襻 (b5)
U+7126 : 隹 下火 (点) # 焦 (b5)
这个设计可以用电脑程式语言的机器码和组合语言来说明.
[a-z]{3} 的键位是机器码, 数量达到 3500 个以上的字根(字块),
是组合语言的助忆码.
直接将字块连结到键位的原因是虽然这样记忆量大, 但从学习到使用
的时间短, 就如同使用九九乘法表计算一样.
一般的输入法就像是用 C 语言写程式, 再运用一些简单的规则在脑中
转成机械码, 虽然整个语言的规则和关键字(保留字)(字根)不多, 学习
容易, 但是使用时要花一点时间拆字、转成键位.
3. 拆字时不会有困难:
所有的字形都包含在字根表之中了, 拆字一定不会有问题. 不会的字
只需查表即可.
4. 没有容错编码.
一字三码, 三码一字.
5. 如果正式版本编码错误, 则增加注解、不予修正.
改版的全新版本, 所有键位对应会全部改变.
6. 简码区优先放词.
因此标准的简码数量为:
26 ([a-z] 加一个空白.)
26 * 10 = 260 ([a-z] 加 1 ~ 0 选字.)
26 * 26 = 676 ([a-z] 两个键加一个空白.)
26 * 26 * 10 = 6760 ([a-z] 两个键加 1 ~ 0 选字.)
例如 "s " => "所以", "u " => 於是, "y " => "因为"
简码区优先输出词语的输入法不多.
7. 在 1997 年时的设计是只有标准字集1. 当时有一种单字比赛模式
(三键输出, 免按空白键)的想法, 不过这个模式无法跟词结合.
(例如: 如果要四键产生四字词, 就不能三键上屏).
最近有新的修正想法, 这应该也是目前世面上的输入法所无的特殊设计.
称为 "无智能的整句输入", 包含修正码的设计. 设计的思路是
"免按空白键"、"可以用backspace或修正码修正"、"可以使用超过三键的词".
输出键是 " 1234567890-="(选字键) ",."(常用标点, 需要已输入三码,
未达三码是符号或使用者自订简码.)
程式的设计很简单: 选择最长的序列断字断词. 有提示区显示目前状态,
按输出键时输出.
例如编码是:
. 。 # 句号
, , # 逗号
abc AA # 字
abcde; TTUUIIDDRRLL # 词
abcde;1 SSTTUUVVWWXXYYZZ # 词, 选字键 "1"
"abcde;1" => SSTTUUVVWWXXYYZZ # "abcde;" 选 1, 输出八字词.
"abc de;1" => AA(输出)BBCCDDEE # abc 输出字 AA, "de;" 选 1 输出四字词
"abcde;/a1" => AABBCCDDEE # /a 修正码, 让程式在 "abc" 就输出字,
而不选取最长词 "SSTTUUVVWWXXYYZZ"
"abcde;" 提示区显示 "TTUUIIDDRRLL", 但不输出, 按 " ,." 时才输出.
",." 分别再多输出逗号、句号。 (已有三键输入时 ",." 的单键出字技巧).
所以短句: "开门见山。" 可以用五键输入: "odsm." 一键一字.
8. 常用词、常用字会依据双手按键的均衡度排列.
由於支援的字数过多, 这个输入法在这方面不容易做得好.
9. 学习方式: 查表, 参阅字块联想到键位的说明.
左衣: 衣服 (C)loth
攀: 攀爬 (C)limb
手: 手 (H)and
还右: 归还 (R)eturn
隹: 隹, 尾巴短的鸟 (B)ird
下火: 火 (F)ire
点: 点 (D)ot
U+897B : 左衣 攀 (手) C C H # 襻 (b5)
U+7126 : 隹 下火 (点) B F D # 焦 (b5)
未完,待续.
请参考作者的输入法网页:
http://info.sayya.org/~cnoize/im/
:liame (gmail)
moc.liamg ta sohtne
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 202.145.82.143