1 一般概述
1.2 引言
自然码是中文输入历史上影响最大的双拼音形输入法,不少后来的双拼都或多或少地受到它的影响。但是,由于需要同时掌握双音和双形,学习难度还是相当大的。
有没有什么办法降低它的学习难度,同时提高它的效率,还增强它的功能呢?有这种好事吗?答案是肯定的。秘诀就是采用顶功编码技术!这样,可以让自然码用户也享受顶功技术带来的红利。声笔自然就是对自然码的顶功改造,并且取得了非常好的效果。
对于自然码用户来说,学习声笔自然的成本是非常低的,只需要了解一下双拼的细微变化并掌握笔画即可,其基本内容是:声母不分平翘舌,零声母用v表示,韵母没有变化;双形用顺序笔画代替,用aeuio
分别表示折、横、撇、竖、点五种笔画;重码用aeuio
兼作选择键;重码太多时,可以追加首字前两笔来快速筛选重码。
本文将详细讲解声笔自然,然后在此基础上,花一节的篇幅来讲解声笔自整,只讲有区别的地方,以免重复、罗嗦。
1.2 优势
声笔自然相比自然码的优势可以总结为:更简单、更高效和更强大。
更简单是因为:首先,声笔自然用v表示零声母,简化了零声母音节的编码方式。其次,声笔自然不区分平翘舌;再次,词组没有强制性简码;最后,也是最重要的是,声笔自然用aeuio代表笔画,代替了复杂的辅助码。
更高效是因为:首先,单字三码起顶,码长更短;其次,字词四码时用aeuio选择重码,比原来的数字键好按,可以实现快速选重;最后,词组支持动态调频,可以减少击键次数。
更强大是因为:首先,声笔自然实现了字词分离,不再纠结是字优先还是词优先,可以支持GBK字符集超两万的汉字;其次,词组支持扩展编码,可以支持48万词组并快速离散重码;最后,具有自动词组功能,没有的词组拆开打过一次后就能自动造好。
2 快速入门
为了减轻初学者的记忆负担,在手机上提供了助记皮肤,可以长按N
键打开或者关闭助记。在打开时,给出了韵母、笔画和零声母用键的提示,如下图所示。如果是在电脑上,则可以把该图并放在电脑桌面上,在打字的时候帮助记忆。
注意,「嗯n」[呣m」「嘸m」「呒m」这几个字是没有韵母的,这时用v作为韵母,称为零韵母。
2.1 编码规则
声笔自然的编码规则和示例如下。其中,s表示声母,不区分平翘舌;y表示韵母;b表示笔画。b为aeuio
,s为b之外的21个英文字母,数字表示第几字(其中0表示末字),_
表示空格。注意,您输入时,四码词组的候选顺序可能有变化,这是因为动态码长调整的缘故(后面在动态码长一节会专门讲这一点)。
- 单字:
sybb
,即声母加韵母再加两个笔画。一码字的例子有就j_ 我w_ 没m_
,二码字的例子有从cs_ 此ci_ 起qi_ 来ll_
,三码字的例子有节jxe 未wze 凝nyo 管gru
,四码字的例子有觉jcoo 钱qmue 貌mkuo 缘yraa
。注意,三码字的第三码和四码字后两码都是采用的顺序单笔画,而不是自然码里复杂的双形,学习难度大大降低。 - 二字词:
s1y1s2y2
,即第一字的声母韵母加第二字的声母韵母。二字词的例子有关系grxi 参加cjjw 正确zgqt 模范mofj 答应dayy
。注意,这里的正zg
是没有区分平翘舌的,与自然码的正vg
不同。 - 三字词:
s1s2s3y3
,即前三字的声母加第三字的韵母。三字词的例子有示范区sfqu 想不到xbdk 处理器clqi 宪兵队xbdv
。注意,这里的示s 处c
是没有区分平翘舌的,与自然码的示u 处i
不同。 - 多字词:
s1s2s3s0
,即前三字的声母加末字的声母。多字词的例子有爱因斯坦vyst 有限公司yxgs 人民共和国rmgg 声东击西sdjx
。注意,这里的爱v
是零声母音,用v代表零声母,而自然码里「爱」的首码为a。
我们再来看一个综合的例子:我们womf 大家dajw 都db_ 喜欢xihr 研究yjjq 中文zswf 输入法srfa
。
当一个字有多种不同的读音且声母不同时,则可以用多种方法输入该字。例如,「盛」对应的拼音有cheng
和sheng
,对应了c和s两个不同的声母,因而它在声笔自然中也会有两个编码,分别是cgeu
和sgeu
。
对于非成字偏旁部首,一般取其名称首字的声母作为它的声母进行编码。例如,「亻」的名称为单人旁,取「单」字的声母d作为「亻」的声母,可以用djui
输入「亻」。不知道非成字偏旁部首的名称也没有关系,因始终可以用纯笔画的方式输入。比如,「亻」可以用uiiii
输入。
另外,声笔自然利用了单字的空码位安排了一些词组,分为声笔词、声声词、声声笔词。声笔词只有21个,如人民ra 发现fe 今天je 情况qo 现在xe
,它们的编码方式是首字的声母+次字的首笔。声声词有166个,如出现cx_ 完全wq_ 认为rw_ 结果jg_ 什么sm_
,它们的编码方式是首字的声母+次字的声母。声声笔词有约1000个,如并非bfi 附属fsa 到底ddo 赣南gne
,它们的编码方式是首字的声母+次字的声母+第二字的首笔,在紧接后续字词的声母时可以被顶上屏幕,因此一般只需要三键。
再有,声笔自然三简码位上设置是二简字词和一简字的组合,而不一定是真正的词,例如:挂是gws 时是sis 反应就fyj 微笑发wxf
等等。这种组合一般需要空格上屏,不管是否构成词组,是绝对没有重码的,可以放心大胆的盲打。
2.2 编码反查
在学习声笔自然之初,往往会遇到不会打的字。怎么办呢?系统提供了用笔画或拼音来反查编码的手段。在完全不知道读音的时候直接用aeuio
按顺序输入笔画进行反查,在不知道笔画时用a引导拼音反查(注意零声母要用v)。
以下是几个反查的例子。左边是笔画反查的例子,右边是拼音反查的例子。在笔画反查的例子中,直接输入uuao后,出现了以这四个笔画开头的字;第一项是反fj
,表示「反」字的编码为fj;第二项为般bju bo pjuu
,说明「般」是个多音字,有三个编码。在拼音反查的例子中,是用字母a引导的,所以实际的输入为afang和avan,只是没有显示引导字母而已,其中an前还加了v,因为an是零声母音。
另外,通过a引导的拼音还支持用字海两分法来进行反查, 支持查找八万多汉字,一般用于难读而易于两分的字进行反查或者GBK以外字的输入。GBK以外的字,声笔自然不提供正常编码,不能按正常方式输入,只能在两分查找到后选择输入。
下面是字海两分法查找的例子。第一个例子是想通过输入两个long来反查或者输入「龖」字。第二个例子,是通过输入「尸」和「水」的拼音来反查「尿」的编码。
3 输入技巧
3.1 续码顶屏
在自然码中,当单字的码长不足四码且后接下一字词的首码时,必须要用空格上屏。在声笔自然中,三码字在后接其它字词时,空格是可以省略的。
例如,自然码都是需要空格上屏的,而声笔自然的三码字如节jpe 未wwe 凝nko 管gru
,在连续输入时都不需要空格上屏。
由于声笔自然的三码字数量庞大,高达1600多个,而且不乏常见字,所以对单字输入效率的提升有很大帮助。这就是为什么声笔自然用极其简单的五个笔画代替自然码的大量辅助码后,单字的平均码长反而下降的原因。
3.2 条件顶屏
声笔自然的单字除了三码字可以被顶上屏幕外,其二码字也可以在一定条件下被顶上屏幕,这是一种非常奇特的能力。条件顶是指在输入二字词的时候,若第一字正确而第二字不对时,可以追加第二字的第三码,将第一字顶上屏幕,前提是追加的第三码与选择键没有冲突。例如,在输入「快顶」的时候,发现系统没有该词,而且「顶」字的第三码e又没有被重码词占用,那么在输入e的时候就会将「快」字顶上屏幕,留下「dye」,对应的字正是「顶」。这样,就不必用退格键来清除「ky」两码,用空格先上屏「快」字,再输入「顶」字了。
3.3 巧用大写
在使用条件顶的时候,如果第三码被选重键占用,那么就无法顶前两码对应的二码字上屏,需要退格删除两码,上屏二码字然后再重新输入第二字的编码,非常浪费。通过大写第二字的第三码则可以无条件地把二码字顶上屏而留下三个编码,可以使输入过程更加流畅,且不浪费已经输入的编码。
例如,在输入「快码」的时候,发现系统没有该词,但是「码」的第三码e已经被重码「快吗」占用,所以使用条件顶是不行的,这时就可以用大写的E来将「快」顶上屏,输入法将E转换为小写e后留下三码mae,可以接着输入后面的编码,没有丝毫浪费。
大写后续字词的声母也可以进行顶屏操作,但使用场景不一样,一般使用在二简字后忘记加空格的时候。例如,在输入「有断点」时,输入了yz但忘记了加空格上屏,接着输入了dm,这时出来的是「右端」。不管是用ESC清除后重新输入,还是用退格键修改,成本都非常高。然而,接着用大写输入「点」的首码D,「有」字就会被顶上屏幕,剩下drd三码,再输入「点」的第二码m即可输入「断点」了。
另外,在一、二、三码后,用大写后续字词的首码也可以将首选字词顶上屏幕。「那是不行的」可以用nasBXkD
来输入。
不过,需要注意的是,大写顶屏在大写作为编码的时候是无效的。在声笔小鹤的单字模式下,第三码大写是作为编码用来输入词组的,此时不能顶前面的两码。
3.4 编码变换
除了顶屏之外,编码变换也是节约用键的重要手段。一、二简字的组合,不管是不是词组,都可以通过这种方式来进行输入,从而有效地利用编码空间。注意,这个时候是没有提示的,需要用户对简字非常熟习才行。编码变换通过回车键触发,在没有重码的时候,也支持用Tab触发。
例如,「个人」一词,可以按词组的方式用gerf
来输入。更好的方式是当成两个一简字用g_r_
来输入,其中下划线表示空格,可以离散重码。然而最好的方式是采用编码变换,用gr↓
来输入,其中下箭头表示回车,可以节约一次用键。
又如,「一会」可以用yhv↓
来输入,虽然不能节约用键,但是输入变得确定了,而且可以将yihv
的首选让给「议会」,就起到了离散重码的作用。
再如,「比快」在声笔小鹤默认词库中是没有的,然而用户可能会误以为它是个库里有的词,于是就输入编码biky
,但是发现为空码。这时,如果用退格键删除后面两码,加空格上屏「比」字,再输入「快」字,代价是相当高昂的。幸好,有了编码变换的手段,加个回车就可以变为「比快」,并且也自动造好了这个词,下次就可以用词组来输入「比快」了。
4 高级特性
4.1 字词分流
在自然码中,四码的字、词是混合编码的,它们共享同一个编码空间。在发生重码时,究竟把单字排在前面,还是把词组排在前面,面临艰难的决策。当收录的单字和词组数量增大时,这个问题会变得更加突出。
在声笔自然中,单字和词组各自有不同的编码格式,它们享有不同的编码空间,不会发生冲突,不存在单字和词组那个优先的问题。单字肯定是用sybb
格式,其第三码是笔画,而词组的编码第三码肯定是声母,笔画和声母所用的编码字母集合是不相交的。
例如,单字觉jnoo 钱qmue 貌mcuo 缘yraa
,和词组关系grxi 参加cjjx 示范区sfqu 想不到xbdc 人民共和国rmgg 声东击西sdjx
,它们之间是不可能重码的。
4.2 字母选重
传统输入法通常都是用数字键来选择重码字词。由于击打数字键需要跨行进行,容易产生误击,一般人都无法盲打,所以会严重影响输入速度。
在声笔自然中,当输入的编码达到四码时,如果有重码字词,那么就用aeuio
兼做重码选择键。这时,重码字前的aeuio
并不代表笔画,仅仅表示出现的顺序,和传统输入法的数字选择键作用完全一样。不过,用户在击打aeuio
时要比击打数字键方便、快速得多。
例如,搜狗拼音输入jiao
时,会出现很多同音字供用数字键选择,可能的选项如下,因动态调频的原因,结果会有出入。
声笔自然则不一样,在输入jcoo
时,出现的重码字则是用aeuio
选择,非常方便。
对于词组来说,也是一样的,例如yiyh
。
4.3 扩展编码
为了适应现今的信息社会,中文词汇的数量暴增,传统字词输入法的四码空间显得捉襟见肘。按照26个字母编码,满打满算,四码空间也只有26×26×26×26 = 456,976
个码位。然而,实际的输入法空间利用率是很低的,编码分布很不均匀,所以随着词组数量的增加,重码的重灾区越来越多。
声笔自然的四码词组空间为21×26×21×26 = 298,116
个码位,而收录的词组数量有48万多。所以,词组的重码重灾区是比较常见的。即使比较常用的词,都有可能需要翻页,甚至数次翻页来输入。翻页查找属于强交互的操作,每页都需要用眼睛扫瞄六个选项,是非常耗费时间的,会大大降低输入效率,而且容易看花眼而出错。
为了解决以上问题,声笔自然采用了扩展编码,利用编码的顶功特性,通过追加首字前两个笔画,迅速扩大了25倍的编码空间,在重码严重时,可以快速筛选出所需的重码词。结合后述动态码长的使用,完美地兼顾了编码空间与输入效率,既能享有巨大的编码空间,又能具有很短的平均码长,两全其美。如果追加两码后,仍然有重码,还是可以通过aeuio
进行字母选重,始终可以避免使用低效的数字键。
例如,「质子」一词在第一次输入时,在输入zizi
后需要按三次翻页键,即出现在第四页上,然后再用o
选择,如下图所示。每一页,都需要用眼睛扫视 6 个选项,人机交互频繁,效率很低。
然而,如果再追加第一字前两个笔画的话,「质子」就出现在第一页上,如下图所示。
可见,在输入重码太多的二字词时,通过追加首字头两个笔画,会大大地提高输入效率。
三字词和多字词也可以类似地使用扩展编码。比如,「旧石器」一词在第一次输入时,在输入jsqi
后需要按多次翻页键,然后再进行选择,效率比较低,但是在追加首字的前两笔ii
后它就出现在第一页上了。再如,「结绳记事」在第一次输入时,输入jsjs
后需要按多次翻页键才能找到,而在加上首字的前两笔aa
后就出现在第一页上了。
需要注意的是,声笔自然的单字没有设计扩展编码,因为对于常用字来说,其重码现象并不严重。另外,扩展编码需要在你有任何翻页操作前使用,否在输入第五码时就会直接选择重码上屏了。
4.4 动态码长
动态码长不仅是码长的调整,也包括重码顺序的调整,实际上都是因为对频率的调整而引起的。但是,声笔自然的单字是不参与调频的,即单字的重码位置是固定的,这有利于对单字进行快速盲打。
当四码词组有重码的时候,如果选择了某个非首位的词组,那么它的频率权重就会提高,在下次输入的时候,其排序就会提前。一般通过一、两次选择就可以提前到首位,从而就能利用顶屏来节约一次按键。
例如:第一次输入输送suss
时如果它是排在第二位,用a
选择上屏后,下次输入就可能排在首位了,于是可以利用顶屏节约一次选择键。如果在输入的时候采用了扩展编码,比如用zizioa
输入了「之志」,那么在下次输入的时候一般就只需要zizi
就可以了,码长得到了缩短。
4.5 词组管理
声笔自然目前自带48万多词组,覆盖的面已经很广。但是,用户在使用过程中不可避免地还会遇到缺词的情况,需要添加新的词组,而且对于不满意的词组可能还想删除。
(1) 自动造词
声笔自然的造词是在输入过程中自动进行的。例如:输入声sge 笔biu
后,下次输入sgbi
时就会有该词了,只是如果有重码的话,新造的词会排在后面。如果重码太多,可以追加首字前两笔或者用Shift+Tab一次性地跳到最后,以避免多次翻页。自动造的词组是临时词组,带有太极标志,优先级别低,只有在选择使用一次以后,才会成为正式词组,并提高优先级别。
需要注意的是,在进行枚举自动造词的时候,是以编码对应的字、词为单位来进行组合的,并不是以单字为单位的。例如,在输入声笔sgbi 系列xilx 码mae
后,生成的词组为「声笔系列码」「声笔系列」「系列码」,而不会生成「声笔系」「笔系列」「列码」等。另外,如果之后马上使用了退格键,系统就会自动删除所造的词组;中间夹杂有非汉字的话,也会中断造词。
(2) 词组删除
对于不需要的词组,可以先将光标移动到该词上面,再按Control + Delete
键来删除。注意,如果是非临时词组,需要删除两次才能彻底删除。第一次删除时只是把它变成了临时词组。在安卓手机上,声笔自然的删除方法是:用左右滑动空格定位词组,再用删词键来删除。
4.6 单字模式
如果在输入的时候,突然遇到离散大的文字,需要以单字为主来输入,那么在电脑上可以按Ctrl+~或者F4快速切换到单字模式,在手机上则简单地点击状态栏的相应状态即可,如下图所示。此时,若第三码用大写,则仍然可以输入常规四码词组。
如果用户想默认为单字状态,那么可以修改schema文件,将pro_char项下的reset设置为1,并重新部署一下。
5 声笔自整
声笔自整是声笔自然的整句模式。它不需要考虑单字、二字词、三字词和多字词的不同编码规则,只需要知道单字的编码就可以进行中文输入了。但是,它的缺点是,在输入发生错误后回改的成本高,离散程度高的文本尤其如此。所以,声笔自整仅适合录入简单的连续文本,或者供声笔自然的初学者使用,熟练的用户应当使用声笔自然。
下面举例说明一下声笔自整的输入方法。
例1:我们大家都喜欢研究输入法
这个例子按照规则输入后就完全正确了,不用任何回改,这时的输入过程是非常流畅和舒服的。但是,并不总是这么幸运的,如下例动画所示。
例2:声笔系列码的顶功特色
对于这类转换不正确的情况,声笔自整提供了一种快速定位的手段,可以利用数字1234
将光标一次性地定位到待定的第1至4个音节之前,用5
将光标定位到最后。在定位后,还可以追加一至两个笔画来筛选重码,提高转换的准确率,尽量避免翻页。在追加两个笔画后,还可以用aeuio
代替67890
进行重码选择,在操作上更加便捷。
附录:声笔自然的编码格式
在后面各方案的编码格式中,采用了一下表达方式。
- s = [qwrtsdfgzxcvbyphjklnm]
- y = [qwertasdfgzxcvbyuiophjklnm]
- b = [aeuio]
^
表示起始顶屏码位,字母后的数字表示词组中的第几个字,0特别地表示末字;'
表示码长调整位;s表示声母(大写时表示用大写字母输入),y表示双拼,b表示笔画。s采用 aeuio 以外的 21 个英文字母,y采用所有26个字母,b采用 aeuio 这几个元音字母。
为了便于用户总结和记忆声笔自然的基本内容,现将其字词的编码格式以浓缩的表达式方式总结如下。
- 单字
syb^b
- 二字词
s1y1s2y2^'b1b1
- 三字词
s1s2s3y3^'b1b1
- 多字词
s1s2s3s0^'b1b1