Найти в Дзене
Широков Александр

Электронные таблицы: применяем с пользой (часть 2)

Ищем аллитерации в стихах

(описание используемых условных обозначений, а также список других публикаций канала по теме электронных таблиц, находится здесь).

Аллитерация – это скопление одинаковых или схожих по звучанию согласных в каком-либо тексте. В поэзии её нередко используют в качестве приёма, создающего дополнительную звуковую выразительность стиха, кроме того аллитерации встречаются в скороговорках и логопедических упражнениях. Ниже предлагается описание создания инструмента для анализа частот встречаемости букв в текстах для выявления этих самых аллитераций.

Создайте новую книгу и выделите на листе диапазон ячеек “C2:C26”:

-2

На вкладке «Главная» ленты, в секции «Выравнивание» выберите команду «Объединить и поместить в центре»:

-3
-4
-5

На панели инструментов «Форматирование» нажмите кнопку команды «Объединить и центрировать ячейки»:

-6
-7

После этого действия выделенный диапазон станет выглядеть как одна большая ячейка – установите в ней горизонтальное выравнивание текста по левому краю, а вертикальное – по верхнему (Пособие, с. 11). Стоит отметить, что к содержимому такой большой ячейки можно обращаться, используя адрес “C2”.

Далее, воспользовавшись автозаполнением (Пособие, с. 40), проставьте в ячейках столбца “A” числа от 1 до 3000:

-8

Затем необходимо заполнить и отформатировать лист примерно следующим образом:

-9

Нетрудно видеть, что “C2” предназначена для размещения в ней анализируемого текста – введите в неё какую-нибудь фразу, например: «Тихо шифером шурша, крыша едет не спеша». Так как скорее всего анализируемый текст будет в дальнейшем вставляться в ячейку из буфера обмена, то рекомендую делать это, предварительно установив текстовый курсор в строке формул (строке ввода) – дело в том, что длинное стихотворение может содержать много символов перевода строки и при обычной вставке такой текст вставится не только в “C2”, а ещё и расположенные под ней ячейки (“C27”, “C28” и т. д.).

Из сказанного становится ясно, что текст перед анализом лучше предварительно подготовить. В ячейку “C29” введите следующую формулу:

-10

=СТРОЧН(ПЕЧСИМВ(СЖПРОБЕЛЫ(C2)))

-11
-12

=LOWER(CLEAN(TRIM(C2)))

-13

Работает формула так. Функция

-14

СЖПРОБЕЛЫ( )

-15
-16

TRIM( )

-17

удаляет лишние пробелы, заменяя несколько подряд идущих одним. После этого функция

-18

ПЕЧСИМВ( )

-19
-20

CLEAN( )

-21

убирает из текста специальные непечатаемые знаки, в том числе – символы перевода строки. Заканчивается обработка функцией

-22

СТРОЧН( )

-23
-24

LOWER( )

-25

– она делает все заглавные буквы строчными.

В “C28” введите вот такую формулу:

-26

="Подготовленный текст (число знаков " & ДЛСТР(C29) & "):"

-27
-28

="Подготовленный текст (число знаков " & LEN(C29) & "):"

-29

Использованная в ней функция

-30

ДЛСТР( )

-31
-32

LEN( )

-33

возвращает число символов в тексте (в данном случае – «очищенном» от лишних знаков). Обратите также внимание на особенность рассматриваемой формулы – она формирует строку, в которую внедрено число, присоединяемое к текстовым фрагментам при помощи символов & (амперсанд), сами текстовые фрагменты в формуле берутся в кавычки.

В ячейке “B1” укажите ещё одну формулу:

-34

=ПСТР($C$29;A1;1)

-35
-36

=MID($C$29;A1;1)

-37

Использованная в ней функция осуществляет вырезание фрагмента из текста. У неё три аргумента: первый – адрес ячейки, в которой содержится обрабатываемый текст, второй – номер символа (позиция знака), с которого надо начинать вырезание, третий аргумент – количество вырезаемых знаков. Таким образом в данном случае формула возвращает первый символ строки из ячейки “C29”. При помощи маркера заполнения (Пособие, с. 25) откопируйте формулу из “B1” вплоть до “B3000”, в результате в диапазоне “B1:B3000” будет отображаться подготовленный анализируемый текст, разделённый на отдельные знаки. Дополнительно следует заметить, что если в используемой формуле второй аргумент функции (начальная позиция для вырезания текста) по своей величине превышает число знаков в обрабатываемом тексте, то сама функция в этом случае возвращает пустую строку "".

В ячейку “E2” введите формулу такого вида:

-38

=СЧЁТЕСЛИ($B$1:$B$3000;D2)

-39
-40

=COUNTIF($B$1:$B$3000;D2)

-41

Использованная в ней функция (Пособие, с. 84) подсчитывает число ячеек в диапазоне “B1:B3000”, содержащих букву «а» – откопируйте формулу вниз до ячейки “E34” и в диапазоне “E2:E34” отобразятся количества каждой буквы алфавита в анализируемом тексте. Для завершения вычислений полученный массив чисел следует пронормировать (Пособие, с. 76), определив значения относительных частот встречаемости букв. Для этого в “E36” вводится формула

-42

=СУММ(E2:E34)

-43
-44

=SUM(E2:E34)

-45

для подсчёта общего количества букв в анализируемом тексте, а в “F2” – формула:

=E2/$E$36*100

Последнюю формулу также следует откопировать вниз, до “F34”, получив нормированные значения (относительные частоты).

Рассчитанные величины лучше как-нибудь визуализировать. В данном случае предлагается использовать условное форматирование ячеек – выделите диапазон “F2:F34”.

-46

На вкладке ленты «Главная», в секции «Стили» выберите «Условное форматирование» → «Гистограммы» → Градиентная заливка» → «Зелёная гистограмма»:

-47
-48
-49

В программном меню выберите «Формат» →«Условное» → «Гистограммы...»:

-50

В появившемся после этого диалоговом окне

-51

можно сразу нажать кнопку «ОК» или (если есть желание) дополнительно настроить параметры гистограммы, вызвав нажатием кнопки «Дополнительно...» ещё одно диалоговое окно:

-52
-53

В результате получится горизонтальная гистограмма, показывающая распределение относительных частот встречаемости букв в анализируемом тексте:

-54
-55
-56
-57
-58
-59

Для поиска аллитераций в стихотворении нужно дополнительно проанализировать какой-либо обычный текст, взяв его в качестве эталона, чтобы полученные распределения частот можно было сравнивать между собой.

У Ломоносова М.В. есть любопытное стихотворение «О сомнительном произношении буквы Г в российском языке». Если честно, то аллитерация там видна, как говорится, невооружённым глазом, просто сам пример весьма показателен:

Бугристы берега, благоприятны влаги,
О горы с гроздами, где греет юг ягнят,
О грады, где торги, где мозгокружны браги
И деньги, и гостей, и годы их губят.
Драгие ангелы, пригожие богини,
Бегущие всегда от гадкия гордыни,
Пугливы голуби из мягкого гнезда,
Угодность с негою, огромные чертоги,
Недуги наглые и гнусные остроги,
Богатство, нагота, слуги и господа,
Угрюмы взглядами, игреки, пеги, смуглы,
Багровые глаза, продолговаты, круглы;
И кто горазд гадать и лгать, да не мигать,
Играть, гулять, рыгать и ногти огрызать,
Ногаи, б_о_лгары, гуроны, геты, гунны,
Тугие головы, о _и_готи чугунны,
Гневливые враги и гладкословный друг,
Толпыги, щеголи, когда вам есть досуг,
От вас совета жду, я вам даю на волю:
Скажите, где быть _га_ и где стоять _глаголю_?

Относительная частота встречаемости буквы «Г» в данном стихе – 14,53%. Насколько это много? Для сравнения возьмём другой текст Ломоносова, а именно – три первых абзаца седьмой главы его труда «Древняя Российская история»:

Самодержавного своего в России государствования Владимир полагает начало, мнимым благочестием по древнему предков многобожию, однако и заблуждением показует в себе способность к приятию веры в единого истинного Бога. Его повелением поставлен в Киеве перед двором теремным, на высоком холме главный идол Перун, деревянный с серебряною головою и золотым усом. Жертва приносилась - огонь неугасимый. За угашение, небрежением случившееся, жрецы смертной казни предавались. Сей богом грома и молнии почитавшийся Перун был Зевес древних наших предков.
Меньших богов Нестор именует: Хорса, Дажбога, Стрибога, Семаргла, Мокошь, не показав знаменования и приписыванной им от идолопоклонников силы и власти. По Перуне имел Волос первое место, коему покровительство скота приписывалось (рачение о скотопасстве большее, нежели у римлян, нижним божкам оное препоручившим); Погвизд, Похвист или Вихрь - бог ветра, дождя и вёдра, Еол российский; Лада (Венера), Дида и Лель (купидоны), любви и браков покровители, толь усердно от древних предков наших почитались, что оттуда и поныне в любовных простых песнях, особливо на брачных празднествах, упоминаются со многим повторительным восклицанием.
Купалу, богу плодов земных, соответствующему Цересе и Помоне, праздновали перед началом сенокоса и жатвы в двадцать четвертый день июня. Остатки сего идолопоклонства толь твердо вкоренились, что и поныне почти во всей России ночные игры, особливо скакание около огня, в великом употреблении; и святая Агриппина, которой тогда память празднуется, по древнему идолу проименована от простонародия Купальницею.

В приведённом тексте значение частоты для «Г» составляет всего 2,27%. Таким образом, в рассматривавшемся выше стихотворении буква «Г» встречается в 14,53% / 2,27% ≈ 6,4 раза чаще обычного.

Строго говоря частотный анализ встречаемости букв пригоден и для других целей – по аналогии с аллитерацией можно исследовать стихи на предмет наличия в них ассонанса (скопления определённых гласных букв), кроме того, такой анализ хорошо подходит для криптографической области – им можно «взламывать» текст, зашифрованный по методу простой замены (то есть когда в шифрованном тексте каждая буква заменена на какую-то другую).

Файлы с примерами: xlsx / ods

Перечень публикаций на канале