Уфа-2013
Кафедра статистической радиофизики и связи
Цель работы: изучение методов численных расчётов энтропии и избыточности дискретных сообщений, одномерной функции распределения вероятности символов и двумерной функции распределения вероятности сочетания символов в тестовой информации.
Текст программы № 1 для исследования одномерной функции распределения и энтропии текстовой информации uses graph,crt; const K=33; abc: string[K] ='АБВГДЕ`ЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯ'; var i,j,gd,gm,n,X0,Xm,Y0,Ym,xx,yy: integer; ttt: string[200]; ch: char; Max: longint; c,ss,En,Enm,P: real; txt: text; dd: array[0..256] of longint; begin clrscr; For i:=1 to K do dd[i]:=0; Write('Enter File Name? '); Readln(ttt); assign(txt,ttt); Reset(txt); j:=0; repeat read(txt,ch); write(ch); case ch of 'А','а': inc(dd[1]); 'Б','б': inc(dd[2]); 'В','в': inc(dd[3]); 'Г','г': inc(dd[4]); 'Д','д': inc(dd[5]); 'Е','е': inc(dd[6]); '~','`': inc(dd[7]); 'Ж','ж': inc(dd[8]); 'З','з': inc(dd[9]); 'И','и': inc(dd[10]); 'Й','й': inc(dd[11]); 'К','к': inc(dd[12]); 'Л','л': inc(dd[13]); 'М','м': inc(dd[14]); 'Н','н': inc(dd[15]); 'О','о': inc(dd[16]); 'П','п': inc(dd[17]); 'Р','р': inc(dd[18]); 'С','с': inc(dd[19]); 'Т','т': inc(dd[20]); 'У','у': inc(dd[21]); 'Ф','ф': inc(dd[22]); 'Х','х': inc(dd[23]); 'Ц','ц': inc(dd[24]); 'Ч','ч': inc(dd[25]); 'Ш','ш': inc(dd[26]); 'Щ','щ': inc(dd[27]); 'Ъ','ъ': inc(dd[28]); 'Ы','ы': inc(dd[29]); 'Ь','ь': inc(dd[30]); 'Э','э': inc(dd[31]); 'Ю','ю': inc(dd[32]); 'Я','я': inc(dd[33]); end; if ord(ch)>14 then inc(j); until Eof(txt); N:=j; readln; Max:=1; For i:=1 to K do if Max<dd[i] then Max:=dd[i]; {================= Distribution ================} X0:=5;Xm:=630;Y0:=15;Ym:=280; c:=(Ym-Y0)/Max; Gd:=ega;Gm:=egahi;initgraph(Gd,Gm,''); setbkcolor(15);setcolor(1);setlinestyle(0,0,3); Line(X0,Ym+5,Xm,Ym+5); settextstyle(2,0,5); For i:=1 to K do begin; xx:=x0+i*18; yy:=ym-round(c*dd[i]); line(xx,ym,xx,yy); str(i,ttt);outtextxy(xx-4,ym+10,ttt); outtextxy(xx-4,yy-15,abc[i]); end; {================ Entropy ================} SS:=0; For i:=1 to K do SS:=SS+dd[i]; For i:=1 to K do begin P:=dd[i]/SS; if P>1e-16 then En:=En-P*ln(P)/ln(2); end; Settextstyle(0,0,0); str(En:8:5,ttt);outtextxy(1,ym+30,'Entropy = '+ttt); Enm:=ln(K)/ln(2); str(Enm:8:5,ttt);outtextxy(250,ym+30,'Entropy max = '+ttt); str(N:5,ttt);outtextxy(500,ym+30,'N = '+ttt); SS:=100*(Enm-En)/Enm;Str(SS:8:5,ttt); outtextxy(1,ym+45,'Surplus = '+ttt+' %'); readkey; closegraph; end. 1) Подготовили текст на русском языке объёмом в 250 символов и используя программу №1 определили его энтропию. 2) Используя текст №2 и программу №1 определили статистику появления символов и энтропию текста в расчете на один символ: По гистограмме определили десять наиболее вероятных символов в тексте и записали их в порядке убывания: О; Е; А; И; Н; Р;С; Т;В; Д. 3) По формуле (8) рассчитали избыточность сообщения:
4) Используя текст №2 и программу №2, определили двумерную статистику появления всех возможных пар символов и энтропию текста в расчёте на один символ:
5) По формуле (8) рассчитали избыточность сообщения:
6) Сравнили между собой энтропию и избыточность текста, рассчитанные по одномерной статистике и по двумерной статистике. Увидели, что энтропия текста, рассчитанная по одномерной статистике больше, чем энтропия рассчитанная по двумерной, а избыточность текста в первом случае меньше, чем во втором. Полученные результаты соответствуют второму свойству энтропии. 7) Пользуясь первым свойством энтропии, набрали короткий текст, энтропия которого равна 0. Вывод: в данной работе мы изучили методы численных расчетов энтропии и избыточности дискретных сообщений, одномерной функции распределения вероятности символов и двумерной функции распределения вероятности сочетания символов в текстовой информации. Сравнив между собой энтропию и избыточность текста, рассчитанные по одномерной статистике и по двумерной статистике, пришли к выводу, что полученные результаты соответствуют второму свойству энтропии. Убедились в равенстве 0 энтропии одного текста и в нулевой избыточности другого.
|