宇浩繁简通用字形输入法教程
朱宇浩 写于 荷兰鹿特丹 2022年3月15日
1. 初识宇浩
1.1. 汉字输入法
汉字输入法,顾名思义,就是汉字(部首、笔画)录入进电脑中的方法。大多数时候,输入的过程,有两个阶段:
- 用户将汉字,用一定规则,编成一串字母、数字、符号的组合,输入电脑中。
- 输入法会串字符,根据一定的规则,转化为对应的汉字,显示到屏幕上。
当我们用「输入法」指代第二个阶段时,一般我们指的是软件。「宇浩」可依托 Rime(小狼毫、鼠须管等)、小小输入法、大大输入法等平台实现输入。本教程后附有在各平台(Windows, Macos, 安卓,iOS)上安装并使用RIME·宇浩的方法。
而本教程中的「输入法」,特别指代上文中提到的第一阶段,亦即:用户将汉字,用一定规则,编成一串字母、数字、符号的组合,输入电脑中,并获得想要的汉字。
1.2. 输入法种类
输入法,根据其特点,一般分为三类
- 拼音(音码)
- 字形(形码)
- 音形(形音)混合。
音码输入法,最常见的例子就是拼音。我们将汉字对应的拼音,直接输入到软件中,软件会显示对应的汉字供你选择。这其中包括了一个反馈的过程,即:输入字母——获得候选——输入数字——获得汉字。
形码输入法,最常见的例子是五笔字型。我们将汉字拆成若干部件,输入每一个部件对应的代码,软件会显示出汉字。常见的形码,还包括五笔字型,郑码,仓颉等等。这其中有时包括了一个反馈的过程,但因为形码的确定性,大多数时候是不需要确认的,即:输入字母——获得汉字。
判断一个输入法是音码还是形码的最简单的方法,就是:对于任意一个汉字,不用知道它本身的读音便能输入。
「宇浩」繁简通打输入法,便是一种形码输入法。
1.3. 形码和音码的对比
形码输入法和拼音最大的区别,在于拼音输入法,知道读音,便能输入汉字。而形码输入法,知道写法,便能输入汉字。
音码的优点,便是像说话一样去打字。你只要知道标准的发音,便可以打出字来。同时,汉语拼音也是当代人的必修课,不需要特别地学习,因此,它的学习成本近乎为零。
音码的缺点,那便是同音字很多,经常需要选字。虽然当代的不少输入软片在「智能化」上下足了工夫,但在输入一些书面语、古文、或者生僻字词时,还是需要选字。大量翻页会打输入的节奏。笔者正是因为写小说时候被翻页打断思路而使用了形码。
形码的优点,便是像写字一样去打字。你不需要知道每个字的具体读音。同时,因为编码比较离散,你甚至不怎么需要去选字。这在写作时,保证你的思路不被打断。在看打、或者打古文的时候,形码的速度很快。
形码缺点是,如果你一下字忘了这个字的写法,那就会卡住,必须临时改用拼音输入法(反查)。
至于音码和形码哪个更好?这就是仁者见仁、智者见智的问题了。当然,也依赖于你的需求和使用场合。笔者在日常对话时使用全拼,在写作时使用形码,做到扬长避短。
1.4. 宇浩的特点
「宇浩」作为一种形码输入法,除了继承了刚刚所说的形码的全部重点外,还有一些自身的特点。这些特点,自然受到了笔者偏好的影响。这里仅举例一二:
- 大字集。也就是说,用「宇浩」可以打出所有的汉字(CJK + 部首 + 笔画),并且有98000多个汉字的单字拆分,且一直保持保持更新维护。
- 繁简通。也就是说,你可以直接打出繁体汉字和简化汉字。繁简字根不占用同一个码位,因此繁简混输的时候也很少选字。
- 低重码。也就是说,每个编码一般只对应唯一的候选项,你不需要进行选字,可以不用打断思路地进行输入。
- 手感好。笔者不喜欢使用 Z 键,所以这个键位被空了出来,用于反查或其他功能。
这里对比一下五笔、郑码、宇浩、虎码等笔者比较喜欢的输入法,在不同汉字字符集下的单字全码的重码数量。其中:
- GB2312 是大陆的简化字集,共有简化汉字 6764 个。测试输入法简化字确定性。
- 「国字」是指台湾《常用国字标准字体表》中的 4808 个繁体汉字。测试输入法繁体字确定性。
- 「常用繁简」包括大陆《通用规范汉字表》在 GB2312 中的汉字,台湾《常用国字标准字体表》中汉字,以及 286 个大陆繁体汉字。一共是 8523 个繁简汉字。测试输入法繁简混输确定性。
- GBK 共有繁简汉字 21003 个。测试输入法大字集确定性。
- 动态选重率指的是用字频对重码字中非首选的汉字进行加权。因为首选字默认顶字上屏,因此只有在二选或三选时才需要选重。这个指标更能反映实际的输入体验。
形碼方案 | GB2312 | 國字常用 | 常用繁簡 | GBK | 簡體選重率 | 繁體選重率 | 繁簡選重率 |
---|---|---|---|---|---|---|---|
鄭碼 | 563 | 311 | 1784 | 6590 | 0.60% | 0.63% | 2.40% |
五筆86 | 537 | 357 | 1718 | 6582 | 0.34% | 0.79% | 2.12% |
五筆98 | 515 | 329 | 1656 | 6368 | 0.38% | 0.78% | 2.16% |
徐碼23 | 318 | 127 | 480 | 2902 | 0.11% | 0.22% | 0.22% |
倉頡五代 | 422 | 164 | 606 | 2893 | 0.89% | 0.49% | 1.06% |
虎碼 | 532 | 238 | 2049 | 7687 | 0.06% | 0.37% | 2.84% |
宇浩 | 307 | 216 | 610 | 4966 | 0.05% | 0.17% | 0.21% |
可见,「宇浩」在任何字集下都有着优秀的表现。尤其在实际使用中,因为低选重率,它十分顺手。
1.5. 学习步骤
学习「宇浩」,一般从了解拆字和熟悉字根开始。
拆字,就是把汉字按照一定的规则,拆成唯一的部件组合。拆分出来的部件,便叫做「字根」。
这里所谓的「部件」,不仅包括你我熟知的「偏旁部首」,也包括了一些基本笔划,甚至是一些汉字。因此,笔画输入法(横竖撇捺折),也是一种特殊的形码。那么我们为什么要创造别的形码呢?因为一个字若用十几个、甚至几十个字母代替,太没有效率。故而,我们会截取一些比较大的部件作为字根。
对于汉语使用者,拆字并不是一件陌生的事情。我们自小就学会将一个字拆成分离的部首,进行检索。大多数时候,这是非常直观的。比如
部
字,大家会自然地将他拆分为立口阝
三个部分。程
字,大家会自然地将他拆分为禾口王
三个部分。
对于「宇浩」而言,大多数的字,也是这么拆分的。并且大多数的偏旁部首,也都是「字根」。
所以恭喜你,对于大多数的汉字,你已经可以凭借直觉进行拆分了。
本教程推荐的学习步骤如下。
- 看字根图,大致了解「宇浩」的字根有哪些,以及它们对应的编码。
- 了解「宇浩」拆字的规则,学会如何得到唯一的拆分方法。
- 学习编码规则,学会如何将拆好的字根转化成最终的「宇浩」。
- 记诵最常用的50个字根的编码(在输入法「新手」模式下,可以基本输入最常用的500个汉字)。
- 直接在输入软件中练习前500常用字(覆盖了77%的字频),边练习边记忆字根。
- 阅读进阶教程,更加深入地了解一些「宇浩」的特点。
以上内容不论顺序,可以交叉或同步进行。
2. 字根编码
2.5. 常用字根
本章介绍宇浩输入法的字根。介绍之前,先说明一件事。
我注意到,最常用的50个字根,占了60%的使用频率。最常用的100个字根,占了85%的使用频率!这说明,有针对性的记忆字根,使得学习曲线更加平坦,收效更加显著。
按照使用频率降序,前50的常用字根为:
白月丶一了日龰不丿扌戈𠂇尚土人文辶亻也米冖小讠丷口儿上至刂宀尤羊目大门自刀二阝厶子丅凵寸手西女氵殳犬
前51到100的常用字根为:
灬甲力彳丁心斤乚禾又木匕走己之而八生十身𬺰彐夕豕面矢艹王见艮卜夂纟工龶巴止舌已士尸立囗竹夭户戊乙方且
所以,在接下来的学习中,请务必按照上面的次序记忆字根,而不是一股脑地背诵全部。先练熟边际收益高的字根,会显著加快上手打字的进程,增加学习乐趣和成就感。而偏僻的字根,可以等未来慢慢熟悉。
在接下来的学习中,请使用字根练习页面来练习最常用的50个字根。然后可以继续练习最常用的100个字根。
2.1. 大码和小码
在「宇浩」中,每一个字根,都对应了两个字母。换句话说,「宇浩」使用的是双编码字根。这一点和郑码相同,和五笔不同。特别的:
- 第一个字母叫做大码。为了方便教学,本教程用大写字母表示。大多数时候,我们只需要用到大码,所以应该重点记忆。
- 第二个字母叫做小码。为了方便教学,本教程用小写字母表示。只有在部份情况下,需要用到,记忆起来也比较简单。
字根的大码和小码的分布,并不是随机的,而是有一定的规律。在接下来的教程中会进行介绍。
2.2. 字根图
我们将字根的键位画出来,这便是字根图。每一个键位上的大写字母,就是大码,是一群字根的「家」。而字根右下角的小写字母,则是小码,也就是单个字根的「姓名」。将大码和小码组合起来,就是一个字根的编码了。比如:
- 「言」这个字根,在字母
U
的方框里,同时,右下角的字母是v
,因此,它的编码就是Uv
。 - 「其」这个字根,在字母
D
的方框里,同时,右下角的字母是q
,因此,它的编码就是Dq
。
字根图是查询字根的重要工具,初学者应当时常将它放在手边,以利用查询。以下为宇浩输入法字根图。
2.3. 字根大码的规律
字根大码,是按照字根第一笔的笔画来制定的。「宇浩」同五笔一样,字根按照笔画分区。
- ASDFGH 包含了首笔为「横」的字根,例如:
A寸
F一
等。横区在键盘中排左侧。 - JKLNM 包含了首笔为「竖」的字根,例如:
J日
K上
等。竖区在键盘中下排右侧。 - QWERTY 包含了首笔为「撇」的字根,例如:
P竹
T人
等。撇区在键盘上排左侧。 - UIOP 包含了首笔为「捺」和「点」的字根,例如:
U言
I立
等。捺区在键盘上排右侧。 - BVCX 包含了首笔为「折」的字根,例如:
B刀
C巴
等。折区在键盘下排左侧。 - Z 键没有字根,可以用来反查拼音或做其他用途。
字根在各个区位较为随机,但还是呈现了以下的规律:
- A 上的字根包含了一横和一竖的相似字根:丁、寸、亍。
- K 上的字根包含加笔画而出头的「日」字:电、申、由、甲、禺。
- M 上的字根包含了「目」的相关字形:「見」、「貝」。
为了方便记忆,我写了一首打油诗(字根口诀):
横:
A 丁丌行右瓦,耳下打七寸。(亍丅扌)
S 草头二犬厂,辰考而有臣。(丂𠂇)
D 古來十石尤其戊,西雨不走歹豕丰,
F 一木甫三工。
G 大王革春夫,框面弋酉戈。(匚𡗗)
H 老上青士示兀牙,末世土干未至车。(耂龶)
竖:
J 早日山曰田,
K 甲申由禺电,下框敲右边,重門兼繁鹵,虫贝水上见。(冂攴)
L 四口非口,(㗊)
M 巾网貝皿且具上,小目立刀卜虎骨。(罒刂)
N 方框二三竖,黑册尚止足。(囗〢〣龰)
撇:
Q 荒下没右鱼儿气,撇川竹矢凡几舟。(殳丿)
W 周圍炙顶皆同月,千鬼上身生牛头,衣下杀上谁侧缶?(⺆勹牜⺧𧘇乂隹)
E 反文人欠斤,白爪壬乌夭。(攵亻)
R 双人饣匕入舌臼,犬向夕禾微金毛。(彳饣犭)
T 八人手长二三撇,金边自用介下卯。(钅彡)
Y 冪头心合豸,阜上食九鸟。(冖𠂤)
捺:
U 兰头将左四点火,赢框广衣言亡羊,(丷丬灬礻)
I 鹿头三点立水上。(氵)
O 辛亥之宝盖,言边户点方。(宀讠丶)
P 高门麻穴文亦米,病头走之衣字旁。(辶衤)
2.4. 字根小码的规律
字根的小码,都是尽量从它汉语拼音包含的字母中随机选取。如果拼音中有Z
或X
,那么可以选K
来代替。例如:
米
,第一笔为「点」,故而它的大码在点区的P
。小码为了便于记忆,选取了m
,正好是米字的声母。因此,「米」这个字根的编码就是Pm
。
有些字根的使用频率极高,我们把它们的小码统一设置为v
(原因是拼音不用v字母,所以这个字母比较闲置)。例如:
女
,第一笔为「折」,故而它的大码在折区的C
。「女」的频率很高,所以小码是v。因此,「女」这个字根的编码就是Cv
。
我在这里使用大写和小写的拉丁字母,是为了区分大码和小码的概念,便于理解学习。在实际打字的过程中,不需要区分大小写。
字根字的输入
字根字有大码和小码,那么想要输入字根该怎么做呢?很简单,就是添上F
:
- 代表字根:大码 + 小码 + F
- 被归并到代表字根上的附属根、近似根、部首、兼容字:大码 + 小码 + FF
比如:
月
的大码是W
,小码是v
,它是一个代表字根,所以输入Wvf
就可以打出这个字。勹
的大码是W
,小码是v
,它被归并到了月
上,所以输入Wvff
就可以打出这个部首。⺼
的大码是W
,小码是v
,它被归并到了月
上,所以输入Wvff
就可以打出这个部首。
3. 拆字规则
先前说过,拆字,就是把汉字按照一定的规则,拆成唯一的字根组合。
我刚刚用的「部」字为例,说明了拆字的一般形式。这种将字拆成直观的、分离的部件的方法,足以应付大部分汉字的拆分了。但在实际使用中,遇到这个问题:一个独体字,本身不是字根,怎么办?这时候,我们要把它继续拆成更小的字根甚至笔划。比如:
- 「戋」这个字,我们可以继续将它拆成「一」和「戈」。查字根图可知,「一」和「戈」正好是两个字根,拆字成功。
- 「丸」这个字,我们可以继续将它拆成「九」和「丶」。查字根图可知,「九」和「丶」正好是两个字根,拆字成功。
- 「朱」这个字,我们可以继续将它拆成「丿」和「未」。查字根图可知,「丿」和「未」正好是两个字根,拆字成功。
有时候,独体字的拆分不是很直观。比如「再」拆成「王冂」两个字根。遇到此类字时的拆分,往往需要一些经验和练习。所以当你遇到不会拆的字时,应该主动查询它的编码,及时学习。
更麻烦的情况是,一个字好像有几种拆分方法,比如:
- 「井」,可以拆「二{介下}」,也可以拆「一廾」。
这种一字多拆的情况,任何形码中,都是积极避免的。因为一字多拆,会造成极大的不确定性,并造成编码的混乱。
「宇浩」借鉴了徐码的拆字规则,通过一套规则,使每一个汉字,都只有唯一的拆分方案,希望能消除不确定性。当然,汉字不是完全可以量化的,所以有时候比例原则也很重要,同其它的输入法不同的是,「宇浩」不追求完美消灭唯一拆分,尤其在大字集上,这种追求会扭曲汉字直观性,也不能兼顾不同字形。使用者需要大量尝试才能输入,这违背了大字集检字的初衷。因此,对于大字集,我会设置兼容拆分和容错码。
「宇浩」拆字规则的按优先级排序如下:
- 字根最少
- 符合笔顺
- 字根离散
- 字根相连
- 字根相交
- 笔划断开
- 拆分美观
- 字根取大
可归纳为:少>顺>散>连>交>断>美>大。
取根时,如果有多种不同的拆分方式,则按优先级从高到低依次检查以上规则,选取符合条件的,排除不满足的,最终得到唯一的拆分方案。以下为规则详细介绍:
3.1. 字根最少
字根最少,意思是拆分一个字时,应该使得字根的数量最少。比如:
- 「唐」拆「广コ古」而不拆成「广彐丨口」,因为前者只有三个字根,而后者为四个。
3.2. 符合笔顺
符合笔顺,指的是字根的每一笔,完全符合原汉字的笔顺。比如:
- 「里」可拆成「甲二」,也可拆成「日土」。观察到「甲二」完全符合「里」字的笔顺,故而选择它。
- 「单」可拆成「丷日十」,也可拆成「丷甲一」。观察到「丷日十」完全符合「单」字的笔顺,故而选择它。
3.3. 字根离散
字根离散,指的是两个字根互相分离。比如:
- 「部」中的「立口阝」,便是三个分离的字根。
字根离散的拆分优先于不离散的拆分。
3.4. 字根相连
字根相连,指的是两个字根互相连接。
字根相连的拆分优先于不相连的拆分。
3.5. 字根相交
字根相交,指的是两个字根互相交叉。比如:
- 「唐」拆成「广コ古」三个字根,其中的「コ」和「古」两根便是交的。
- 「再」拆成「王冂」两个字根,便是相交的。
字根相交的拆分优先于不相交的拆分。
3.6. 笔划断开
笔划断开,指的是将一个笔划断开。比如:
- 「我」拆成「丿扌戈」三个字根,其中的「扌」和「戈」两根的横本是一笔写成。但如果不断开这一横,就要拆成「丿扌乚丿丶」五个字根。为了让字根数量最少,我们将不得不将横断开。
笔划断开的拆分,往往是为了减少字根而不得已的操作。
3.7. 拆分美观
拆分美观,或者说拆分直观,指的是一个拆分,一个人一看就应该这样拆。
「宇浩」的字根允许一些变化,比如:
- 「丨」变成「丿」。如:「牛」字根的「丨」变成「丿」,「干」字根的「丨」变成「丿」。
- 「丿」变成「一」。如:「尸」字根的「丿」变成「丨」。
我们应当避免这种不直观的拆分。比如:
- 「失」拆「丿夫」而不拆「牛乀」,因为「牛丶」不直观。
- 「朱」拆「丿未」而不拆「牛人」,因为「牛人」不直观,它也可以是「八」、「入」。
当然,「直观」是个比较主观的标准,为了避免规则不确定性,它的等级很低,并且还有以下的规则:
- 笔画「丨」、「丿」互转尽量避免。
- 「囗」、「勹」等包围结构尽量不拆散。如:「昜」拆「日一勹彡」不拆「日丆𠃌彡」。
3.8. 字根取大
字根取大,指的是按照笔顺拆字时,让靠前的字根的笔划数尽量地多。比如:
- 「井」拆成「二{齐下}」,而不拆成「一廾」,因为「字根取大」原则。让靠前的字根的笔划数尽量地多,这里,「二」的笔划数大于「一」。
「取大原则」,按定义,是一个兜底原则。它保证了最终只有一个候选方案能够胜出。
3.9. 拆字举例
实际拆字时,如果你感觉拆分方法不唯一,那么可以用以下方法找到最优解:
- 列出所有可能的候选拆分方案。
- 依照「少>顺>原>散>连>交>断>大」的规则顺序,依次比较各个候选拆分。
- 如果所有的候选拆分都不满足本条规则,则进入下条规则。
- 如果部分的候选拆分满足本条规则,则该部分的候选拆分方案进入下条规则。
- 直到只有一个候选拆分方案胜出。
以下通过部分例字来说明拆分规则:
3.9.1. 「重」字
「重」字,候选拆分「丿车一」和「千日二」。
依照「少>顺>散>连>交>断>美>大」的规则比较。
- 同时满足「字根最少」。
- 「丿车一」满足「符合笔顺」,「千日二」不满足。
- 「丿车一」胜。
3.9.2. 「朱」字
「朱」字,候选拆分「丿未」和「牛八」。
依照「少>顺>散>连>交>断>美>大」的规则比较。
- 同时满足「字根最少」。
- 同时满足「符合笔顺」。
- 「丿未」满足「原型字根」,「牛八」不满足,因为「牛」的竖变撇。
- 「丿未」胜。
4. 单字编码规则
学习了「宇浩」的拆字规则后,我们可以将任何一个汉字拆成唯一的字根组合。最后一步,便是把字根转为「宇浩」编码。
单字的编码一般是由4个字母构成,部分情况下是2个或3个字母。
在「宇浩」中,无论一个字能拆成几个字根,我们只关心其中的四个根,分别是:
- 第一根:首根
- 第二根:二根
- 第三根:三根
- 倒数第一根:末根
这同五笔输入法相同,和郑码、徐码不同。
单字编码规则如下:
- 依次取一、二、三、末根大码。
- 不足四码时,补上末根小码。
- 仍然不足四码时,补上首根小码(如果小码是v则不用补)。
最后一条,只有双根字中会出现。第二条,只有三根字中会出现。
举例说明:
- 「嫩」字拆成
女Cv 木Fv 口Lv 攵Eh
四根。分别对应了首根、二根、三根、末根。我们直接取四个字根的大码CFLE
即可出字。 - 「整」字拆成
木口攵一止
五根。我们只取首根、二根、三根、末根,也就是木Fv 口Lv 攵Eh 止Ni
的大码,输入FLEN
即可出字。 - 「算」字拆成
𥫗目廾
,只有三根,所以我们取全部根,也就是𥫗Qv 目Mv 廾Sv
的大码,即QMS
。此时,注意到不足四码,故而补上最末根的小码v
。输入QMSv
即可出字。 - 「织」字拆成
纟Vs 口Lv 八Tb
,只有三根,所以我们取全部根大码,也就是VLT
。此时,注意到不足四码,故而补上最末根的小码b
。输入VLTb
即可出字。 - 「认」字拆成
讠人
,只有两根,所以我们取全部根,也就是讠Oa 人Te
的大码,即OT
。此时,注意到不足四码,故而补上最末根的小码e
。注意到仍然不足四码,于是再添上首根的小码a
。输入OTea
即可出字。 - 「好」字拆成
女子
,只有两根,所以我们取全部根,也就是女Cv 子Bi
的大码,即CB
。此时,注意到不足四码,故而补上最末根的小码i
。注意到仍然不足四码,但首根小码为v
,可以省略,所以最后输入CBi
即可出字。
末尾添加首根的小码,只是为了补齐四码的作用,只有在双根字中才会出现。它不需要像徐码和郑码一样,不管几码字,都要判断首根的性质以决定取不取倒数第二根。所以思维负担显著降低。这也是我开发宇浩输入法的重要原因。
4.1. 字根字和代表根
字根字,依次取其大小码,再加上f
即可出字。比如:
- 「木」字是字根字,输入
Fvf
即可出字。 - 「骨」字是字根字,输入
Mgf
即可出字。
很多的字根因为字形近似,被归为一个字根,由其中一个常用字为统摄,称为「代表根」,其它的字根为「被代表根」。
如果要单独输入「被代表根」,只要在大小码后加ff
即可。这类汉字并不多,举例:
羽Xu
、习Xu
被归为一个字根,由「羽」统摄,所以输入「习」字时,编码为Xuff
。長Ha
、镸Ha
、髟Ha
被归为一个字根,由「長」统摄,所以输入「镸」、「髟」时,编码为Haff
。户Oh
、戶Oh
被归为一个字根,由「户」统摄,所以输入「戶」时,编码为Ohff
。
4.2. 空格键的使用
在很多输入法软件中,空格键(以下用_
表示)用来上屏首选字。
根据以上的学习内容,我们发现:「宇浩」的编码最长不超过4个字母。由于这个特性,我们在输入完编码后,不一定需要按空格键将字打上屏幕。
空格键只在以下情况需要使用:
- 一个字的编码低于4位,需要按空格键上屏首选。比如「人」字,需要按
Te_
上屏。 - 一个字的编码等于4位,且后面没有其他的字需要输入,则需要按空格键上屏首选。
以下情况,不需要使用空格键:
- 一个字的编码等于4位,且有后续字符等待输入。我们不需要按空格键。只要直接输入下一个字的首码,这个字就会自动上屏。我们称之为「五码顶屏」。例如:我们打「霁雨」二字,「霁」字的编码是
DPTb
。输入b
后,我们直接输入「雨」字的编码Dy
,则「霁」字会自动上屏。
5. 简码设置
学完了「宇浩」的单字编码,我们发现,「宇浩」的单字码长一般是2到4位之间。不少常用的字,码长是4位,比如字频第一的「的」字,编码为EWOd
。
一种科学的输入策略,应该使得常用字的码长更低,从而加快输入的速度。试想,如果输入「的」字,每次都要按EWOd
四下按键,真是太浪费时间了。
形码对此的优化方式,就是设置简码,也就是给部分汉字设置更短的编码:比如,我们在输入「的」时,只要按上一个字母和空格键,就能实现输入。
在「宇浩」中,简码的设置十分科学,使得每一个字简码和全码的编码规则保持一致。当然,这也和文本环境有关。比如简体和繁体环境下,字频不同,简码也不相同。这里主要介绍的是基于简体现代文字频的简码设置。
5.1. 一级简码字
一级简码字,又称一简字,指的是用一个字母为编码实现输入的汉字。「宇浩」中,有25个高频汉字设置为一简字,只要按下一个字母,加上空格,即可上屏。在我们的日常交流中,一简字大约占据了25%的使用频率。只需要按两个按键,可以有效提升输入速度。
一简字的编码,就是该字全码的第一个字母。比如:
- 「我」全码为
QAGg
,一级简码为Q
。输入Q_
即可实现上屏。 - 「的」全码为
EWOd
,一级简码为E
。输入E_
即可实现上屏。
从A到Y排列,一级简码字分别是过那也不的一大地没是上中小回就这我得在个着了然出
。在字根图中,一简字就是每个字母方框的左上角的汉字。
宇浩的字根设计,使得最高频的汉字分布在最容易按的键上,比如:「的」在E
上,「一」在F
上,「了」在V
上,「没」在I
上,「不」在D
上,「上」在K
上。
5.2. 二级简码字
二级简码字,又称二简字,指的是用两个字母为编码实现输入的汉字。「宇浩」中,有676个高频汉字设置为二简字,只要按下两个字母,加上空格,即可上屏。
一简字的编码,就是该字全码的前两个字母。比如:
- 「起」全码为
DBjk
,二级简码为DB
。输入DB_
即可实现上屏。 - 「可」全码为
ALvd
,二级简码为AL
。输入AL_
即可实现上屏。
5.3. 三级简码字
三级简码字,又称三简字,指的是用三个字母为编码实现输入的汉字,只要按下三个字母,加上空格,即可上屏。
三简字的编码,就是该字全码的前三个字母。这里不再举例。
注意到,三简字需要按四个按键才能上屏,同输入单字全码按键数一样,因此,三简字的设置主要为了腾出四码码位,实现避重。
三级简码字,可在打字时进行熟悉,不需要特别去记忆。
6. 词语编码规则
除了设置简码,「宇浩」还将常用的词语,也编成4个字母的编码。这样可以降低每一个字的平均码长,提高打字速度。
「宇浩」的词语编码规则,分为三种情况。
6.1. 两字词
两字词,取每个字全码的前两码即可。比如:
- 「人生」:「人」的编码为
〔人・Te〕
,「生」的编码为〔生・Wg〕
。因此,「人生」的编码为〔人生・TeWg〕
。 - 「事情」:「事」的编码为
〔{于下}口彐・ALXv〕
,「情」的编码为〔心龶月・YHWv〕
。因此,「事情」的编码为〔{于下}口心龶・ALYH〕
。
6.2. 三字词
三字词,取前两字的第一码,和第三个字的前两码即可。比如:
- 「泡泡糖」:「泡」的编码为
〔氵月巳・IWXs〕
,「糖」的编码为〔米广又古・PUBD〕
。因此,「泡泡糖」的编码为〔氵氵米广・IIPU〕
。 - 「星期三」:「星」的编码为
〔日生・JWg〕
,「期」的编码为〔其月・DWvq〕
,「三」的编码为〔三・Fa〕
。因此,「星期三」的编码为〔日其三・JDFa〕
。
6.3. 四字词及以上
四字词及以上,取前三字的第一码,和最后一个字的第一码即可。比如:
- 「狐假虎威」:「狐」的编码为
〔犭瓜・RQan〕
,「假」的编码为〔亻尸二又・EBSB〕
,「虎」的编码为〔虎・Mh〕
,「威」的编码为〔戊一女・DFCv〕
。因此,「狐假虎威」的编码为〔犭亻虎戊・REMD〕
。 - 「中华人民共和国」:这是一个七字词,所以我们只看前三字和最后一字「中」、「华」、「人」、「国」。「中」的编码为
〔口丨・LMs〕
,「华」的编码为〔亻匕十・ERDh〕
,「人」的编码为〔人・Te〕
,「国」的编码为〔囗王丶・NGOd〕
。因此,「中华人民共和国」的编码为〔口亻禾囗・LERN〕
。
6.4. 词语输入的优缺点
用词语的方式进行输入,优点在于降低了每个字的平均码长。试想「我们今天一起吃饭」这个句子。
- 如果打单字全码的话,需要按
QAGgEpnTOViFDdiFi_DBjkLQViREBu
。 - 如果打单字简码的话,需要按
Q_EP_TOV_FG_F_DB_LQ_REBu
。 - 如果打词语全码的话,需要按
QAEPTOFGFiDBLQRE
。
可以看到,词语全码有效降低了按键的次数。
但是,词语输入也有其缺点,最主要的缺点包括:
- 如果词库太小,不是每个词语都在词库中。很多时候还是需要打单字。
- 如果词库太大,则会出现大量的重码,需要进行选择,破坏了形码输入的流畅性。
- 你输入一个词语,却发现它并不在词库中,就需要删除后重新输入单字。让人感觉不悦。
- 人工分词需要消耗额外的注意力。
因此,精简词库,熟悉词库,打单字和打词语相结合,是形码高手们的修炼之路。
7. 进阶教程
7.1. 字根排序规则
将汉字拆分后,我们需要将它们进行排序。大多数时候,因为「符合笔顺」这条规则的存在,排序是非常直观的。但有时并非如此,我在此进行定义。
「宇浩」字根排序规则,是字根首笔符合笔顺,意思是拆分一个汉字时,所有字根的首个笔划,符合这个汉字的笔顺。比如:
- 「安」拆「宀女」而不拆成「女宀」,因为按照汉字的笔顺,「宝盖头」第一的笔「点」,排在「女」字第一笔的「折」之前。故而应该按照「宀女」排序。
- 「丸」拆「九丶」而不拆成「丶九」,因为按照汉字的笔顺,「九」第一的笔「撇」,排在「捺点」之前。故而应该按照「九丶」排序。
请注意,「宇浩」最终的字根排序,只要求字根的首笔符合笔顺,而不是要求字根每一笔都符合笔顺,比如:
- 「为」的笔顺是「点撇折点」。
{两点}
字根的第一笔「点」为整个「为」字的第一笔,虽然``{两点}字根的最后一笔是「为」字的最后一笔,
{两点}`字根依旧排在最前面。所以「为」拆「{两点}力」。 - 「国」拆「囗王丶」而不拆成「冂王丶一」,因为前者只有三个字根,而后者为四个。「字根最少」优先于「字根首笔符合笔顺」。同时,
囗
字根的第一笔「竖」为整个「国」字的第一笔,虽然囗
字根的最后一笔是「国」字的最后一笔,但囗
字根依旧排在最前面。
7.2. 口囗之辨
口(音kǒu
),编码为Lv
,是个主根。囗(音wéi
),编码为Nw
,是个副根。这两个根如何区分?
答案是,如果方框里有完整的笔画,用「囗」Nw
。否则一律用「口」Lv
。例如:
- 「国」字中,有完整的笔画,故而必须用「囗」
Nw
。 - 「中」字中,虽然「⼁」穿「口」而过,但并未被完全包含在「口」中。由于「口」中没有完整的字根,故而用「囗」
Nw
。
7.3. 「日」「曰」字根的选取原则
不少输入法对与「日」「曰」两字的区分,比较复杂。大概有两种情况:
- 有些是基于形状的,凡是长大于高的都为「曰」,凡是长短于高的都为「日」。但这个方法会跟随着字体的不同而不同,有时候不合字源,也不统一。例如:「書」字源于「聿者」,徐码中「書」下为「曰」,但「者」下为「日」,取码不统一。「曹」古字为「东东口」。在徐码中,「曹」下为「日」,不符合字源。
- 另外一种区分方法是基于字源。也就是说:凡是在古文中作「口」形,之后隶变为「曰」形或「甘」形的字,都作「曰」。但这个方法对方一般的使用者难度太大,且分析字源会有疏漏之处,不应用于输入法。
我们必须注意到,在汉字中,存在「日曰」对立的字形,只有三组,分别为:「日曰」、「汨汩」、「曶㫚」。在其他的情况下,不存在对立,也就不存在混淆问题。
因此,我基于实用主义原则,对这两个字根不多加以区分,而采取更简单的方法。即:除了上述三组对立情况外,全部取「日」根。换句话说,「曰」根只需要在对立情况下才会使用,包括:「曰」「汩」「㫚」「旮」「旯」
这样一来,可以显著降低使用者的记忆和学习负担。
7.4. 勹𠂊之辨
「旬」的外框「勹」,同「敖」左下的「𠂊」都是撇加横折钩,宇浩不做区分。
8. 适合才是最好的
引言中,我介绍了输入法的确定性(重码率),但这不是唯一的评价标准。输入法好不好,还取决于其他的维度。这就是为什么拼音重码高,但大多数人还是会使用拼音,因为它的学习成本基本为零。你选择学习输入法,一定要符合自己的需求,要综合考虑多方面因素,例如:
- 是否愿意背较多的字根。
- 是否有古文、繁体字需求。
- 对复杂规则的接受度。
特别的,「低重码」、「规则简易」、「字根分布有规律」,是个不可能三角,一个输入法只能在一者做到突出,或者两者都不错,但不可能三者都达到很好。这里,说一下几个笔者喜欢的输入法的优缺点,希望能帮你选择。
- 五笔。字根数量不多,在键盘上分大区随机,比较容易上手;字根为一二三末,拆字轻松;编码上有结构码,容易造成思维卡顿;重码上,繁体输入体验不佳,不适合繁简通打;平台通用性高。适合公务人员和只有简体需求的人。
- 郑码。字根按字典分区排列,大小码都十分有规律,比较容易记忆,但上手打字有一个用字典排序到键盘排序的映射过程;字根有时为一二末,有时为一二次末末;全码单字和简码、词语编码不一致,学习困难。适合完全不会拼音,又对繁体有一定需求的人。
- 徐码。字根按字典分区排列,大码有一定规律,小码用拼音中的字母,但上手打字有一个用字典排序到键盘排序的映射过程;字根有时为一二末,有时为一二次末末,有回头码,在打字中如果判断错误需要回删;Z键频率很高,手感较差;各字集下重码极低,四码定长的唯一繁体方案。适合经常需要输入繁体、或面向生僻字的文字工作者使用。
- 虎码。字根大码随机,小码用拼音中的字母,记忆有一定难度;字根为一二三末,无结构码,无回头码;在简体字集中高度优化,动态重码率低;繁体重码表现一般。适合只有简体需求,经常赛文的人。
- 宇浩。字根大码在键盘上分大区随机(同五笔),小码用拼音中的字母(同徐码、虎码);字根为一二三末,无结构码,回头码只有在不足四码时使用(比徐码优化);在常用繁简字集中高度优化,简体、繁体、繁简混输动态重码率低;大字集仅次于徐码。适合需要同时使用简体和繁体进行创作,又偶尔输入生僻字的人(笔者)。