作者cnoize (泥巴星球Server)
看板IME
标题[xx] X X 输入法简介 2005-02 (2) 答客问
时间Mon Mar 7 01:30:16 2005
相关文章会放置於下列网址:
http://info.sayya.org/~cnoize/im/
感谢有读者愿意提出问题.
改编之後的问题和答案如下:
Q: 制作动机?
A: 这是我自己需要的输入法, 所以最後做出来的成品会以我个人
的需求为准, 并不需要考虑别人的想法.
我的需求: 盲打(不用选字)、三码出字、常用简体字、常用日文、
常用香港字、快速选词.
输入法已有数千种, 没有特色的输入法没有必要制作.
我的输入法特色就是 "常用的编码无重码(跟一般的输入法常用字
无重码不同)"、"字根数量最多"(最多并不代表最难学习)
Q: 字根多会造成学习困难?
A: 网友 picmemory 先生制作了下列网页:
图像记忆法 -
http://home.kimo.com.tw/picmemory/
学习方法研究会 -
http://tw.club.yahoo.com/clubs/study_study
有遇到困难的人可以利用上述资料学习.
我个人从小到现在研究的是: 速算、心算、速读、速记、速听术、
记忆术、读书法、静坐、气功及各种提升能力的技术. 虽然只了解
基本的理论, 不过根据我的专业知识判断, 这个输入法并不会比其
他的技术困难.
Q: 字根过多会让大脑多花时间来处理字, 让输入的时间变长?
A: 我的理论是 "按键输入所需的时间跟输入法学习的难度相关系数低".
输入法是否易学跟是否易用也无关, 字根数量多也不代表不易学习.
Q: 字根过多键盘无法容纳?
A: 这个输入法的学习方法是以字为主, "字 -> 字根 -> 键位",
字根之间并无关联性, 不需要考虑这类问题.
Q: 作者只分析了约两万常用字, CCCII/Unicode 五万字以上的部分
如何处理?
A: 三码标准字的选字区 "5 ~ 0" => 6*26*26*26 = 105456 的空位
将会容纳这些较不常用的字. 我可以再增加一万个字根来让这些字
尽量平均分配, 不会让某一个按键顺序出现超过十个待选字的状况.
同时这些选字的顺序也是固定的, 我的输入法也把标准字的选字顺序
当成一种无重码的手段. 无重码只是为了可以盲打而已, 并不会造成
设计上的负担.
Q: "其他特色 -> 无省略字形" 怎麽相反, 如何全取?
A: "不但不省略, 字形还常常重复使用" 这一段的意思有两个方面:
以 "品" 为例
1. U+54C1 : 品 (口) <口> # 品 (b5)
"(口)" 是品右下角的 "口", "<口>" 是首码, 是上面的 "口".
2. 虽然 "品" 已经是字根了, 但是 "喿" 仍然是字根, 它包含了
"品" 这个字形.
U+55BF : 喿 (木) # 喿 (b5)
这边还有一种状况, "衣" 一个字根, 但是它的部分字形 "衣下"
也是一个字根(副根).
U+8881 : 袁 (衣下) # 袁 (b5)
参考 "Google 搜寻: 说文输入法 字形 损耗率"
说文输入法 - 中文输入法大势评议
http://shuowen.net/DaShiPingYi.htm
"字形损耗率
研究输入法的人还提出一个理论,叫做「字形损耗率」。它的意思是:将一
个字拆开成几个部件,而将每一个部件赋予一个编码,如果所采取的部件极小,
例如小至最极端的笔划,那麽一个字将会包含很多个部件,亦即其编码会很长。
为了减少编码,一般输入法会订立一些规则 ,例如只取「头三尾二」,中间的
笔划不要,这就做成了极大的字形损耗率,亦说明为什麽一个字取五码之多而仍
然有相当多的重码字,因为字形损耗率越大,就越不能表现每一个字的特徵。
上举仓颉输入法的「顺」字是一个例子:仓颉采用的是小部件,所以是众多
输入法中字形损耗率较高的,例如「顺」字中「页」的上及中没有采纳作编码。
反观理想的输入法将「顺」分成「川」和「页」两个部件,将整个字涵盖,因此
字形损耗率为零。"
我的输入法正好字形损耗率为 100% 为零, 还可以提出一个新名词叫做: 字形的
"重复使用率", 例如 "一"、"口"、"十" 等等都是常常被使用的字形.
字形全取的方法当然是增加字根, 2002-02-10 的文章就写了:
""X X 输入法" 有一个概念是 "字字皆字根", 意思是每一个字可能
本身就是一个字根, 或是包含着 "完整的字根". 另外的意义是,
每个字的每一个部分, 都是某个字根所包含的范围.
也就是说, 在 "X X 输入法" 并没有被省略的笔划、字形, 这一点
也跟其他的拆字输入法不同."
Q: "U+4E5C # 乜 (b5) 随意编成 'EXS'" 是独立出来的「特殊字」?
A: 我的输入法基本上是查表法, 并没有规则上未列出的例外字,
会有各项的统计资料显示每个字根的投资报酬率.
Q: 重复字的影响并不大?
A: 请参阅下列网址, 主要是 unicode 字数多延伸出的问题.
重复字也会在不同的系统产生选字顺序不同的状况, 这方面的影响
很大.
http://www.ideographer.com/article/panthercangjie2.php
http://www.ideographer.com/article/panthercangjie.php
http://www.array.com.tw/BOX/BOX2.htm
"因此规定罕用字需加按「I」键"
我的输入法处理这类字元的方法是: 有 "简彦" 的就应该不是 big5,
而 gb2312 的字根包含的是 "简页".
U+984F: 彦 页 (贝) # U+9854 U+989C # 颜 (b5)
U+9854: 简彦 页 (贝) # U+989C U+984F # 涌 (jp)
U+989C: 简彦 简页 (人) # U+9854 U+984F # 晇 (gb)
Q: 新的输入法没有办法随处安装?
A: 请参考 telnet://ptt.cc IME 版的 "伪.虾米" 程式,
它是应用软体层级的输入法系统.
我在 2002-09-13 写的文章也早已提出这个概念:
"有时候会看到中文讨论区内提到输入法内建的问题.
他们的论点是:
1. 作业系统不内建, 需要另外购买.
2. 公司为了防毒, 不允许安装软体.
3. 费用问题, 公司不肯购买输入法软体.
其实, 这些全部不是问题, 只要用点小小的技巧即可解决:
a. BBS 内建输入法.
b. Editor 内建输入法.
c. WWW Java 网页内建输入法.
d. 应用程式内建输入法.
e. 写个使用 ncurses 函式库或其他工具的输入法小程式. (非完整的 editor)
使用 unix 的人, 这一项应该很容易写. 用 Perl/C/Shell script
等等, 很快就可以写出来.
a 项有一个相关的事件我记得很清楚, 记得以前 woju 发展 sob maple bbs
时, ve 有提供注音输入的功能, 我还以为他有跟我相同的 idea, 结果
仔细一看, 只是输入注音的功能而已. 不过, 要让 sob bbs 的 ve 支援完整
的输入法功能其实是非常简单的, 只是一些英数等切换方式要改用 ESC-E 之
类的方式而已.
(( sob.twbbs.org post => ve => (ESC-P) 切换注音直接打模式 ))
(( 只要用用看就知道, 做成一个 BBS 式的输入法很简单 ))"
依照目前流行的趋势, 把输入法做进跨平台的 BBS 软体例如 "PCMan/BBMan"
即可解决大部分的输入法使用问题.
(
http://pcman.ptt.cc/)
再把输入法做进跨平台的编辑器 vim, 就可以解决 90% 以上的中文输入需求了.
(
http://www.vim.org/)
Q: 访客的输入法概念.
(
http://free.tnc.edu.tw/modules/news/article.php?storyid=1746)
A: 混合式的输入法很多.
注音 + 大易 - 盛兴输入法
http://input.cpatch.org/input/dasn/w95chusn.txt
拼音方式(简体) - 模糊元码输入法
http://www.mhym.com/y3.htm
自动学习程式 - 得意输入法
http://www.smartinside.com.tw/
游标组合成字 - 冲锋输入法
http://jedi.org/blog/archives/003182.html
Q: 行列三十就够用了? (发问的读者很少需要选字.)
我用的中文系统基础是 linux 里面的 yact.
ARRAY30.tit (中文【行列30】, yact tit 格式表格, \040 表示空白键)
q\040 七 # ---> 1^ 0
q\040 工 # ---> 1^ 0
k\040 人 # ---> 8- 0
k\040 入 # ---> 8- 0
k\040 八 # ---> 8- 0
输入 "k ", 系统会提示 "1人 2入 3八", 此时必须要输入 "1/2/3" 选字.
这是行列标准原始模式的输入法, 这十分令我困扰. 同时这些字都是常用字,
所以时常感觉使用行列时需要选字.
所以我就参考呒虾米的方法, 改出了一个【行列++】, "k " 会输出 "人",
"k2" => 入, "k3" => 八. 修改之後的行列一级简码区是正常的, 不过:
/rr\040 蛙 # ---> 0v4^4^ 4
/rr\040 罣 # ---> 0v4^4^ 0
/rr\040 螼 # ---> 0v4^4^ 0
"/rr" => "蛙 1罣 2螼" (选字顺序已经变了.)
"中文【行列30】" 则是 "1蛙 2罣 3螼 4罫 5蛲"
"Window98 内建行列" => "1蛙 2罣 3螼"
也就是我目前使用的输入法已经不再是真正的行列了, 除了前文
提到的我只练了常用字一千字的问题之外, 我修改过的程式无法
输出 "zz" 开头的三、四码字. 例如: "zza" -> "震". 总之问题
很多, 我早点把自己的输入法做好才会对自己有帮助.
Q: 字根太多?
A: 常见的拆字输入法, 如果能利用 "辅助字形"、"简速字根"
来帮助学习, 就能事半功倍或提升速度.
Google 搜寻: "辅助字形"
字母辅助字形表
http://www.scj2000.com/cjstudy/new_page_10.htm
[PDF] 仓颉输入法教与学心得相似的辅助字形
http://www.ied.edu.hk/cj/tal/signs.pdf
初学者园地‧第四讲 简速字根
http://liu.twbbs.org/chapters/chapte04.htm
简速字根总表
http://www.liu.com.tw/speeds.htm
参阅前述的 说文输入法 - "字形损耗率"、"部件拆分" 议题, 使用者
在利用某些输入法拆字时会遇到许多困难.
而我的输入法是将 "辅助字形"、"简速字根"、"所有字形" 直接并入字根
之中, 并且利用使用者的记忆力换取拆字简便, 这是取舍的问题. 用我的
输入法完全学会日後 Unicode 4.x 的所有七万以上的中文字绝对会比用
仓颉输入法来得快.
Q: 简码(词库)会不会跟输入法本身冲突?
A: 网路上有人提出一种说法, 内容大致是: 词库只放常用词, 以避免
字词冲码, 反而造成输入速度下降. 另一种状况是找不到词, 必须改用字.
(有大词库的拼音输入法会有这种现象).
我认同这类的看法, 所以输入法本身并不针对词库做特别处理, 只会
放置一些个人常用词让使用者参考, 要修改也很简便. 精简的词库并
不会造成太大的记忆困扰.
这个输入法主要是三码(包含选字区)出字, 一、二、四及其他码出词
(也会放一些字、符号的简码). 使用时也会利用类似行列的预视预选
模式, 例如按 "G" 可能就有提示 "1 好 2 好人 3 游戏王 4 将帅本
无种,男儿当自强 5 绝体绝命 6 ..."
而系统强制规定的部分只有标准的三码字(及其选字), 因此不会有冲突.
Q: 输入法比赛可以使用词库.
A: 参阅:
中文输入法世界 - 真的“打单字绝对是比打词快”吗?
http://inputclub.foruto.com/cgi-bin/Forum/UltraBoard.cgi?\
action=Read&BID=6&TID=14505&SID=8180
大新仓颉,已荣登输入界竞速冠军(一分钟 220字的记录)
http://inputclub.foruto.com/cgi-bin/Forum/UltraBoard.cgi?\
action=Read&BID=6&TID=14440&SID=17022
"看到第12楼的贴文“的确是不能打词库,一律用单字作比赛的标准。”
台湾中打检测的规定仍然没变:台湾中打检测中打只能打字,不允许
打词。(众所周知“打词”与使用“联想字词”是两回事)
由於上面列出的比赛都不允许打词,因此,所说“有一个事实,那就是
打单字绝对是比打词快,历次前几名的选手,没有一个是字、词并打的
,要打字词的选手就已注定无法进入决赛,这是不争的事实。”--是一个
很风趣的说法。
显然“无法进入决赛”不是“打单字绝对是比打词快”所致,而是比赛
规定所致。"
Q: 内码输入法一字一码,不用选字?
A: 内码输入法是 16 进位, 键盘 26 键([a-z]) 是 26 进位. 能够
记住所有内码, 并且在输入时用心算把 16 进位即时转换成 26 进位
的人, 我个人是十分佩服的.
如果只使用 0 ~ 9, A ~ F 的 16 进位内码来输入, 每个字需要 4 个
按键, 比我的输入法多一键.
--
※ 发信站: 批踢踢实业坊(ptt.cc)
※ 编辑: cnoize 来自: 140.113.22.98 (03/07 01:31)