[选股策略]数学之美系列 二十三-输入一个汉字需要敲多少个键 —-谈谈香农第一定律

今日各种汉字输入法现已很成熟了,随意挑出一种首要的输入法比十几年前最好的输入法都要快、要准。现在抛开详细的输入法,从理论上剖析一下,输入汉字究竟能有多快。

[选股策略]数学之美系列 二十三-输入一个汉字需要敲多少个键 —-谈谈香农第一定律

咱们假定常用的汉字在二级国标里边,一共有 6700 个效果的汉字。假如不考虑汉字频率的散布,用键盘上的 26 个字母对汉字编码,两个字母的组合只能对 676 个汉字编码,对 6700 个汉字编码需求用三个字母的组合,即编码长度为三。当然,聪明的读者立刻发现了咱们能够对常见的字用较短的编码对不常见的字用较长的编码,这样均匀起来每个汉字的编码长度能够缩短。咱们假定每一个汉字的频率是

p1, p2, p3, ..., p6700

它们编码的长度是

L1, L2, L3, ..., L6700

那么,均匀编码长度是

p1×L1 + p2×L2 + ... + p6700×L6700

香农榜首定理指出:这个编码的长度的最小值是汉字的信息熵,也便是说任何输入方面不或许打破信息熵给定的极限。当然,香农榜首定理是针对一切编码的,不可是汉字输入编码的。这儿需求指出的是,假如咱们将输入法的字库从二级国标扩展到更大的字库 GBK,因为后边不常见的字频率较短,均匀编码长度比针对国标的大不了多少。让咱们回想一下汉字的信息熵,

H = -p1 * log p1 - ... - p6700 log p6700。

咱们假如对每一个字进行计算,并且不考虑上下文相关性,大致能够估算出它的值在十比特以内,当然这取决于用什么语料库来做估量。假如咱们假定输入法只能用 26 个字母输入,那么每个字母能够代表 log26=

4.7 比特的信息,也便是说,输入一个汉字均匀需求敲 10/4.7= 2.1 次键。

聪明的读者或许一经发现,假如咱们把汉字组成词,再以词为单位计算信息熵,那么,每个汉字的均匀信息熵将会削减。这样,均匀输入一个字能够少敲零点几回键盘。不考虑词的上下文相关性,以词为单位计算,汉字的信息熵大约是8比特效果,也便是说,以词为单位输入一个汉字均匀只需求敲 8/4.7=1.7 次键。这便是现在一切输入法都是依据词输入的内涵原因。当然,假如咱们再考虑上下文的相关性,对汉语树立一个依据词的计算言语模型,咱们能够将每个汉字的信息熵降到 6 比特效果,这时,输入一个汉字只需敲 6/4.7=1.3 次键。假如一种输入办法能做到这一点,那么汉字的输入现已比英文快的多了。

可是,事实上没有一种输入办法挨近这个功率。这儿边首要有两个原因。首要,要挨近信息论给的这个极限,就要对汉字的词组依据其词频进行特别编码。事实上像王码这类的输入办法便是这么做到,只不过它们榜首没有对词组一致编码,第二没有有用的言语模型。这种编码办法理论上讲有用,实际上不实用。原因有两个,榜首,很难学;第二,从认知科学的角度上讲,人一心无二用,人们在没有稿子边想边写的情况下不太或许在回想每个词杂乱的编码的一起又不中止思想。咱们曩昔在研讨言语辨认时做过许多用户测验,发现运用各种杂乱编码输入法的人在脱稿打字时的速度只需他在看稿打字时的一半到四分之一。因而,尽管每个字均匀敲键次数少,可是打键盘的速度也慢了许多,总的并不快。这也便是为什么依据拼音的简略输入法占控制位置的原因。事实上,汉语全拼的均匀长度为 2.98,只需依据拼音的输入法能使用上下文彻底解决一音多字的问题,均匀每个汉字输入的敲键次数应该在三次左右,每分钟输入 100 个字彻底有或许到达。

别的一个不容易到达信息论极限的输入速度的原因在于,这个理论值是依据一个许多的言语模型计算出来的。在产品中,咱们不或许占有用户太多的内存空间,因而各种输入办法提供给用户的是一个紧缩的很厉害的语音模型,而有的输入办法为了减小内存占用,底子没有言语模型。拼音输入法的好坏要害在精确而有用的言语模型。

另一方面,因为现有输入办法离信息论给的极限还有很大的距离,汉语输入办法可提高的空间很大,会有越来越好用的输入办法不断涌现。当然,输入速度仅仅输入法的一项而不是仅有的衡量标准。咱们也会尽力把谷歌的输入法做的越来越好。
金融工程, 数学算法
发布于 2024-02-03 02:02:00
收藏
分享
海报
1
目录