推荐哪个形码输入法?

不会吧,现在拼音输入法都自带笔画,除非又不会读又不会写。

试了下山人输入法,感觉这个输入法须要语文好 :rofl:,特別是象形字根,如果知道字根本身是什么意思就很好记,要不然基本上就是死记硬背

我用的明月拼音就没有笔画,要用单独的五笔画输入法,倒是容易上手,就是输入好慢啊。后来加了个拆字字典,比如 ukoukou 就可以得到「吅」,但是又看不到读音,我晕!

字根意思还是容易学习容易记的,总比死记硬背强吧,谢山人的这个创意挺好的。

腆颜总结下。中文输入法有好多类型 ,大众主流用的有三种:

  1. 音码输入法,就是拼音输入法,最主流的当属全拼输入法(港台用注音输入法),全拼输入法往往结合简拼(也就是输入首字母就够了),其次不怎么知名的就是双拼输入法。 双拼输入法的键盘布局方案很多,出名的有自然码双拼、微软双拼、搜狗双拼、智能ABC双拼、拼音加加双拼、紫光双拼、小鹤双拼、星空键道。 小鹤双拼有进阶的小鹤音形输入法,可能因为这个原因更流行点。

拼音遇到不会读的字,有两种办法,用形码输入法比如最简单的「五笔画」输入法输入,或者用组成这个陌生字的字根读音输入,比如 ukoukou 得到「吅」。

  1. 形码输入法,最著名的就是大陆的王码五笔和港台地区的仓颉输入法,前者有 86、98、新世纪三个版本,用 86 版人最多,王码五笔官方推荐新人学新世纪版本。 仓颉输入法主要是五代和六代两个版本,六代据说只给机构用户用,并没公开出来,所以用五代的最多。

这两个形码最大的好处是操作系统支持很好,开箱即用。五笔输入法难点在于有些字的字根拆分莫名其妙,仓颉则是拆字从笔画中间劈开,我个人觉得匪夷所思,需要很好的想象力。。。

五笔的同一个字的简体、繁体是同一个编码,所以不算简繁通打,仓颉不确定是不是这样。

另一个很著名的形码输入法是郑码输入法,以前 windows 里内置,后来好像去掉了。现在有个人做了个八千多单字的三码郑码,主推提高单字打字速度。

其它的都很小众了,比如山人全息码,字根根据其含义和形状分类,便于记忆(也并不是很容易就记住了),字库很大。 比如徐码,支持简繁通打,支持整句输入,主页说了很多优点。

  1. 音形输入法。 就是先输入拼音首字母,然后输入笔画或者字根编码。 也有形音输入法,在形码的编码上加上拼音首字母帮助去重,由于形码一般重码率比较低,所以这种好像比较少。

音形就很多了,著名的有小鹤音形,然后就是漫山遍野的二笔输入法,这个真是明珠埋尘了,非常可惜。二笔输入法很容易上手,个别字不知道读音也可以输入(不知道怎么读也不知道怎么写那就没辙了)。代表性的二笔输入法有超强二笔、超强快码(他家的超强音形据说并不推荐),小兔两笔,哲豆音形,星空两笔。

上面提到的星空两笔和星空键道都是支持顶功的,也就是说,输入后一个字的编码时,在无歧义的情况下前一个字自动上屏。

说了这么多,你习惯全拼没觉得不爽的话,那就没必要折腾了,有空折腾的话可以每个都看看,反正不是特复杂的东西。

3 个赞

我在用超强两笔。 单字没问题,就是词少了点。

拼音选字烦了,想学五笔,看了下脑袋都大了,真佩服那些学五笔的人。然后看到郑码,学习成本很低,不过重码率也太高了。后来看到二笔,规则简单容易学,不过开始的版本都是拆字很难(最后一笔有的字要想半天)。后来出了个超强二笔(后来改名超强两笔),这才解决了拆字麻烦的问题。现在就一直用着。

2 个赞

仓颉的拆法是把字看成画,跟书写笔画关系不大,经常会有不一致的情况,顺序也不一定一样,尤其是帯戈的。习惯就好了。

其实不仅是简繁,同一个字有不同的写法(字形,不是简繁)都可以用不同的编码,比如很多旧字形和现行的简繁体都不一样,比如繁体的绞丝旁糹和糸,都是女戈火,不同的字体看起来是不同的。比如简繁同字的角,有的字形里面是手,有的字形里面是土,所以弓月土和弓月手都是可以的。不过确实有的是同字,有的是不同字,还有中日韩的不同,不过这是 unicode 编码问题,不是仓颉本身的问题。

我现在特别喜欢旧字形,感觉等别好看,然后找了好多旧字形玩。

2 个赞

统计了下几个输入方案的词表大小,徐码(xuma)和山人全息码(sunman)最夸张,不知道怎么能整理出这么多字的编码来。。。哲哲豆音形(zzdyx)和星空两笔(xklb)第二三不相上下,闻名遐迩的超强两笔(cqlb)、超强快码(cqkm)、超强音形(cqyx) 第四,小兔两笔(xtlb) 第五。 // 实际 xklb.superdz 是 u拼音拆分,所以不太算正常编码。

三码郑码的单字只有八千多字。

词表              个数    词长
xuma              96434  1
xklb.superdz      87870  1
sunman.words      87655  1
zzdyx_mofast      24258  1
zzdyx_perfect     24258  1
cqlb              21469  1
cqkm              21467  1
cqyx              21463  1
xtlb              21208  1
xklb.danzi         8206  1
sunman.phrases1  108481  2
sunman.phrases2  108480  2
zzdyx_perfect     66843  2
xklb.cizu         61417  2
xuma              55422  2
zzdyx_mofast      53574  2
cqlb              51535  2
xtlb              49666  2
cqyx              49559  2
cqkm              46750  2
xklb.duochong2     1020  2
sunman.phrases1  115961  3
sunman.phrases2  115961  3
xklb.cizu         15540  3
zzdyx_perfect     15423  3
zzdyx_mofast      15399  3
cqlb              12393  3
cqyx              11807  3
xtlb              10453  3
cqkm               9899  3
xuma               9512  3
sunman.phrases1  118392  4
sunman.phrases2  118392  4
zzdyx_perfect     24600  4
zzdyx_mofast      23676  4
cqlb              21811  4
cqyx              21164  4
xklb.cizu         20478  4
cqkm              18660  4
xtlb              15967  4
xuma              13496  4
sunman.phrases1    9717  5
sunman.phrases2    9717  5
zzdyx_perfect      1216  5
zzdyx_mofast       1171  5
xklb.cizu          1095  5
1 个赞

单字码长比较,星空两笔的码长真是叼破天际。。。。

CJK
sunman.words   20970  3.47768
xuma           20989  3.46948
xklb.superdz   20971  7.037
zzdyx_perfect  20903  3.75315
zzdyx_mofast   20903  3.75267
cqlb           20902  3.82294
cqkm           20902  3.91168
cqyx           20902  3.8303
xtlb           20889  3.81909
xklb.danzi      8079  3.93997

CJK_Ext_A
sunman.words   6582  4.1217
xuma           6592  3.93325
xklb.superdz   6582  6.97129
zzdyx_perfect    71  4
zzdyx_mofast     71  4
cqlb             82  3.87805
cqkm             82  3.97561
cqyx             82  3.87805
xtlb             55  3.89091
xklb.danzi       78  4.75641

CJK_Ext_B
sunman.words   42711  5.29894
xuma           42718  3.96262
xklb.superdz   42711  7.02566
zzdyx_perfect      2  4
zzdyx_mofast       2  4
cqlb              17  3.82353
cqkm              17  4.05882
cqyx              17  3.82353
xklb.danzi        37  4.45946

CJK_Ext_C
sunman.words   4149  5.2215
xuma           4149  3.95879
xklb.superdz   4149  7.01784
cqlb             44  3.95455
cqkm             44  4.02273
cqyx             44  3.95455

CJK_Ext_D
sunman.words   222  4.95045
xuma           222  3.95946
xklb.superdz   222  7.13063
cqlb             8  4
cqkm             8  4
cqyx             8  4

CJK_Ext_E
sunman.words   5762  5.30458
xuma           5762  3.96772
xklb.superdz   5762  7.02083

CJK_Ext_F
xuma           7473  3.96414
xklb.superdz   7473  6.97524

CJK_Ext_G
sunman.words   4939  5.16704
xuma           4939  3.96457

统计脚本:

#!/usr/local/bin/fish
echo CJK
for f in sunman.words xuma xklb.superdz zzdyx_perfect zzdyx_mofast cqlb cqkm cqyx xtlb xklb.danzi; echo -ne "$f  "; perl -CSDA -lne 'BEGIN{ $a=$b=0} if ($ok) {@a=split; next unless @a > 1 && length($a[0]) == 1 && $a[0]=~ /\p{Block: CJK}/ && !exists $h{$a[0]}; $h{$a[0]}=1; $a+=length($a[1]); $b++;} elsif (/^\.\.\.\s*$/) { $ok=1} END { print $b, " ", $a/($b or 1)}' $f.dict.yaml; end | tabulate -f plain
echo

echo CJK_Ext_A
for f in sunman.words xuma xklb.superdz zzdyx_perfect zzdyx_mofast cqlb cqkm cqyx xtlb xklb.danzi; echo -ne "$f  "; perl -CSDA -lne 'BEGIN{ $a=$b=0} if ($ok) {@a=split; next unless @a > 1 && length($a[0]) == 1 && $a[0]=~ /\p{Block: CJK_Ext_A}/ && !exists $h{$a[0]}; $h{$a[0]}=1; $a+=length($a[1]); $b++;} elsif (/^\.\.\.\s*$/) { $ok=1} END { print $b, " ", $a/($b or 1)}' $f.dict.yaml; end | tabulate -f plain
echo

echo CJK_Ext_B
for f in sunman.words xuma xklb.superdz zzdyx_perfect zzdyx_mofast cqlb cqkm cqyx xtlb xklb.danzi; echo -ne "$f  "; perl -CSDA -lne 'BEGIN{ $a=$b=0} if ($ok) {@a=split; next unless @a > 1 && length($a[0]) == 1 && $a[0]=~ /\p{Block: CJK_Ext_B}/ && !exists $h{$a[0]}; $h{$a[0]}=1; $a+=length($a[1]); $b++;} elsif (/^\.\.\.\s*$/) { $ok=1} END { print $b, " ", $a/($b or 1)}' $f.dict.yaml; end | tabulate -f plain
echo

echo CJK_Ext_C
for f in sunman.words xuma xklb.superdz zzdyx_perfect zzdyx_mofast cqlb cqkm cqyx xtlb xklb.danzi; echo -ne "$f  "; perl -CSDA -lne 'BEGIN{ $a=$b=0} if ($ok) {@a=split; next unless @a > 1 && length($a[0]) == 1 && $a[0]=~ /\p{Block: CJK_Ext_C}/ && !exists $h{$a[0]}; $h{$a[0]}=1; $a+=length($a[1]); $b++;} elsif (/^\.\.\.\s*$/) { $ok=1} END { print $b, " ", $a/($b or 1)}' $f.dict.yaml; end | tabulate -f plain
echo

echo CJK_Ext_D
for f in sunman.words xuma xklb.superdz zzdyx_perfect zzdyx_mofast cqlb cqkm cqyx xtlb xklb.danzi; echo -ne "$f  "; perl -CSDA -lne 'BEGIN{ $a=$b=0} if ($ok) {@a=split; next unless @a > 1 && length($a[0]) == 1 && $a[0]=~ /\p{Block: CJK_Ext_D}/ && !exists $h{$a[0]}; $h{$a[0]}=1; $a+=length($a[1]); $b++;} elsif (/^\.\.\.\s*$/) { $ok=1} END { print $b, " ", $a/($b or 1)}' $f.dict.yaml; end | tabulate -f plain
echo

echo CJK_Ext_E
for f in sunman.words xuma xklb.superdz zzdyx_perfect zzdyx_mofast cqlb cqkm cqyx xtlb xklb.danzi; echo -ne "$f  "; perl -CSDA -lne 'BEGIN{ $a=$b=0} if ($ok) {@a=split; next unless @a > 1 && length($a[0]) == 1 && $a[0]=~ /\p{Block: CJK_Ext_E}/ && !exists $h{$a[0]}; $h{$a[0]}=1; $a+=length($a[1]); $b++;} elsif (/^\.\.\.\s*$/) { $ok=1} END { print $b, " ", $a/($b or 1)}' $f.dict.yaml; end | tabulate -f plain
echo

echo CJK_Ext_F
for f in sunman.words xuma xklb.superdz zzdyx_perfect zzdyx_mofast cqlb cqkm cqyx xtlb xklb.danzi; echo -ne "$f  "; perl -CSDA -lne 'BEGIN{ $a=$b=0} if ($ok) {@a=split; next unless @a > 1 && length($a[0]) == 1 && $a[0]=~ /\p{Block: CJK_Ext_F}/ && !exists $h{$a[0]}; $h{$a[0]}=1; $a+=length($a[1]); $b++;} elsif (/^\.\.\.\s*$/) { $ok=1} END { print $b, " ", $a/($b or 1)}' $f.dict.yaml; end | tabulate -f plain
echo

echo CJK_Ext_G
for f in sunman.words xuma xklb.superdz zzdyx_perfect zzdyx_mofast cqlb cqkm cqyx xtlb xklb.danzi; echo -ne "$f  "; perl -CSDA -lne 'BEGIN{ $a=$b=0} if ($ok) {@a=split; next unless @a > 1 && length($a[0]) == 1 && $a[0]=~ /\p{Block: CJK_Ext_G}/ && !exists $h{$a[0]}; $h{$a[0]}=1; $a+=length($a[1]); $b++;} elsif (/^\.\.\.\s*$/) { $ok=1} END { print $b, " ", $a/($b or 1)}' $f.dict.yaml; end | tabulate -f plain
echo
1 个赞

星空两笔单字我记得最长是6码,然后字频加权平均才 2.3-2.4 。字词类的在词库命中情况不错时才能到 2.2 的样子。

二笔以前宣称的是1.8。

不知道你说的是官方的宣传的还是自己统计的?

xklb.superdz 是 u拼音拆字,所以码长很大。xklb.danzi 那个才是正常的。

官方说 2.x 大概是 1500 常用字?

不可能 1.8 啊,连双拼不考虑重码都已经 2 了,二笔是声母 + 笔画,至少 2 起步,就算一简也是要空格上屏。

一些人统计的和我自己统计大概也在这个数。

算码长要算字频的权重的。顶功的优势就是在常用字的码长上优势非常大。

星空两笔单字的编码单拿出来看,一般的内容通常比五笔之类的输入法用键更少。

不算 xklb.superdz 这个拼音拆字的码表,星空两笔只有八千多单字,只比 GB2312 多了一千多,离 unicode cjk 基本区两万多差太远了。据说星空两笔原作者已经不维护了,是爱好者在维护。

码长的话,你说的有道理,上面都没按词频统计,只能算定性从另一个角度看了,徐码和山人全息码很不错,一堆两笔输入法大概半斤八两。

今天刚知道声笔系列,https://sbxlm.gitee.io/ ,据说是顶功之父,简单试了下,有新意,但不太喜欢,而且不提供明文码表,作者好像是想商业化。

星空两笔不用据说,的确现在靠社区,最变态的是一群大佬纷纷魔改出了自己的版本,你要是有兴趣进群,就会发现有各式各样的版本。

如果觉得字的编码不够,其实可以自己编,不过两万其实没这必要(按顶功的逻辑,你六码的重码字会翻页翻到失去信心),因为常用字没这么多。除非你的工作是跟这方面相关,那你得去找其他的输入法方案,不然你会很痛苦 :rofl:

话说,rime 就这好处,你可以切换方案,用其他方案输入生僻字…

1 个赞

哲豆群不需要认证我就加群成功了,其它的要么收费要么要密码要么要管理员批准,我一个都没进成……

既然学个比音码难的音形码,自然是希望单字覆盖够大了,而且重码率尽量低了,据说顶功天生缺陷搞不了大的单字表。

目前看了一圈下来,综合人气、自身质量,哲豆音形和超强快码两个二笔输入法最好,码长小,覆盖字符集大,易学易用。

主流的仓颉和五笔不打算看了,后起之秀徐码和山人全息码更佳,而如果只打常用汉字,八千单字的三码郑码很不错。

我没太注意过码表有多大,因为日常用都没问题。单字的输入法有啥好维护的,除了编码编错的情况。

所以说是宣称的嘛。

不过不算空格上屏,还是有可能的。一般两个字的词打三下就出来了。