对几种音形码重码率的统计
Saturday, 8. December 2007, 14:27:35
今天看到有人在拼音加加的论坛上发帖推荐自己的辅助码,其中说到“**辅助码的单字重码组为500组,小鹤双拼的单字重码组为900左右,酷极晚风的重码组为485,其它如搜狗的重码组较多,无法统计”。因为晚风和小鹤我都使用过,使用感觉和帖子里所说的结果有出入(leybyr也说过小鹤的单字重码率和晚风的应该是差不多的),我就自己统计了一下,结果还是很有意思的。以下统计都是用Excel做的。
先统计单字重码:
晚风
全码单字共 7747字
二字及以上重码 440组
三字重码 34 组
重码的次数 474次
单字重码率 6.12%
鹤形自然双拼版
全码单字共 7394字
二字及以上重码 433组
三字及以上重码 34组
四字重码 3组
重码的次数 470次
单字重码率 6.36%
自然风(1)
单字共 7816字
二字重码 1362组
重码的次数 1362次
单字重码率 17.43%
自然风(2)
单字共 8911字次
二字及以上重码 720组
三字及以上重码 44组
四字重码 15组
重码的次数 779次
单字重码率 8.74%
注:
单字重码率=(总字数-单字全码中互不相同的编码数)/总字数,如:12=a、12=b、12=c、34=d、56=e,则总字数是5,互不相同的编码为3种,重码率=(5-3)/5;
全码指四码;
“二字及以上”指同一编码下至少含有两个单字,其它类推;
如果同一编码下有N个字,则记N-1次“重码的次数”,同一汉字不重复计算;
晚风没有三字以上的重码,鹤形最多四字,晚风统计时只考虑全码,未包括一二级简码单字;
鹤形码表音码部分所用为自然双拼,但鹤双拼的结果和这个结果相差无几;
自然风编码并不是每个字都有确切的全码,所以按两种编码方式统计;
自然风(1)编码方式按照“三码有该字则四码不编码该字”进行。故没有重复编码的字,同一编码下也没有二字以上的重码。
自然风(2)有重复编码的情况,故用“字次”来代替字数。这种方法所用编码条数(指不重复的编码条数)增加,降低了重码率,但同一编码下可能有三、四字的重码。
结果显示,leybyr说得对,单字重码率晚风和鹤形编码是差不多的,晚风相比自然风是提高了很多,且最大的进步是编码更规整了,所有单字都有确定的全码。
晚风还有一个特点没能在统计中体现出来,那就是晚风的一二级简码(打一到两个音码,再用“,;/.”四个符号做笔画码上屏,也可以用全码的前三码加一个笔画码上屏),如果把固定的常用字专门用简码输入去除产生重码的全码,晚风的单字重码率完全可能降为0。但这样做就需要增加一定的记忆量了。
仅仅降低单字的重码率还是不够的,我们实际输入的时候不可能完全使用单字,而是以二三四字词为主。这些音形码的二字纯音码和单字全码存在很多重码的情况,于是我又统计了一下它们的编码重码率。
晚风
统计编码共 85074条
两项以上重码 4039组
三项以上重码 404组
四项重码 36组
有重码的编码 4039条
编码重码率 4.75%
鹤形自然双拼版
统计编码共 75039条
两项及以上重码 15150组
三项及以上重码 2756组
四项及以上重码 670组
五项及以上重码 212组
有重码的编码 15150条
编码重码率 20.19%
鹤双拼版
统计编码共 69504条
两项及以上重码 7182组
三项重码 7组
有重码的编码 7182条
编码重码率 10.33%
自然风
统计编码共 103043条
两项及以上重码 11849组
三项及以上重码 1185组
四项及以上重码 576组
五项及以上重码 399组
有重码的编码 11849条
编码重码率 11.50%
注:
编码重码率=需要键选的编码(该编码下出现一个以上的候选项目)数/总编码数
“两项及以上重码”指同一编码下至少有两个键选项目,其它类推;
“有重码的编码”指同一编码下含有一个以上的键选项目,不包括一个。
晚风编码同一编码下最多只有四个键选项目,鹤形七个,自然风十个;
晚风编码的统计包括一二级简码单字;
各个输入法所用词库不同,但基本上是7-10万的常用词库,绝大多数为二、三、四字词(包含单字),编码绝大部分控制在4码以内,晚风部分词有准第五码,即符号笔画码。鹤形自然双拼版的码表未做优化,其它码表都是经过优化的。
这个统计和词汇及词汇辅码的实现方式有很大关系,不同的统计方法对结果的影响可能会很大。
词重码可以通过编码重码反映出来。不过这个重码率受到很多方面的影响,不仅仅是编码规则的效率,所选词汇、码表的优化等等关系都很大,鹤形自然双拼版高达20%的重码率并不是真实反映,因为这里面有很多非词、低频字、三字词三码简拼等,码表优化之后,粗略估计,重码率能够下降到10%-15%之间,还有很多是纯音码,进一步优化码表就很难估计。所以我又统计了鹤双拼的码表,这个码表声码部分是鹤双拼方案,码表是经过优化的,编码重码率就降到了10%,而且三项重码的仅有7组,剩下的重码全部是两项,这样的码表即便有重码,键选效率也应该是非常高的。
相比之下,自然风键选的项目就偏多了,如果按照类似算单字重码率的方法来算,都不做优化的情况下,自然风的重码率应该会高于鹤形自然双拼版。表中的反映不明显,如果做一个曲线就看得出来,鹤形自然双拼版的键选项目数主要集中在三个以内,曲线从4开始陡降,而自然风4-7的曲线随项目数增多并没有明显降低。
酷极晚风的编码效率真是强到“不像话”,编码重码率还不到5%,很大程度上得益于词编码规则中的“笔画简码”,就是用词的末字首笔所代表的笔画码(“,;/.”四个符号)来上屏,比如“好使=hkui/”,这样二字词的编码就丰富了,重码率就大大降低了。严格来讲,统计的时候把笔画码完全按照一位编码来对待,这对其它编码是不公平的,笔画码实际上也是一种键选方式,只是这种键选一般不用看屏幕。
如果鹤形采用五码输入二字词重码也会大大降低,但是效率还是不如晚风的这种方式,因为笔画码是做“上屏键”而并不等同于增加一位编码,如果你了解拼音加加的“三重码”技术应该更容易理解这个“上屏键”的意义。不得不说,晚风的这种符号笔画码的设计非常强。
综合起来看,三种编码中最适合“盲打(不键选)”的编码当然是晚风。但日常输入的效率就不好说了,以上的三种编码都很优秀,自然风虽然重码略高,特别是单字能力不够强,但它的编码规则最简单,拆字速度是最快的,最大的缺点也是由于规则简单而带来的全码不确定性。如果仅仅做间接辅助码,它的效率也很好。
晚风和鹤形的编码规则都比较严谨且看起来有些象,都是首尾取码,他们很多部件的编码也相同,但他们的拆字理念其实有蛮大的差异,举个例:豫,晚风的编码为“yuyx”,形码拆成“予”和“象”,鹤形双拼版的编码为“yusn”,首尾形码为“”和“捺”。看得出,晚风和自然风还是更接近的,而鹤形的规则简单地说就是首尾取小字,先看取到的部件是否独体字,是就取,如果不是,看是否部首,如果都不是,则取笔划。拆多了就会发现,虽然晚风的方式更容易学习,但鹤形的方式其实更规整。再看一个字体会一下:森,晚风取部件为“木”和“林”,鹤形取部件为“木”和“木”。意会一下(*^__^*)。如果要提高单字的输入效率,晚风把记忆量放在了简码上,这样做可以减少重码。而鹤形把记忆量放在了独体字上,这样可以提高拆字速度。哪种方式适合自己,这可能就见仁见智了,从我的体会来看,如果不是为了盲打,拆字速度的提高可能会更有帮助,这也是我最终选择鹤形的原因。
还有一点需要说的就是这个编码重码的统计,参考价值是有限的,在同为音形码之间比较比较还可以,和全拼比较就不合适了。实际上用类似的统计方法,纯拼音输入法选择常用的6、7万词,重码率甚至可以低到15%-10%(不包含单字),因为相同编码下可能有很多重码,但大多数时候你只会用其中的一两个,把不常用的去掉,剩下的重码率就很低了。但这样的方法用在提高纯拼音输入法盲打正确率上并不合适,因为这样一来,次常用和不常用的词就只能用单字输入,而纯拼音单字常用7000字的重码率高达95%(如果加上罕用字,重码率就是100%,翻翻新华字典就知道,有几个读音下只有一个字的)。
要提高纯拼音输入法的“盲打(不键选)”正确率,更好的途径应该是优化词序和加强上下文联系(智能组词、整句智能性等等),而增强上下文联系就需要更大的语料库和更全的词库,这样一来,重码率就难以低下来了。事实上,音形码无重码的部分可以100%正确,有重码的部分也可能做到很高的不键选正确率,而单字的重码率更是大大低于纯拼音输入法,这使得音形码比纯拼音输入法更适合“看打”。日常使用中我们更多用的是“想打”和“听打”,并不要求重码率有多低,所以完全用音形码输入看来意义也不大,大部分音码输入的过程中,通过形码辅助来提高键选的效率这就很好了。
以我的看法,字词输入法的发展方向是添加提高键选效率的辅助方式和低重码的单字输入方法,而纯拼音输入难免会向整句智能的方向发展(或者其它智能方式,但目前通过上下文联系的整句智能是一个比较好的方式)。目前,加形辅助输入方式的字词输入法发展得更好,准确率可以明显高于纯拼音智能输入方式,而纯拼音智能方式(整句智能输入法为代表)最大的好处就是不用额外的学习,准确率也够用。整句智能输入法虽然也能用字词的方式输入,但目前这两种发展方向是分化了的。就像前面说到的,整句智能的发展牺牲了低重码率的追求,它主要通过智能来降低键选次数从而弥补高重码率带来的问题,而字词方式需要在一定程度上降低重码率来提高键选效率。简单说,他们提高输入效率的方法,一个是降低键选的次数,一个是缩短每次键选的时间。虽然字词方式也可以加强智能性,整句智能方式也可以强加字词模式,但现在还没有找到很好的方法把这两种发展方向整合到一起。
附:
晚风全码单字.txt
先统计单字重码:
晚风
全码单字共 7747字
二字及以上重码 440组
三字重码 34 组
重码的次数 474次
单字重码率 6.12%
鹤形自然双拼版
全码单字共 7394字
二字及以上重码 433组
三字及以上重码 34组
四字重码 3组
重码的次数 470次
单字重码率 6.36%
自然风(1)
单字共 7816字
二字重码 1362组
重码的次数 1362次
单字重码率 17.43%
自然风(2)
单字共 8911字次
二字及以上重码 720组
三字及以上重码 44组
四字重码 15组
重码的次数 779次
单字重码率 8.74%
注:
单字重码率=(总字数-单字全码中互不相同的编码数)/总字数,如:12=a、12=b、12=c、34=d、56=e,则总字数是5,互不相同的编码为3种,重码率=(5-3)/5;
全码指四码;
“二字及以上”指同一编码下至少含有两个单字,其它类推;
如果同一编码下有N个字,则记N-1次“重码的次数”,同一汉字不重复计算;
晚风没有三字以上的重码,鹤形最多四字,晚风统计时只考虑全码,未包括一二级简码单字;
鹤形码表音码部分所用为自然双拼,但鹤双拼的结果和这个结果相差无几;
自然风编码并不是每个字都有确切的全码,所以按两种编码方式统计;
自然风(1)编码方式按照“三码有该字则四码不编码该字”进行。故没有重复编码的字,同一编码下也没有二字以上的重码。
自然风(2)有重复编码的情况,故用“字次”来代替字数。这种方法所用编码条数(指不重复的编码条数)增加,降低了重码率,但同一编码下可能有三、四字的重码。
结果显示,leybyr说得对,单字重码率晚风和鹤形编码是差不多的,晚风相比自然风是提高了很多,且最大的进步是编码更规整了,所有单字都有确定的全码。
晚风还有一个特点没能在统计中体现出来,那就是晚风的一二级简码(打一到两个音码,再用“,;/.”四个符号做笔画码上屏,也可以用全码的前三码加一个笔画码上屏),如果把固定的常用字专门用简码输入去除产生重码的全码,晚风的单字重码率完全可能降为0。但这样做就需要增加一定的记忆量了。
仅仅降低单字的重码率还是不够的,我们实际输入的时候不可能完全使用单字,而是以二三四字词为主。这些音形码的二字纯音码和单字全码存在很多重码的情况,于是我又统计了一下它们的编码重码率。
晚风
统计编码共 85074条
两项以上重码 4039组
三项以上重码 404组
四项重码 36组
有重码的编码 4039条
编码重码率 4.75%
鹤形自然双拼版
统计编码共 75039条
两项及以上重码 15150组
三项及以上重码 2756组
四项及以上重码 670组
五项及以上重码 212组
有重码的编码 15150条
编码重码率 20.19%
鹤双拼版
统计编码共 69504条
两项及以上重码 7182组
三项重码 7组
有重码的编码 7182条
编码重码率 10.33%
自然风
统计编码共 103043条
两项及以上重码 11849组
三项及以上重码 1185组
四项及以上重码 576组
五项及以上重码 399组
有重码的编码 11849条
编码重码率 11.50%
注:
编码重码率=需要键选的编码(该编码下出现一个以上的候选项目)数/总编码数
“两项及以上重码”指同一编码下至少有两个键选项目,其它类推;
“有重码的编码”指同一编码下含有一个以上的键选项目,不包括一个。
晚风编码同一编码下最多只有四个键选项目,鹤形七个,自然风十个;
晚风编码的统计包括一二级简码单字;
各个输入法所用词库不同,但基本上是7-10万的常用词库,绝大多数为二、三、四字词(包含单字),编码绝大部分控制在4码以内,晚风部分词有准第五码,即符号笔画码。鹤形自然双拼版的码表未做优化,其它码表都是经过优化的。
这个统计和词汇及词汇辅码的实现方式有很大关系,不同的统计方法对结果的影响可能会很大。
词重码可以通过编码重码反映出来。不过这个重码率受到很多方面的影响,不仅仅是编码规则的效率,所选词汇、码表的优化等等关系都很大,鹤形自然双拼版高达20%的重码率并不是真实反映,因为这里面有很多非词、低频字、三字词三码简拼等,码表优化之后,粗略估计,重码率能够下降到10%-15%之间,还有很多是纯音码,进一步优化码表就很难估计。所以我又统计了鹤双拼的码表,这个码表声码部分是鹤双拼方案,码表是经过优化的,编码重码率就降到了10%,而且三项重码的仅有7组,剩下的重码全部是两项,这样的码表即便有重码,键选效率也应该是非常高的。
相比之下,自然风键选的项目就偏多了,如果按照类似算单字重码率的方法来算,都不做优化的情况下,自然风的重码率应该会高于鹤形自然双拼版。表中的反映不明显,如果做一个曲线就看得出来,鹤形自然双拼版的键选项目数主要集中在三个以内,曲线从4开始陡降,而自然风4-7的曲线随项目数增多并没有明显降低。
酷极晚风的编码效率真是强到“不像话”,编码重码率还不到5%,很大程度上得益于词编码规则中的“笔画简码”,就是用词的末字首笔所代表的笔画码(“,;/.”四个符号)来上屏,比如“好使=hkui/”,这样二字词的编码就丰富了,重码率就大大降低了。严格来讲,统计的时候把笔画码完全按照一位编码来对待,这对其它编码是不公平的,笔画码实际上也是一种键选方式,只是这种键选一般不用看屏幕。
如果鹤形采用五码输入二字词重码也会大大降低,但是效率还是不如晚风的这种方式,因为笔画码是做“上屏键”而并不等同于增加一位编码,如果你了解拼音加加的“三重码”技术应该更容易理解这个“上屏键”的意义。不得不说,晚风的这种符号笔画码的设计非常强。
综合起来看,三种编码中最适合“盲打(不键选)”的编码当然是晚风。但日常输入的效率就不好说了,以上的三种编码都很优秀,自然风虽然重码略高,特别是单字能力不够强,但它的编码规则最简单,拆字速度是最快的,最大的缺点也是由于规则简单而带来的全码不确定性。如果仅仅做间接辅助码,它的效率也很好。
晚风和鹤形的编码规则都比较严谨且看起来有些象,都是首尾取码,他们很多部件的编码也相同,但他们的拆字理念其实有蛮大的差异,举个例:豫,晚风的编码为“yuyx”,形码拆成“予”和“象”,鹤形双拼版的编码为“yusn”,首尾形码为“”和“捺”。看得出,晚风和自然风还是更接近的,而鹤形的规则简单地说就是首尾取小字,先看取到的部件是否独体字,是就取,如果不是,看是否部首,如果都不是,则取笔划。拆多了就会发现,虽然晚风的方式更容易学习,但鹤形的方式其实更规整。再看一个字体会一下:森,晚风取部件为“木”和“林”,鹤形取部件为“木”和“木”。意会一下(*^__^*)。如果要提高单字的输入效率,晚风把记忆量放在了简码上,这样做可以减少重码。而鹤形把记忆量放在了独体字上,这样可以提高拆字速度。哪种方式适合自己,这可能就见仁见智了,从我的体会来看,如果不是为了盲打,拆字速度的提高可能会更有帮助,这也是我最终选择鹤形的原因。
还有一点需要说的就是这个编码重码的统计,参考价值是有限的,在同为音形码之间比较比较还可以,和全拼比较就不合适了。实际上用类似的统计方法,纯拼音输入法选择常用的6、7万词,重码率甚至可以低到15%-10%(不包含单字),因为相同编码下可能有很多重码,但大多数时候你只会用其中的一两个,把不常用的去掉,剩下的重码率就很低了。但这样的方法用在提高纯拼音输入法盲打正确率上并不合适,因为这样一来,次常用和不常用的词就只能用单字输入,而纯拼音单字常用7000字的重码率高达95%(如果加上罕用字,重码率就是100%,翻翻新华字典就知道,有几个读音下只有一个字的)。
要提高纯拼音输入法的“盲打(不键选)”正确率,更好的途径应该是优化词序和加强上下文联系(智能组词、整句智能性等等),而增强上下文联系就需要更大的语料库和更全的词库,这样一来,重码率就难以低下来了。事实上,音形码无重码的部分可以100%正确,有重码的部分也可能做到很高的不键选正确率,而单字的重码率更是大大低于纯拼音输入法,这使得音形码比纯拼音输入法更适合“看打”。日常使用中我们更多用的是“想打”和“听打”,并不要求重码率有多低,所以完全用音形码输入看来意义也不大,大部分音码输入的过程中,通过形码辅助来提高键选的效率这就很好了。
以我的看法,字词输入法的发展方向是添加提高键选效率的辅助方式和低重码的单字输入方法,而纯拼音输入难免会向整句智能的方向发展(或者其它智能方式,但目前通过上下文联系的整句智能是一个比较好的方式)。目前,加形辅助输入方式的字词输入法发展得更好,准确率可以明显高于纯拼音智能输入方式,而纯拼音智能方式(整句智能输入法为代表)最大的好处就是不用额外的学习,准确率也够用。整句智能输入法虽然也能用字词的方式输入,但目前这两种发展方向是分化了的。就像前面说到的,整句智能的发展牺牲了低重码率的追求,它主要通过智能来降低键选次数从而弥补高重码率带来的问题,而字词方式需要在一定程度上降低重码率来提高键选效率。简单说,他们提高输入效率的方法,一个是降低键选的次数,一个是缩短每次键选的时间。虽然字词方式也可以加强智能性,整句智能方式也可以强加字词模式,但现在还没有找到很好的方法把这两种发展方向整合到一起。
附:








no.id # 18. December 2007, 03:33
yumumao # 18. December 2007, 09:06