汉字为何不能用笔画编码--信息论系列

来源:互联网 发布:nginx配置参数详解 编辑:程序博客网 时间:2024/04/20 02:51

        汉字的信息熵很大几乎成了汉字不能在信息高速公路上像英语一样驰骋的绊脚石,就好像高速公路总是不关照巨型车一样,巨型车总是被限速,缴纳更高的费用等所牵绊,英语就好像一辆保时捷911,而汉语就好像一辆巨型重卡,更为不幸的是,它们还是跑在中国的高速公路上。其实我们都会注意到,汉字信息熵确实很大,一方面汉字携带的信息量比英语大得多,我们的汉字总是不同的读法不同的语气代表不同的含义,但是这并不是造成汉字在编码中被冷落的原因,它被冷落的原因在于它的字形。

        汉字是方块的,遵循从上到下从左到右的顺序,它是一个二维的平面结构,在水平和垂直两个方向延展,不像英语是个水平的线性结构,汉字拥有独特的间架结构,比如左右结构,上中下结构等等,而英语却没有,英语总是在水平方向简单的延伸,这个区别导致汉字更加紧凑,一个方块的空间可以集合很多的语义,不过这也是汉字不能被简单编码的根本原因,我们知道英语中最基本的元素是字母,一共26个字母,编码中可以对这26个字母分别编码,然后编码的组合就代表了字母的组合,除了字母的编码之外英语编码以及在计算机内部实现没有任何额外的问题,它没有位置问题,因为一维结构而且从左向右延展会使得编码默认按照这个约定排列,现在我们来看一下汉字的情况,汉字最基本的元素是笔画,笔画的数量不会多于英语的字母,如果就到此为止,那么我们按照笔画来编码的话,汉字的信息熵不会很高,而且比英语还低,恰恰就是在这里汉字在现代计算机编码系统里出了问题,汉字是二维的,增加了一个纬度,这样就增加了两个自由度,而信息的定义就是消除不确定性,自由度增加等于增加了不确定性,按照热力学解释,自由度增加带来了熵增加,在信息论中,信息获得就是自由度的减少,就是一种负熵,也就是说,信息熵表示主体付出的努力,由此可见除了笔画编码问题,汉字中还有一个英语中没有的问题就是间架结构问题,也就是说谁也不能默认汉字笔画的排列顺序,并且笔画的长短不同就会出现不同的字,笔画的不同书写顺序也会成为不同的字,比如“土”和“士”以及“干”,这些规则谁来定义,汉字基本反映了我们人类特有的思维过程,当代的计算机根本办不到这些,因此笔画编码不单单是将笔画简单编码就拉倒了,还有一系列的组合规则,结构规则以及排列规则,这些规则太复杂了,计算机根本无法完成这些任务的计算,因此汉字只能单个字编码,这里就出现了问题,汉字总量虽然不多,但是完全要参加编码,这就比英语的26个元素多得多了,因此汉字的信息熵非常大。随着新的汉字引入,其信息熵还会更大。

        前面说过,汉字是方块的形状,二维的延伸结构使得它更紧凑,相同的空间可以代表更多的含义,举个例子,英语中的两个单词只有两种排列方式,而汉字却有四种方式,回忆前面说的二进制理论就会发现汉字的信息熵确实很大。有个问题现在可以说一下了,汉字组合成的词语一般都很短,而且总是可以用已有的汉字组合来描述新词,而英语就不同了,如果英语也用现有的单词组成新词,那么它的二维结构会使单词越来越长,因此英语往往用发明新词的方式来进行扩展,比如,牛,奶牛,母牛,公牛,野牛,在汉字中都有牛字,分别加上一些个性的东西成为另一个概念,而在英语中这些词却是几乎不相关的单词,这就引出了本文的另一个问题,就是汉字与面向对象。

        汉字怎么会和面向对象联系呢?在详述之前我们来做一个类比,汉字相当于面向对象的语言,而英语相当于汇编语言,汇编语言的基本元素就是cpu指令,必须过程化执行,顶多用个jmp或者call,而面向对象语言写的代码中却呈现了继承,包含,等多维结构,看看c++的菱形继承就知道了,即便没有那种不提倡的菱形,在OO设计图上,也会充斥着很多的类图,这些类错综复杂相联系,最终这个类图就是代码本身,而汇编语言设计程序时主要用流程图来进行,纯粹的先来后到的过程化处理。我们看一下上面的“牛”的例子,牛可以作为基类,然后奶牛,母牛作为牛的派生类,拥有了自己的特征,看看是不是都有“牛”这个字,在一篇文章中看到一句话“共性上加个性就是新概念;组合性非常强;”,这句话非常形象,也非常好。汉字基本是人类思维的真实反映,因此你就别指望计算机一台机器可以模拟这种真实反应,想想机器可以直接执行“类的方法”吗?机器执行的过程就好像英语的过程,很精确但是却很呆板,信息熵低的目的在于容易识别,热消耗低而不是别的什么。


http://blog.csdn.net/dog250/article/details/5303478

原创粉丝点击