
三拼加声调笔画辅助, 终于整理出一个比较满意的方案
全拼有两个比较大的问题, 一个是长度, 一个是重码. 长度方面之前文章分享过, 全拼用户的福利-加减乘除四则运算, 全拼秒变三拼
经过简单变换之后, 长度达到2-3的水平, 已经比较满意了, 也尝试过进一步压缩到全部二码, 韵母只用aeiouvnr八个, 虽然可以做到字数分配尽量均匀, 然而重码的数量却大大增加了, 严重依赖辅助码选字. 所以还是决定在三拼的基础上加上声调笔画来辅助去重. 同时又希望可以用两码来组词, 最好能比较接近全拼的形式, 符合直觉, 比如, 中国用zogo或者zngo. 大部分双拼方案是韵母乱序需要记忆和强化练习, 因此选择自行在三拼基础上改造.
简单来说就是给韵母分组, 按照首字母或主要元音分组. 比如这样:
a ai an ar
e ei en er
o ou or ao uo
i ia ie iu iao ian iar in ir
u ua ue ui uai uan un uar
v
ao uo 都归到o组,ia ua开头的数量多, 字数却少, 可以都放到v组. ie合入ei, in ir合入en er. 还有ue/ui/iu等一堆零碎也都放进v里,
a ai an ar
e ei/ie en er
o/uo ou or ao
i
u un
v ve|ue ui/iu/io ia ian iar ua uai uan uar
v组看起来多, 但大多数是一些边缘音, 实际字数不多, i的字数最多, 单独成组.
为了方便组词, 同一组的都给一个相同首字母的形式. ia和ua都换成v, 加上后面的字母, 表示成vn vi vr等.
- derive/ao/oa/
- derive/uo/oe/
- derive/ie/eo/这样就可以得到一个比较整齐的韵母表:
a ai an ar
e ei en er
o ou ao or
i
u un
v vi vn vr
最后两行可以再对齐一些, 把uang用ur表示, iang在失去jqx组合之后只剩下niang liang两个音节, niang的字也不多, 可以直接合入ian. 则后两行变为
u un ur
v vi vn
简拼规则设置为:
- abbrev/^(\w).+$/$1/
- fuzz/^(\w[^iu])\w*$/$1/
- fuzz/^(\w{3})\w+$/$1/这样打词组就够了, 四码一个二字词, 接近双拼, 看起来更简单直观一些. 单字的话再加声调辅助码, 用四个符号键; , . /代表四个声调, 还可以再加笔画, 用五个大写字母HSPDZ或IOJKL代表五个笔画, 常用字打到六码就基本没有重码了. 目前整理的常用字中比较不好选的字有这些:
个各 在再 记计 剑件箭舰健键 最罪 列裂烈 慕幕暮墓募 批披坯 地蒂 弟递帝
网友还整理了下面这些更难区分的:
密蜜宓,赢嬴,荣蓉茸茙,铬镉,杆柑橄,洋漾泱,洪鸿泓,灶燥
上述方案用一段时间后觉得效果还可以. 就想着不用符号和大写字母了, 全都改用小写字母以利于形成肌肉记忆. 由于韵母编码不定长, 于是想到用正则模式来确定辅助码起始位置. 受限于目前个人的技术能力, 暂时通过限制第三位来实现匹配, 也就是第三位只能用iunr三个字母.
这样韵母表变为:
a ai au* an ar
e ei eu* en er
o(ao) oi(iao) ou on(uo) or
i ii* iu in ir
u ui uu* un ur(uang)
v vi(uai) vu* vn(uan/ian) vr(iang)
带星号的表示目前未使用. 可以看到大部分和全拼是一样的, 只有on oi ur vi vn 等几个音需要适应一下. ao和o合并, o音的字不多, uo其实也可以合并进来, 只是重码会多一些, 或者用au表示ao, 可以根据每个人的习惯修改. 用多种方式表示同一个音也是可以的.
为了简短, en, er中的e可以省略, 直接写n和r, 符合拼音的一般原则. in和ir也可以省去i, 会混淆的只有bpmn几个声母, 字数也不多.
用aevo代表四个声调(轻声合并入一声), aevou代表五个笔画, 正则模式为:
[qwrtypsdfghjklzxcvbnm][aeiouvnr][iunr]?[aevo]([aeiou]*)四个符号键; , . /可以用来选字, 如果不够还可以加上: < > ?, 这样编码后一般不用翻页了, 需要的话, 翻页键可以设为Control+.和 Control+, rime中设置如下:
key_binder:
bindings:
- { when: has_menu, accept: Control+period, send: Page_Down }
- { when: paging, accept: Control+comma, send: Page_Up }五个笔画的前两码重复比较多, 可以将最高频的"十 冂 氵" (横竖 竖折 点点)映射到"i r n"三个键上, 加快筛选速度.
考虑到学习成本等各个方面, 感觉这已经是目前最满意的方案了. 拼音和笔画都是标准数据, 不需要额外学习, 只是需要适应用字母表示声调和笔画, 以及通过练习形成肌肉记忆, 加快反应速度.
如果将声母中的n和r合并进k和f, 再用w引导零声母字(这几个声母的字数最少), 则可以实现声母韵母完全分离, 理论上可以作出不用按空格的"顶功"效果, 现在还没有尝试,只试验了一下唯一字自动上屏, 感觉还不错, 也许之后等技术水平和熟练度提高了可以试试.
如果想用单字母表示韵母, 类似双拼的方式, 可以将这些组合平铺到键盘字母上, 30种组合实际只用了25种, 使用26个键盘字母表示绰绰有余.