跳到主要内容

无格式顶功

基本信息

「无格式顶功」,又称「无规则顶功」、「小锋顶」、「二三四混顶」、「一二三四混顶」,是码圈著名音乐人赵小锋琢磨出来的一类单字输入方案,经过字源输入法作者彭秀峰改进,目前能够在 Rime 输入平台和大唐输入平台上实现。风云拼形码的作者峯蕓尒ふ提出的「二三整句」、宇浩输入法中的「全码整句」也属此类。

「无格式」的含义是方案中所有的键都可以在任意的位置用于编码,没有大小集合(A、B、……)之分,因此也就无法概括出其他顶功方案所包含的格式。但是,无格式顶功仍然能够在绝大多数情况下实现正确的编码切分,使其每段编码对应的候选不需要手动确认上屏。这是由于在允许使用的编码空间之内,实际被使用的编码是稀疏的。

例如,当使用 a-z 26 个字母编码时,三码空间为 263=1757626^3=17576,四码空间为 264=45697626^4=456976。若此时对 6000 个汉字进行单字编码,其中三码 5000 个、四码 1000 个,并假设汉字「甲」的编码为 abc,「乙」为 defg;当他们连起来打时,考虑编码串 abcdefg,其可能的切分为

  • abc, defg:对应正确的切分结果
  • abcd, efg:对应错误的切分结果

不妨假设编码在可用空间中独立均匀分布,各字的出现概率相同(即信息熵最大的情形),则错误的切分结果出现的概率为

500017576×1000456976×100%=0.06%\frac{5000}{17576}\times\frac{1000}{456976}\times 100\%=0.06\%

实际输入中,不同的字出现概率不同,且字和字之间的邻接概率也不同,使得错误的切分结果出现的概率更低。另外,当编码串进一步增长时,平均每字的信息熵降低,但平均每字的码长不变,因此解码所需的信息量倾向于相对越来越充分,结合一定的算法和语言模型能取得更好的切分结果。

以上结果依赖于编码稀疏性的强弱,因此通常只适用于小字集单字输入,不适用于大字集单字和词语输入。

编码规则

无格式顶功不是独立完整的输入方案,而是基于现有的定长类方案改造。其词表的建立过程如下:

  1. 选取低重的三码或四码输入方案的拆分表和单字全码码表,如虎码宇浩天码字源文心两仪
  2. 选取小字集,如 GB2312;
  3. 将这小字集中的单字分配编码,此处有不同的分配策略,如
    • 频率优先的取码法(小锋):按字频降序排列,依次分配一简、二简、三简,没能分配到简码的单字取全码;
    • 全码优先的取码法(彭秀峰):按拆分的字根数量升序以及字频降序排列,这样尽量让简码和全码相同,以减少简码记忆量,例如低频两根字编码 AB 优先高频三根字编码 ABC分配到简码 AB,经实际测算,这个做法基本不改变生成的码表的重码数量,而由于所有单字都是常用字,因此也基本不影响码长;
    • 仅使用全码(宇浩全码整句):所有字都使用全码;
    • 仅使用二码和三码(二三整句):一个字根和二个字根的字取前两码,其它字全部取前三码,无四码;
    • 仅使用二码和三码(二三整句,二码稀疏):在字频前 500 字中取 300 个左右的二简字,其它的字全部用三码。与原方案相比,因二简字唯一了且有 370 多个二简空码的存在,准确率要高一些。但要求用户背 300 个二简字;
  4. 需要输入法平台如 中州韻輸入法大唐输入法的支持,达到只有一简需要接空格,二简、三简、全码都不需要接空格的整句连打体验;
    • 高频的一简接空格充当了分词的效果;
    • 高离散的单字编码可以让输入法平台用空码来进一步帮助区分单字编码的边界;
    • 用户要随着输入慢慢积累关联字串(即 Bigram 词表),以帮助输入法平台在上两个措施不够时,进一步用用户提供的 Bigram 词表来消除单字编码边界的歧义;
    • 最后,类似全拼输入,支持用户选重,也支持用户快速回改,例如大唐输入法的「瞬改」功能;

评价

易用性

无格式顶功是嫁接在任意低重输入方案上的单字输入方式,优点在于:

  • 可以复用已经学会的三码或四码方案
  • 规则相较有格式顶功更简单,不需要根据大小集合使用不同的编码方式
  • 不用考虑分词,较少按空格

编码效率

在使用二简的情况下,由于省略了二简、三简后的空格,其码长较短,在 2.3 左右。若用户愿意背一些简词,码长能在2.0左右。

离散能力

此类方案可能出现两种不同的重码:

  1. 编码重码:即一个编码对应多个字;这取决于所挂载到的输入方案的离散能力,离散越高,使用体验越好;由于不分大小集合,同等码长内编码空间比较大,编码重码一般小于其他顶功方案;
  2. 切分重码:即编码串的不同切分方式导致的重码;这取决于编码的稀疏性、均匀性等统计性质,比较难以预测;

总之,此类方案只适合小字集的规律输入,如日常聊天,不太适合打古文、专业文献。