灵明输入法单字编码
学习了宇浩系列输入法的拆分规则后,我们可以将任何一个汉字拆成唯一的字根组合。前一章的学习中,我们也了解了灵明输入法的字根编码规则。
现在,我们讨论如何把字根的编码组合转为单字编码。
最多四根
一个字根,至少有两码;一个字,常有多个字根组成。如果我们将所有字根的编码全部连接起来,往往会得到一个很长的编码串,这样做明显没有效率可言。为了平衡码长和离散度,灵明输入法采取了最多四根、最多四码的设计。
如何将这些字根的编码组合为更加实用的单字编码呢?
在灵明输入法中,无论一个字能拆成几个字根,我们只关心其中最多四个字根,分别是:
- 第一根(首根)
- 第二根(次根)
- 第三根
- 最末根(末根)
比如:
木可以拆为木一个字根,故而木既是首根也是末根,它又叫单根字,又称字根字。根可以拆为木艮两个字根,故而木是首根、艮是末根。它没有第二根、第三根。想可以拆为木目心三个字根,故而木是首根、目是第二根、心是末根。它没有第三根。整可以拆为木口夂正四个字根,故而木是首根、口是第二根、夂是第三根、正是末根。籍可以拆为𥫗丰八龷日五个字根。我们只关注「首二三末」这四个字根,故而𥫗是首根、丰是第二根、八是第三根、日是末根。龷这个根我们不去管它。
编码规则
接下来我们学习单字的编码规则,也就是如何把字根的编码转变为不超过四码的单字编码。
总口诀
我们首先介绍一个简单法诀,它可以适用于所有情况。
一二三末,大根免三。
首末大声,末韵末参。
解释一下:
- 一二三末:一个汉字,最多取用四个字根:第一根、第二根、第三根、最末根。
- 大根免三:如果首根是大根(有声码),则不使用第三根;如果首根是小根(无声码),才会使用第三根。
- 首末大声:首根和末根都取大码和声码(若有),其他根只取大码。
- 末韵末参:末根的韵码在最后才加入进来用于补齐至四码。
我们用填格子的方式来说明两种情况。
首根是大根的字:
- 填入第一根大码和声码:☑☑☐☐
- 填入第二根大码:☑☑☑☐
- 填入最末根大码:☑☑☑☑
首根是小根的字:
- 填入第一根大码:☑☐☐☐
- 填入第二根大码:☑☑☐☐
- 填入第三根大码:☑☑☑☐
- 填入最末根大码:☑☑☑☑
对于不到四个字根的字,这时候很有可能格子还未填满,则继续填入末根的声码和韵码补齐即可。
下面的几节里,我们将分情况介绍单字编码的具体规则。
单根字
如果一个字本身就是字根,那么它的单字编码就是字根编码,不言而喻。
例
- 「弋」的编码就是对应的字根编码:
Myi,其中M是大码、y是声码、i是韵码,它是个大根。 - 「骨」的编码就是对应的字根编码:
Kgu,其中K是大码、g是声码、u是韵码,它是个大根。 - 「木」的编码就是对应的字根编码:
Xu,其中X是大码、u是韵码,它是个小根,没有声码。
两根字
如果一个字是由两个字根组成的,即两根字,它的编码规则为:
- 取首根大码。
- 取首根声码(若有)。
- 取第二根(也是末根)的所有码。
- 截取前四码。
例
认字拆成讠人,只有两根,所以我们取全部根:首根讠、末根人。根据规则,我们取首根的大码 W 和声码(无),然后取末根的所有码 Ne,得到编码WNe。
好字拆成女子,只有两根,所以我们取全部根:首根女、末根子。根据规则,我们取首根的大码 F 和声码(无),然后取末根的所有码 Hvi,得到编码FHvi。
旦字拆成日一,只有两根,所以我们取全部根:首根日、末根一。根据规则,我们取首根的大码 H 和声码 r,然后取末根的所有码 Fi,得到编码HrFi。
多字拆成夕夕,只有两根,所以我们取全部根:首根夕、末根夕。根据规则,我们取首根的大码 L 和声码 x,然后取末根的所有码 Lxi,最后截取前四码,得到编码LxLx。
三根字
如果一个字是由三个字根组成的,即三根字,它的编码规则为:
- 取首根大码。
- 取首根声码(若有)。
- 取第二根大码。
- 取第三根(也是末根)的所有码。
- 截取前四码。
例
但字拆成亻日一,只有三根,所以我们取全部根:首根亻、第二根日、末根一。根据规则,我们取首根的大码 N 和声码(无),然后取第二根的大码 H,接著取末根的所有码 Fi,最后截取前四码,得到编码NHFi。
算字拆成竹目廾,只有三根,所以我们取全部根:首根竹、第二根目、末根廾。根据规则,我们取首根的大码 N 和声码(无),然后取二根的大码 D,接著取末根的所有码 Qa,最后截取前四码,得到编码NDQa。
织字拆成纟口八,只有三根,所以我们取全部根: 首根纟、二根口、末根八。根据规则,我们取首根的大码 C 和声码(无),然后取二根的大码 D,接著取末根的所有码 La,最后截取前四码,得到编码CDLa。
智字拆成矢口日,只有三根,所以我们取全部根:首根矢、二根口、末根日。根据规则,我们取首根的大码 K 和声码 s,然后取二根的大码 D,接著取末根的所有码 Hri,最后截取前四码,得到编码KsDH。
四根字
如果一个字是由四个字根组成的,即四根字,它的编码规则为:
- 取首根大码。
- 取首根声码(若有)。
- 取第二根大码。
- 如果此时只有两码,则取第三根大码。否则跳过此步。
- 取末根的大码。
从上面的规则可以看出,如果首根是大根(有声码),则我们不使用第三根;如果首根是小根(无声码),则我们使用第三根。
例
嫩字拆成女木口夂,分别对应了首根女、第二根木、第三根口、末根夂。根据规则,我们取首根的大码 F 和声码(无),然后取二根的大码 S。此时,我们只取了两码,所以我们接着取三根的大码 D,最后取末根的大码 J,得到编码FSDJ。可以看到,嫩字的首根女是小根(无声码),所以我们使用了第三根。
韻字拆成立日口貝,分别对应了首根立、第二根日、第三根口、末根貝。根据规则,我们取首根的大码 B 和声码 l,然后取二根的大码 H。此时,我们已经有三码,所以我们跳过第三根,直接取末根的大码 N,得到编码BlHN。可以看到,韻字的首根立是大根(有声码),所以我们没有使用第三根。
多根字
如果一个字是由超过四个字根组成的,即多根字,只要取用首二三末这四个字根,然后按照四根字的规则进行编码即可。
同四根字一样,如果首根是大根(有声码),则我们不使用第三根;如果首根是小根(无声码),则我们使用第三根。
例
籍字拆成𥫗丰八龷日,超过了四根,我们只取四根:首根𥫗、二根丰、三根八、末根日。根据规则,我们取首根的大码 N 和声码(无),然后取二根的大码 G,接着取三根的大码 L,最后取末根的大码 H,得到编码NGLH。可以看到,籍字的首根𥫗是小根(无声码),所以我们使用了第三根。
體字拆成骨曲一口䒑,超过了四根,我们只取四根:首根骨、二根曲、三根一、末根䒑。根据规则,我们取首根的大码 K 和声码 g,然后取二根的大码 L。此时,我们已经有三码,所以我们跳过第三根,直接取末根的大码 C,得到编码KgLC。可以看到,體字的首根骨是大根(有声码),所以我们没有使用第三根。
空格键的使用
在很多输入法软件中,空格键(以下用_表示)用来上屏没有达到最大长度的候选字。而在灵明输入法中,空格键基本是不需要使用的。这归功于灵明输入法的无空格输入设计。具体地说:
一个字的编码等于 4 时,已经是最大长度,无需按空格键上屏。只要继续输入下一个字的首码,这个字就会自动上屏。我们称之为五码顶屏(请参阅琼林撷英了解相关概念)。
例如:我们打「整理」二字,「整」字的编码是
XDJF。输入XDJF后,我们直接输入「理」字的首码Y,则「整」字会自动上屏。一个字的编码低于 4 时,它一定是以
aoeiu五个元音字母结尾的。因此上,只要输入法软件见到这五个字母,就知道一个字已经输完。只要继续输入下一个字的首码,这个字就会自动上屏。例如:我们打「认真」二字,「认」字的编码是
WNe,虽然不到 4 码,但它以元音字母e结尾。输入e的瞬间,软件就知道编码已经结束,我们直接输入「真」字的首码L,则「认」字会自动上屏。
灵明输入法的韵码,其实同时起到了传统双编方案中的小码和空格的作用。它既能对字根信息进行补充,又能作为单字的自然分隔符。
空格键只需在以下情况使用:
- 一个字虽然已经输完,但由于有其它候选,不能自动上屏,且后续没有其他字或标点需要输入,这时候需要按空格键(或数字1)上屏首选。
- 为了规避重码,灵明输入法设置了一些避重简码字,它们的编码不以
aoeiu结尾,这时候需要按空格键(或数字1)上屏首选。
