信息论汉字熵
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
对于信息论的认识
二十世纪四十年代末C E SHANNON建立了一套计算信息数量的方法。我们可以根据事情发生概率的大小,用下式计算信息量 I :
I=-log2P (1)
式中P是收到的消息中所指的事件的概率。信息量的单位简称‘比特’bit(它来自英语binary的 b和 digit的it,笔者注) 。有了(1)式,我们就可以对信息进行定量计算。
例如,通常中文电报是四位阿拉伯数字。假定每个阿拉伯数字出现的可能性是相同的,即每个数字出现的概率为十分之一。那么我们可以计算出收到每个阿拉伯数字所含的信息量为I=-log21/10=3.3比特,因而每个汉字是4×3.3=13.2比特。
下面我们计算一封10000个字母的英文信所含的信息量。假定每个字母都以等可能性出现,英文字母共26个,把空白也算作一个字母,那么共有27个字母。于是每个字母出现的概率为1/27。每个字母的信息量均为-log21/27=4.76比特。拿27个字母来平均,得到的结果也是4.76比特。一万个字母共有47600比特的信息量。如果考虑各个字母出现的概率不相同,那么每个字母的平均信息量为
I=-ΣP i logP i (2)
根据统计结果,英文字母的出现概率如下表所示:
把它们代入(2)式可以算出每个字母的平均信息量为4.03比特。由此可见,字母的出现概率愈均匀,信息量愈大,反之就愈小。在极端情况下,假设27个字母中有26个出现的概率为零,一个字母出现的概率为1,则信息量为零。
从上述的例子可以看到,字母以等概率出现时,每个字母所含的信息量最大。要传输同样的信息量,字母以等概率出现时所需的长度(即字母个数)最短。从传输信息量的角度来看,这是最理想的情况。因为可以用最少的字母传递最多的信息量。
然而,实际的语言或文字总是达不到上述的极限。就是说,传输同样的信息量需要较多的字母,具有一定的多余性。从信息量的角度来看,这似乎是不利的。但是,我们将会看到,由有了多余性,使人类的语言或文字具有一定的抗干扰能力。有
时候,我们甚至人为地加入一些多余性以换取较强的抗干扰能力。所谓抗干扰编码就是这样做的。
英文的多余性,不但表现在字母出现的概率不相等,而且还表现在字母前后之间有一定的相关性。例如,前一个字母是T,跟着的字母是H的可能性就比较大。T后面跟着Q几乎是不可能的。同样,IN后面是G的可能性较大,而后面是Y的可能性较小。如果考虑英文中的两个字母、三个字母或多个字母同时出现的概率,那么英文的多余性更大,也就是每个字母平均含的信息量更少。SHANNON用实验方法测定了英文句子里每个字母所含的信息量约为1.9比特左右。比起字母等概率的情况(4.76比特),常用英语的多余性是很大的。
SHANNON的实验是先写一个英文句子,包括空白在内共103个字母。找一个人来猜这个句子。从第一个字母猜起,直到把整个句子猜出来为止。把对每个字母猜测的次数记录下来。整个句子总共要猜198次。把猜测次数除以字母数就得到每个字母的信息量为1.94。用不同的实验方法测定英文字母所含的信息量,发现出入不大,都是1.9比特左右。
信息论将无始无终的信息理出了头绪,有一点像笛卡尔为无限的空间设立了坐标。将信息量定义为I=-log2P是因为在计算信息的时候需要将每个个体信息与整体信息同时对比、考虑,P已经将个体与整体联系在一起了。
所谓的信息量并不是真正代表信息的数量,而是各个符号
之间相互区别的能力。也可以认为是将整个人类的知识划分成多少份的一个指标。
汉字熵
熵,是物理名字,在信息论里则叫信息量。从控制论的角度来看,应叫不确定性。当我们不知道某事物具体状态,却知道它有几种可能性时,显然,可能性种类愈多,不确定性愈大。不确定性愈大的事物,我们最后确定了、知道了,这就是说我们从中得到了愈多的信息,也就是信息量大。所以,熵、不确定性、信息量,这三者是同一个数值。
事情好像很简单,其实不然。试考虑还没有发明数字的远古人,他用刻画来记数,用刻n画的方法记数目n。10以内的数平均每个数要刻(1+10)/2=5.5画,每画的平均信息量是3.32/5.5=0.604,而100以内的数平均每个数(1+100)/2=50.5画,每画的平均信息量只有6.64/50. 5=0.132。因为古人刻的每一画是没有次序或位置的区别的,所以每一画的信息量随画的数量增加而快速减小。次序或位置非常重要,罗马字和我国古代的数码,也是短画,但要讲究位置组合,每画所含的信息量就大大提高了。我们讨论的文字信号,都是有次序的。
英文有26个字母,每个字母的信息量H=㏒(26)/㏒(2)=4.700。汉字个数不定,算1000个时等于3*3.32=9.96,算作一万、十万时则分别为13.28、16.60。我们是否能随意增加大量一辈子也用不到的汉字,来无限地增加每个汉字的信息量?
按这个公式计算汉字的信息量时,汉字的平均信息量在字数达到1000时很快增至9.00,字数达到5000时就达到9.65,以后几乎不再增加。学者冯志伟有一个“汉字容量极限定律”,认为字数达到12366后,信息量不再增加。以下是各种语言的字母的平均信息量:
法文 3.98比特
意大利文 4.00比特
西班牙文 4.01比特
英文 4.03比特
德文 4.10比特
罗马尼亚文 4.12比特
俄文 4.35比特
中文9.65比特
有人用小样本统计数据,计算得英文的信息量是4.16。这个数值稍大些,是因加了一个特殊字符“空格”,㏒(27)=4.755就比㏒(26)大0.055。可见平均信息量是很稳定的。
多余度
由上可知,有n个符号的文字,每个字符最大的信息量(最大熵)H0=㏒(n)(即-㏒(1/n)),当概率不相等时,其平均信息量(平均熵)H=-∑p i㏒(p i)总小于最大信息量H0。例如英文的最大信息量等于4.7,就要用5个二进制数码来编码和传