专注于互联网--专注于架构

最新标签
网站地图
文章索引
Rss订阅

首页 »编程综合 » 数学之美系列二:数学的美系列 2十 3:输入一个汉字需要敲多少个键 — 谈谈香农第一定律 »正文

数学之美系列二:数学的美系列 2十 3:输入一个汉字需要敲多少个键 — 谈谈香农第一定律

来源: 发布时间:星期一, 2010年1月25日 浏览:0次 评论:0
  今天各种汉字输入法已经很成熟了随便挑出种主要输入法比十几年前最好输入法都要快、要准现在抛开具体输入法从理论上分析输入汉字到底能有多快

  我们假定常用汉字在 2级国标里面共有 6700 个作用汉字如果不考虑汉字频率分布用键盘上 26 个字母对汉字编码两个字母组合只能对 676 个汉字编码对 6700 个汉字编码需要用 3个字母组合即编码长度为 3当然聪明读者马上发现了我们可以对常见字用较短编码对不常见字用较长编码这样平均起来每个汉字编码长度可以缩短我们假定每个汉字频率是

  p1, p2, p3, ..., p6700

  它们编码长度是

  L1, L2, L3, ..., L6700

  那么平均编码长度是

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

  香农第定理指出:这个编码长度最小值是汉字信息熵也就是说任何输入方面不可能突破信息熵给定极限当然香农第定理是针对所有编码不但是汉字输入编码这里需要指出如果我们将输入法字库从 2级国标扩展到更大字库 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没有有效语言模型这种编码思路方法理论上讲有效实际上不实用原因有两个很难学;第 2从认知科学角度上讲心无 2用人们在没有稿子边想边写情况下不太可能在回忆每个词复杂编码同时又不中断思维我们过去在研究语言识别时做过很多用户测试发现使用各种复杂编码输入法人在脱稿打字时速度只有他在看稿打字时半到 4分的因此虽然每个字平均敲键次数少但是打键盘速度也慢了很多并不快这也就是为什么基于拼音简单输入法占统治地位原因事实上汉语全拼平均长度为 2.98只要基于拼音输入法能利用上下文彻底解决音多字问题平均每个汉字输入敲键次数应该在 3次左右每分钟输入 100 个字完全有可能达到

  另外个不容易达到信息论极限输入速度原因在于这个理论值是根据个很多语言模型计算出来在产品中我们不可能占有用户太多内存空间因此各种输入思路方法提供给用户个压缩很厉害语音模型而有输入思路方法为了减小内存占用根本没有语言模型拼音输入法好坏关键在准确而有效语言模型

  另方面由于现有输入思路方法离信息论给极限还有很大差距汉语输入思路方法可提升空间很大会有越来越好用输入思路方法不断涌现当然输入速度只是输入法项而不是唯衡量标准我们也会努力把谷歌输入法做越来越好大家不妨先试试现在版本http://tools.google.com/pinyin/半年后再看看我们有没有提高

0

相关文章

读者评论

发表评论

  • 昵称:
  • 内容: