1 ХОД РАБОТЫ
1.1 Частотный анализ текстов
Для выполнения итоговой работы были выбраны рассказ Антона Павловича Чехова «Человек в футляре» [1] в качестве художественного текста и научная статья Якимука Алексея Юрьевича и Конева Антона Александровича «Алгоритм сегментации речевого сигнала на основе значений минимальной меры различия» [2] в качестве научного текста.
Для подсчета вхождения букв в текстах был написан программный код, представленный в приложении А. Для удобства подсчета, все буквы текстов были приведены к нижнему регистру.
Общее количество букв в художественном тексте составило 19425 символов, количество вхождений каждого символа и их вероятности представлены в таблице 1.1.
Таблица 1.1 – Частотный анализ художественного текста
Буква |
Количество |
Вероятность |
Буква |
Количество |
Вероятность |
о |
2209 |
0,1137 |
ы |
372 |
0,0192 |
е |
1620 |
0,0834 |
г |
360 |
0,0185 |
а |
1614 |
0,0831 |
б |
352 |
0,018121 |
и |
1412 |
0,0727 |
ч |
351 |
0,01807 |
н |
1210 |
0,0623 |
з |
325 |
0,0167 |
т |
1173 |
0,0604 |
ж |
272 |
0,0140 |
л |
976 |
0,0502 |
х |
210 |
0,0108 |
с |
935 |
0,0481 |
ш |
188 |
0,0097 |
в |
888 |
0,0457 |
й |
182 |
0,0094 |
к |
769 |
0,0396 |
ю |
105 |
0,0054 |
р |
757 |
0,039 |
щ |
69 |
0,0036 |
д |
605 |
0,0311 |
э |
58 |
0,00299 |
у |
564 |
0,029 |
ц |
52 |
0,0027 |
м |
538 |
0,0277 |
ф |
27 |
0,0014 |
п |
429 |
0,0221 |
ё |
20 |
0,001 |
ь |
392 |
0,0202 |
ъ |
2 |
0,0001 |
я |
389 |
0,02 |
ИТОГО |
19425 |
|
4
Общее количество букв в научном тексте составило 15827 символов, количество вхождений каждого символа и их вероятности представлены в таблице 1.2.
Таблица 1.2 – Частотный анализ научного текста
Буква |
Количество |
Вероятность |
Буква |
Количество |
Вероятность |
о |
1563 |
0,0988 |
у |
324 |
0,0205 |
е |
1406 |
0,0888 |
ч |
319 |
0,0202 |
а |
1403 |
0,0886 |
з |
318 |
0,0201 |
и |
1315 |
0,0831 |
я |
293 |
0,0185 |
н |
1298 |
0,082 |
б |
202 |
0,0128 |
с |
900 |
0,0569 |
й |
188 |
0,0119 |
т |
813 |
0,0514 |
ь |
133 |
0,0084 |
р |
795 |
0,0502 |
х |
129 |
0,0082 |
в |
719 |
0,0454 |
ц |
119 |
0,0075 |
л |
673 |
0,0425 |
ж |
93 |
0,0059 |
м |
566 |
0,0358 |
ю |
81 |
0,0051 |
к |
482 |
0,0305 |
ш |
76 |
0,0048 |
п |
397 |
0,0251 |
э |
56 |
0,0035 |
ы |
359 |
0,0227 |
щ |
54 |
0,0034 |
д |
352 |
0,0222 |
ф |
51 |
0,0032 |
г |
349 |
0,0221 |
ъ |
1 |
0.00006 |
ИТОГО |
15827 |
|
|
|
|
Из полученных расчетов можно сделать вывод, что самой часто встречающейся буквой как в произведении «Человек в футляре», так и в научной статье «Алгоритм сегментации речевого сигнала на основе значений минимальной меры различия» является буква «О». В художественном тексте буква встретилась 2209 раз, а в научном тексте – 1563 раз. Самой редко встречающейся буквой в обоих текстах является буква «Ъ», она встретилась в художественном тексте всего 2 раза, а в научном 1 раз.
На рисунке 1.1 представлены фрагменты Excel таблицы, которые использовалась для расчета вероятностей.
5
Рисунок 1.1 – Рассчитанные вероятности букв для художественного и научного текстов
6
1.2 Построение кода Шеннона-Фано и Хаффмена
Символы художественного и научного текстов были закодированы с помощью кода Шеннона-Фано и Хаффмена. В таблице 1.3 представлены кодовые слова для художественного текста.
Таблица 1.3 – Коды для символов художественного текста
Буква |
Код Шеннона- |
Код Хаффмена |
Буква |
Код Шеннона- |
Код Хаффмена |
|
Фано |
|
|
Фано |
|
|
|
|
|
|
|
о |
000 |
011 |
ы |
110110 |
110001 |
е |
001 |
1111 |
г |
110111 |
110000 |
а |
0100 |
1110 |
б |
11100 |
101011 |
и |
0101 |
1011 |
ч |
111010 |
101010 |
н |
0110 |
1001 |
з |
111011 |
101001 |
т |
0111 |
1000 |
ж |
111100 |
010001 |
л |
1000 |
0011 |
х |
1111010 |
010000 |
с |
10010 |
0010 |
ш |
1111011 |
000000 |
в |
10011 |
0001 |
й |
1111100 |
1010001 |
к |
10100 |
11010 |
ю |
1111101 |
0000011 |
р |
10101 |
11001 |
щ |
11111100 |
10100001 |
д |
10110 |
01011 |
э |
11111101 |
10100000 |
у |
10111 |
01010 |
ц |
11111110 |
00000101 |
м |
11000 |
01001 |
ф |
111111110 |
000001001 |
п |
110010 |
00001 |
ё |
1111111110 |
0000010001 |
ь |
110011 |
110111 |
ъ |
1111111111 |
0000010000 |
я |
11010 |
110110 |
|
|
|
В таблице 1.4 представлены кодовые слова для научного текста. Таблица 1.4 – Коды для символов научного текста
Буква |
Код Шеннона- |
Код Хаффмена |
Буква |
Код Шеннона- |
Код Хаффмена |
|
Фано |
|
|
Фано |
|
о |
000 |
010 |
у |
110111 |
110010 |
е |
0010 |
000 |
ч |
111000 |
110001 |
а |
0011 |
1111 |
з |
111001 |
110000 |
и |
010 |
1101 |
я |
111010 |
101010 |
н |
0110 |
1011 |
б |
110011 |
001101 |
с |
0111 |
1000 |
й |
111100 |
001100 |
т |
1000 |
0111 |
ь |
1111010 |
1010110 |
р |
10010 |
0110 |
х |
1111011 |
1001110 |
7
Окончание таблицы 1.4
Буква |
Код Шеннона- |
Код Хаффмена |
Буква |
Код Шеннона- |
Код Хаффмена |
|
Фано |
|
|
Фано |
|
|
|
|
|
|
|
в |
10011 |
0010 |
ц |
1111100 |
1001101 |
л |
1010 |
11100 |
ж |
11111010 |
10101111 |
м |
10110 |
10100 |
ю |
11111011 |
10101110 |
к |
10111 |
10010 |
ш |
11111100 |
10011111 |
п |
11000 |
00111 |
э |
11111101 |
10011110 |
ы |
11001 |
111011 |
щ |
11111110 |
10011001 |
д |
11010 |
111010 |
ф |
111111110 |
100110001 |
г |
110110 |
110011 |
ъ |
111111111 |
100110000 |
На рисунке 1.2 – рисунке 1.5 представлены фрагменты Excel таблицы, которые использовалась для расчета кода Шеннона-Фано и кода Хаффмена для художественного и научного текстов.
Рисунок 1.2 – Код Шеннона-Фано для художественного текста
8
Рисунок 1.3 – Код Хаффмена для художественного текста
Рисунок 1.4 – Код Шеннона-Фано для научного текста
Рисунок 1.5 – Код Хаффмена для художественного текста
9
На рисунке 1.6 и рисунке 1.7 представлены деревья, использованные при составлении кода Хаффмена для художественного и научного текстов.
Рисунок 1.6 – Дерево кода Хаффмена для художественного текста
Рисунок 1.7 – Дерево кода Хаффмена для научного текста
10
