1 引言
拼音输入法是中国大陆目前使用得最为广泛的输入方案,其用户比例至少在96%以上,甚至可能高达99%。确切地说,这里的拼音输入法是全拼输入,不包括双拼,因为后者使用的人非常少,相比全拼可以说是微乎其微。
在中国大陆,任何需要输入中文的设备或者操作系统,不论电脑、手机还是平板、电视,也不论Windows、MacOS、Android还是iOS,全拼输入方案都是必备的,而且是默认的中文输入方式。不管国际大公司如微软、谷歌、苹果,还是国内大厂如腾讯、百度、讯飞、华为,都推出了自己的拼音输入法。曾经那种万码奔腾的局面已经一去不复返了,大街小巷的五笔打字培训班也已经成为历史的记忆,自然码、两笔、郑码等其它原来比较知名的输入方案则越来越少为人知。笔画输入法也只有很少的人在使用,一般是功能机时代沿袭下来的。
为什么会形成全拼输入一家独大而其它输入方案几乎销声匿迹的现象呢?是全拼输入已经完美的解决了中文输入的问题,人们已经非常满意,别无他求了吗?拼音输入没有改进、优化的地方了吗?非也!而且远非如此!实际上,现在的拼音输入法还存在很多问题,有的问题可以说是怨声载道,有的问题是因为缺乏指导而使用不当造成的。
1.1 拼音输入误区
现在的拼音输入法常常被称为智能整句输入法。人们在描述输入法发展历史的时候,也常常说从字到词到句。从理论上来说,更大的语境更有利于提高音字转换的正确性。从算法上来说,通过长期的积累,已经有成熟的隐马尔科夫模型。从硬件上来说,CPU、内存、硬盘等性能大幅提升,价格大幅下降,已经不是问题。加上互联网的成熟,更可以利用大厂服务器的资源和大数据来提升智能整句输入法的能力。从用户的角度来说,使用整句输入可以没有分词的负担,还可以少按大量的空格,只需要练熟400来个音节拼式,只管一个劲地击键就行了。似乎一切都完美了!
然而,实际情况却让人大跌眼镜,绝大部分人并没有以整句为单位来输入,真正采用整句输入的人其输入的效率也并不高。最能称得上整句输入法的微软拼音整句模式,可以算是技术上的精品了,但是采用的人并不多。微软拼音在面对搜狗、百度等利用搜索引擎和网络词库的次整句输入法时,显得力不从心,用户数量越来越少。整句输入的问题出在哪里?问题出在以下几个地方,即整句输入“八宗罪”。
(1) 编码效率低
拼音作为编码来说,编码效率太低,导致平均码长过长,超过了三码。汉语拼音的设计初衷是用于注音识读,所以遵循了音素化和国际化的原则。在这些原则的指导下,由于普通话自身的特点,使得拼音字母的利用效率很低,存在大量冗余。从编码的角度来说,用26个字母表达400个音节,每个音节只需要不到2个字母,因为26×26=676,可用的编码空间远远大于400,而汉语拼音却用了超过3个字母,所以效率会低。
(2) 确认成本高
整句的转换结果在输入的过程中可能会不断地发生变化,所以不到输入结束是不能判断其正误的,能够判断正误的只有输入的拼音串,拼音串不会发生变化。然而拼音并不是文字,人们对它的识读能力是很弱的,最多只能快速找出刚才输入的一两个音节的错误。因此,在输入过程中,最多只能做到输入的拼音串尽量不要出错。在一句话输入完成后,用户不通读一遍转换结果,是无法知道对错的,即使结果完全正确,这一步都是少不了的,而且句子越长判别正误的成本越高。
(3) 键错概率大
人不是机器,人在输入编码时,击键的准确性是有限的,一般来说,在计算机标准键盘上,有95%的键准就不错了。如果在手机上操作,那么键准还会低不少。假设整句输入的平均长度为15个汉字,每字平均3键,平均每个句子用了45键,那么整句键入完全正确的概率就只有0.95^45≈9.94%,不到10%!而且,随着句子长度的增加和击键速度的加快,正确率还会进一步下降。怎么办呢?现在的拼音输入法普遍都提供了自动纠错的能力。其原理是利用全拼的高冗余,对易于混淆的键进行容错。自动纠错确实能起到一些作用,但也同时带来了新的问题,可能会弄巧成拙,把用户需要的结果误改掉。
(4) 回改成本高
如果在上屏前确认时发现了错误,就需要进行回改。错误可能发生在一句话的任何位置,可能是转换结果有错,也可能是输入的拼音串有错。发现错误的位置后,需要先定位才能修改,其定位方法一般是用左箭头键逐个音节向前移动,用右箭头键逐个字母向后移动。箭头键的位置远离本位键,操作跨度大,缓慢、费时。搜狗拼音还有一个少用的方法是用Ctrl加字母键来定位,其特点是用键次数少,但是操作难度大。
(5) 残错概率大
不少人习惯于在输入过程中监视转换结果,在输入最后一个字词时就不再观察转换结果,然而可能会正是这最后一个字词又导致前面已有的结果发生变化,导致错误。这种错误,用户往往不容易发现,使得残错率升高,因为他不自觉地会认为,前面是正确的,最后一个选择也正确的话,就不会有错了。另一种情况是,明明知道还有错误,但是因为觉得修改太麻烦了,就不愿意修改而直接上屏了;这在打字比赛之类的紧急场合和聊天之类的不严肃场合是很常见的。还有一种情况是,由于输入的内容很多,虽然仔细检查了,以为没错,但是实际上仍然还有没检查到的错误。
(6) 可重用性差
拼音输入法是以输入单位进行记忆的。以句子为单位进行输入,就是以句子为单位进行记忆。而句子,除非是很短的日常用句,在使用中重复的可能性是非常小的。输入法很难学习到用户的输入习惯,也就很难根据用户的输入习惯来改进输入效果。例如,就是前面的「也就很难根据用户的输入习惯来改进输入效果」这样一句话,是很难被再次原封不动地使用的。
(7) 自由度受限
为了提高转换的准确性,行文就不能有创意,要尽量使用大众化的表达方式。用俗话来说,就是要尽量打水文。你要说「检查错误的方法」而不要说「查错法」或者「检错法」。要使用这种简略的说法,需要事先造词,然后才能用在句子当中。造词的过程并不简单,你得先以词为单位输入一遍,在句子中输入一遍是不能造出这个词的。可是,按词输入是整句模式的弱项,选重非常麻烦。更为伤脑筋的是,你常常并不知道系统中是否有某个词。
(8) 适应性不强
在不少时候,用户无法以句子为单位来进行输入。例如,在进行文章的审校时,往往是只是对个别的字词进行修改,这时不得不以字词为单位来输入。又如,在列出人名时,也只能以名字为单位进行输入,而不是句子。再如,打购物清单的时候,也只有逐个物品的输入。所以,整句输入适应性差,不能很好地适应各种应用场景,是不完备的输入方式。
有鉴于以上原因,拼音输入应该以字词为单位而不是以句子为单位。实际上,除了极少数死心塌地的整句派,大多数人也是这么做的。先进行正确的分词,然后按字词进行输入,可以在一定程度上同时克服以上问题。在输入字词时可以适时地使用简拼,从而缩短码长,提高编码效率。字词的长度一般不会超过四个字,确认和回改的成本会大大降低,错误更容易发现和修改,残错率也会减小。
1.2 拼音输入改进
通常,为了在使用拼音的情况克服以上问题,人们首先想到的可能就是采用双拼。但是,双拼的门槛还是不低,需要记住30来个韵母、3个翘舌声母和零声母的表示形式,而且仍然不能解决重码多的问题。同时,双拼能够节约的用键,被无法或者难以使用简拼的缺点部分抵消掉了。
声笔拼音则另辟蹊径,以全拼为基础,进行适当的变形,只需花费比双拼小得多的代价,就可以取得相当于甚至高于双拼的输入效率。声笔拼音是一种非常「奇特」的拼音输入法,它完全颠覆了人们对拼音输入法的认识,平均码长和重码大幅度减少,翻页键很少用得着,输入效率大大提升。
声笔拼音三板斧,在传统拼音基础上实现三次大飞跃
- 自由编码:缩短和变换拼式、直辅笔画
- 固定简码:截断固定、数选固定
- 顶功省键:优化路径、省略空格、快速回改
1.3 适用人群
声笔拼音适合什么样的人使用呢?声笔拼音是对现有拼音输入法的优化和改进,所以它适用于正在用拼音输入中文的所有人,可以仅花费极小的代价就获得高得多的中文输入效率,而不必花更多的时间和精力去学习双拼甚至五笔等。声笔拼音将彻底改变人们对拼音输入时重码多、效率低的刻板印象,是最佳的拼音输入法升级方案。
如果您的拼音非常糟糕,声母分不清平翘舌,对韵母的掌握一塌糊涂,同时又想有一个简单高效的输入方案,那么强烈建议您使用声笔系列码中的声笔简拼,它仅使用不分平翘舌的声母和五个笔画,就能取得与声笔拼音一样的输入效率。
1.4 内容介绍
本文只涉及声笔系列码中的声笔拼音。有关声笔系列码的总体情况请参见总体介绍。有关下载、安装和配置的方法,请参见安装配置。有关声笔系列码的发展历史,请参见发展历程。对于一些常见问题的解答,请参见常见问题。声笔系列码的其它输入方案详见各自的专题。
2 快速入门
2.1 编码规则
声笔拼音的编码元素为声母、韵母和笔画,具体表示方法与现行拼音输入法有一定的差异,请注意以下几点。
- 冠零声:用v表示零声母,即作为以
a e o
开头的音节在形式上的声母。例如,ai ei ou
就变成了vai vei vou
。 - 去翘舌:不区分平、翘舌音,即省略
zh ch sh
中的h
。例如,zhou chao shi
就变成了zou cao si
。 - 省介音:在声韵相拼的时候,声母
j q x
后接以ia ie io
开头的韵母如ia ie iao ian iang iong
时,要省略i
。例如,传统拼音里的jie qiong xiang
在声笔拼音里则变成je qon xan
。 - 截韵尾:音节长度超过3时,则截断为3。例如,
biao
变成bia
,而guan
变成gua
。这也导致了不区分前后鼻音,即省略ng
中的g
。例如,bang zong
就变成了ban zon
。 - 去鼻音:将末尾的n置换成其前面的元音字母。例如,
bin
变成bii
,而xan
变成xaa
。 - 理特例:将韵母
er
合并到e
,ü
合并到u
,ê
合并到e
。例如,er
变成ve
,nü
变成nu
,而ê
变成ve
。特别注意,ü
没有像传统拼音输入法那样用v
来代替。 - 纯音节:对,两字母的音节,在不知道笔画时,可用
'
作为第三码来占位。例如,li
变成li'
,wo
变成wo'
。 - 补笔画:补充笔画直至码长为6,笔画不够时重复末笔;横竖撇捺折五个笔画用
eiuoa
来表示。例如,「笔」的拼音为bi,追加前3个笔画后编码为biueou
。又如,「将」的音节为jaa
,追加前两个笔画后的编码为jaaoei
。再如,「乙」的音节为yi
,而「乙」只有一个笔画,所以要重复三次才能形成编码yiaaaa
。需要注意的是,在实际输入的时候,一般是不用6位全码的。
通过以上简单的改造,就可以取得以下奇特的效果。
- 拼写形式得到了缩短,例如:
zhuang
变成了zua
,miao
变成了mia
。 - 可以直接追加笔画进行快速筛选,例如:
依yiu 衣yio 议yioa 艺yie
。虽然现有拼音输入法也可以用Tab来引导加笔画,但是只能作用于词组中的首字,而且增加了码长。 - 音节之间界线完全明确,在连续拼写的时候根本不需要使用隔音符排除歧义,例如:
xi'anshi
变成了xivaasi
。虽然现有拼音输入法也可以用单引号来隔音,但是增加了码长,同时也容易忘记使用。 - 降低了学习门槛,不再需要区分平翘舌和前后鼻音。虽然现有拼音输入法也可以设置模糊音,但是会影响汉字转换的准确性,而在声笔拼音中不会有这个问题,因为声笔拼音中不再保留翘舌音和后鼻音的拼式。
下面我们通过一些例子来熟悉一下上述7条编码规则,对于每个字,依次加以运用这些规则就是了。当然,在熟悉以后,是不必每个规则都去用一下的,因为直觉会告诉你哪个或者哪些规则是适用的。
- 声sheng:不是零声母音,不适用规则1;用规则2去除翘舌后,拼式变成seng;没有介音,不适用规则3;用规则4截去韵尾后,拼式变成sen;用规则5去掉鼻音后,拼式变成see;不是特例,不适用规则6;用规则7补充笔画后,拼式变成seeeie。
- 将jiang:不是零声母音,不适用规则1;不是翘舌音,不适用规则2;用规则3去掉介音后,拼式变成jang;用规则4截去韵尾后,拼式变成jan;用规则5去掉鼻音后,拼式变成jaa;不是特例,不适用规则6;用规则7补充笔画后,拼式变成jaaoei。
- 快kuai:不是零声母音,不适用规则1;不是翘舌音,不适用规则2;没有介音,不适用规则3;用规则4截去韵尾后,拼式变成kua;没鼻音,不适用规则5;不是特例,不适用规则6;用规则7补充笔画后,拼式变成kuaooi。
- 儿er:用规则1添加零声母后,拼式变成ver;规则2、3、4、5都不适用;用规则6后,拼式变成ve;用规则7后,拼式变成veuaaa。
- 虐nüe:规则1、2、3、4、5都不适用;用规则6后,拼式变成nue;用规则7后,拼式变成nueiea。
- 创chuang:用规则1后,拼式变成cuang;用规则4后,拼式变成cua;用规则7后,拼式变成cuauoa。
2.2 助记方法
虽然声笔拼音已经简单,基本上没有什么学习门槛,但是为了进一步减轻初学者的记忆负担,在手机上提供了助记皮肤,可以长按N
键打开或者关闭助记。在打开时,给出了笔画和零声母用键(aeuio
和v
)的提示,如下图所示。如果是在电脑上,则可以把该图放在电脑桌面上,在打字的时候帮助记忆,一般几分钟就记住了。
2.3 基本输入
Tab和Shift Tab分别用于向前和向后翻页。Esc用于清除所有编码,退格键用于删除光标前的一个编码。首选项用空格上屏,重码项用23789上屏,而不是传统的123456,这样更便于操作,而且23789有时候是与笔画对应的。光标定位用1和0进行,重复按1逐字定位到未确定字的编码后,循环进行,按0则始终定位到所有编码的最后。在字数多于2时,可以用单引号直接定位到第二字的编码之后。
为了避免歧义和便于记忆,我们将用下列类似正则表达式的精简方式来描述顶功模式下字词的输入格式。其中,s = [qwrtsdfgzxcvbyphjklnm]
表示声母,b = [aeuio]
表示笔画,y
表示韵母中的第一个字母(即次码),x
表示韵母中的第二个字母或者追加的第一个笔画(即第三码)或者'
(用于不知道笔画时),*
表示按笔顺取零个或者多个,括号表示补码,大写的S表示声母需要用大写字母。
单字:
sb, syxbbb
二字词:
s(yxbbb)syx
三字词:
s(yx)s(yxbbb)syx
四字词:
s(yx)s(yx)s(yxbbb)syx
五字及以上的词:
s(yx)s(yx)sS*(yxbbb)syx
2.4 反查方法
在使用声笔拼音时,特别是在学习声笔拼音之初,有时会遇到不会打的字。怎么办呢?声笔程序提供了丰富的反查手段,可以通过笔画和一般拼音来反查编码,还可以采用字海两分来反查和输入非 GBK 汉字。
2.4.1 拼音反查
在知道一般拼音而不知道字形时用 a
引导拼音反查。
例如,要反查「防」字的编码,就在输入 a
之后再输入它的拼音fang
,所以实际的输入为 afang
,结果如下图所示。反查出「防」字的编码为 faaaio
。如果是多音字,那么就会有多个编码,如图中的「房」字就有 faaoae
和paaoae
两个编码。
对于零声母字,如「案」字,在反查时除了用a
引导还需要在正常拼音的前面加 v
,因为 an 是零声母音,所以实际的输入为 avan
。在下图中提示出的案vaaooa
,表示「案」字的编码为 vaaooa
。
2.4.2 笔画反查
在完全不知道读音的时候,直接用 aeuio
按顺序输入笔画进行反查,无需引导。
在下面的笔画反查的例子中,不用引导而直接输入 uuao
后,出现了以这四个笔画开头的字。第一项是反faauua
,表示「反」字的编码为 faauua
。第二项为般baauua pouuao paauua
,说明「般」是个多音字,有三个编码。
2.4.3 两分反查
通过 i 引导的拼音还支持用字海两分法来进行反查, 支持查找八万多汉字,一般用于反查难读而易于两分的字或者输入 GBK 以外的字。GBK 以外的字,声笔拼音不提供正常编码,不能按正常方式输入,只能在两分查找到后选择输入。引导字母i可以理解为英文inquire(询问)的首字母,以便记忆
下面是字海两分法查找的例子。第一个例子是反查「龖」字的编码,在输入到第二部分拼音的第一码时就出来了。第二个例子是通过输入「尸」和「水」的拼音来反查「尿」的编码,输入了两部分完整的拼音。
对于非 GBK 字集里的「㕛」字,它是没有编码的,只能用两分法来输入,如下所示。
3 字词输入
3.1 单字的输入
使用纯顶模式时,单字的顶屏能力很强,从第二码就开始顶了,也就是说只有一简字需要空格上屏,其它首选字都可以省略空格。在混顶模式时,二三简字也不能顶屏。
3.1.1 实例一
「我」是一简字,只需要声母w,要加空格上屏,在纯顶和混顶下都是这样的。
3.1.2 实例二
「给」是二简字,只需要声母g和首笔a(相当于输入格式中的sb)即可。如果后续其它字词如「你」的声母n,那么,「给」就会被顶上屏幕,从而节约空格键。
3.1.3 实例三
「洗」不属于一、二简字,在输入了xi后,读音就输完了,所以第三码用首笔o(相当于输入格式中的x)。这时,假设「洗」出现在首选了,那么就可被顶了。当然,因为调频的原因,xio上的首选字有可能不是「洗」,但毫不影响理解这里说的顶屏。
3.1.4 实例四
「素」字,假设在输入suee(相当于输入格式中的syxb)四码后出现在首选了,从而可以被顶。因为调频位在第三位上,下次再输入「素」字就很可能只需要sue三码了。
3.1.5 实例五
在同音字很多的时候,很可能就需要输入五码甚至六码,才能出现在首位。
3.2 二字词输入
3.2.1 实例一
「我们」一词,输入两码后就出现在首选了,这时需要空格上屏。
3.2.2 实例二
「外贸」一词,输入三码后,就出现在首选了,可以顶屏,如下所示。
3.2.3 实例三
「干洗」一词,在输入至少三码以后,只要「干洗」出现在首位,就可以顶屏。
假设不知道「洗」字的首笔,那么就可以用单引号'
来代替,从而避免输入笔画。
3.3 三字词输入
3.3.1 实例一
「计算机」一词,输入jsji后,该词已是首选,处于顶屏位,也可以被顶。
3.3.2 实例二
「脚手架」一词,输入jsja后,并没有出现在首选,可以数选上屏,也可以继续输入末字的编码。
想要的词还没有出现在首选,可以进行补码,输入首字的韵母首字母后,「脚手架」就到首选了。
3.3.3 实例三
如果「击键率」一词,在末字输入了三码后,情况如下。
由于候选项中没有「击键率」,于是回头追加首字的编码。
发现已经没有三字词,开始出现二字词了,再补充第二字的编码。
「击键」出现在候选项里了,用8选中它。
「率」可以用7选择,选中它就完成了输入过程,并造好了「击键率」这个词。
3.4 四字词输入
3.4.1 实例一
「红光满面」一词,输入四码就是首选了,可以顶屏。
3.4.2 实例二
要输入「永生永世」,输入四码ysys,并没有出现首页。
此时可以翻页查找。
更好的办法是继续输入末字的第二码i(即「世」的韵母)后,该词出现在候选项中了,此时可以选择上屏。
也可以在末字输入完三码后,回头补充首字编码,直到「永生永世」便成为首选,以便顶屏。
3.4.3 实例三
假设现在要输入「声笔系列」,发现在输入sbxl后,情况如下。
没有发现该词,于是继续追加末字两码。
由于候选项还是没有变化,所以再回头补充首字和次字的编码。
这时,候选项中出现了「声笔」,选择后情况如下。
候选项中「系列」也出现了,选择后,「声笔系列」上屏,同时造好了这个四字词。
3.5 多字词输入
五字及以上的词称为多字词。
3.5.1 实例一
「床前明月光」,在输入完四码后,由于有长词联想功能,它可能会已经出现在候选项中。
如果想将它提前到首选,只需要大写输入第五字声母即可,注意提示的编码仍然是小写的。
3.5.2 实例二
假设现在要输入「声笔系列码」,其过程如下,包括补码和组词操作。
此时,如果后面还要输入「是」字,那么输入s就会将「声笔系列码」顶上屏幕,并造好该词。 整个造词过程犹如行云流水,与常规的输入过程几乎是合而为一了。
3.5.3 实例三
如果已知某个五字及以上的长词在系统中没有而需要新造,那么采用输入首码后按Shift+Tab(手机是上滑Tab)进入缓冲模式来造词是最好的,这时只需要拆开后输入一遍这个长词即可,而不必先输入所有的声母再回头补码。
例如,要输入「顶功输入高手」,缓冲造词的情况如下。
这时空格并不会上屏,而是会停留在缓冲区中。
需要再次空格才能上屏,同时退出缓冲模式,当然也造好了这个长词。再次输入的时候,只需要前四码就会因为长词联想而出现在候选项中。
4 数标固定
除了一、二简字词外,声笔拼音还有大量固定的数选字词以及少量标点字词,包括210个声数字、42个声标字、210个声笔标字和4410个声声数词,它们有助于提高声笔拼音的可盲打性,从而提高输入效率。固定字词分为有理的和无理的两组,默认情况下只提示有理组,可以设置为同时提示无理组,以下示例是设置为同时提示无理组的情况。有理组用23789代表折横撇竖捺,而无理组用;'14560
进行选择,与笔画无关。
例如,在输入z后,如果直接输入;'14560
将顺序选择「最 再 展 之 作 主 则」几个字。
又如,在输入zy后,如果直接输入14560
将顺序选择「怎样 重要 只要 主要 终于」五个词。其中,1可以换用单引号,而0可以换用Tab。
5 组合固定
在输入三个声母时,首选项会变成二简词和一简字的固定组合,只有输入末字的第二码,才会开始检索三字词,从而可以在不增加用键的情况下减少人机交互,提高输入效率。
6 组合变换
变换操作用于输入一二简字、二简词之间的组合,熟悉后可以盲打,还可以用来规避重码。
两个一简字的组合:
ss; => s_s_
一简字与二简词的组合:
sss; => s_ss_
一简字与二简字的组合:
ssb; => s_sb_
二简词与一简字的组合:
sssTab => ss_s_
三个一简字的组合:
sss' => s_s_s_
,其中的单引号也可以换用Shift+空格两个二简词的组合:
ssss; => ss_ss_
二简词与二简字的组合:
sssb; => ss_sb_
二简词与两个一简字的组合:
ssssShift+空格 => ss_s_s_
7 长词联想
如果Rime的前端支持1.11.0及以上的librime,而且未将translator的enable_completion设为false时,那么在输入四个声母后就可以进行长词联想。这样,在输入长词时就不必输入完所有的声母即可进行选择了。
例如,在输入zhrm后,也会同时检索出因此为前缀的长词,如下所示。
同理,输入zhrmg后,会联想出更长的词组。
8 自定词典
声笔拼音的所有固定字词,包括一简字、声笔字、声声词等,以及所有固定的数选字词,都是可以修改定制的,它们位于sbpy.fixed.txt文件中。您修改保存后,重新部署一下就可以生效。