Прочел

    с начала

        буквы он,

выходит:

    «Куафер Симон».

С конца прочел

       знаток наук, —

«Номис» выходит

        «рефаук».

Этот отрывок из стихотворения Владимира Маяковского "История Власа, лентяя и лоботряса" хорошо иллюстрирует, как можно в поэтическом тексте использовать палиндромы. В этой статье я покажу, как с помощью Python можно найти эти палиндромы — слова и фразы, которые читаются одинаково в обе стороны. С помощью этого анализа будет видно, как и зачем поэт использовал такие конструкции.

В реальном исследовании нужно было бы взять полный корпус стихов Маяковского, но для моего исследования подойдёт одна поэма. Маяковский написал "Хорошо" в 1927 году по заказу Управления ленинградских академических театров, которое готовило юбилейный спектакль к десятилетию Октябрьской революции. Первоначально поэма называлась "Октябрь", окончательное название было дано автором уже после завершения произведения.

Идейный смысл поэмы понятен, он заключается в возвышении социалистического отечества, в восхвалении героического подвига советского народа и поэтизации коммунизма. А вот какими художественными приемами воспользовался Маяковский, это интересно установить с помощью Python. 

Создам функцию, которая будет проверять, является ли строка палиндромом. Но в начале очищу текст от знаков препинания и удостоверюсь, что буквы кирилиcтические.

def is_palindrome(s):

    s_clean = re.sub(r'\s+', '', s.lower())  

    return s_clean == s_clean[::-1] 

В моем коде s_clean == s_clean[::-1]`: сравнивает очищенную строку с её обратной версией.

Теперь найду слова, которые являются палиндромами. Поиск буду производить среди слов длиннее 1 буквы.

def find_palindromic_words(text):

    words = re.findall(r'[а-яё]+', text.lower())

    palindromic_words = set()

    for word in words:

        if len(word) > 1 and is_palindrome(word):

            palindromic_words.add(word)

    return palindromic_words

if text.strip():

    palindromic_words = find_palindromic_words(text)

Аналогично найду палиндромные фразы (последовательности слов). Для этого переберу фразы длиной от 2 до 5 букв, извлеку срез и объединю в множество.

def find_palindromic_phrases(text, max_phrase_length=5):

    words = re.findall(r'[а-яё]+', text.lower())

    palindromic_phrases = set()

           for length in range(2, max_phrase_length + 1):

        for i in range(len(words) - length + 1):

            phrase_words = words[i:i + length]

            phrase_joined = ' '.join(phrase_words)

            if is_palindrome(phrase_joined):

                palindromic_phrases.add(phrase_joined)

        return palindromic_phrases

if text.strip():

     palindromic_phrases = find_palindromic_phrases(text, max_phrase_length=5)

Найдены палиндромы – "поверхностные", то есть просто слова, перевернутые назад: иди, или, как, топот, мадам, шиш, хах, тит, тят, ото, тот, тут, ее, еле, еще.

Код нашел еще и повторяющиеся фразы, которые только формально являются палиндромами, но при этом не являются словами: и и, у у, у у у, же ж, а на.

Палиндромы у Маяковского выступают как средства усложнения текста поэмы "Хорошо". Благодаря этим приемам содержание поэмы становится богаче и труднее для восприятия. Этим автор подчеркивает многоплановость и многогранность событий революции и следует традициям авангардной комбинаторной поэзии. Мы видим здесь Маяковского как поэта-новатора и экспериментатора, который снимает табу и борется с затертыми метафорами и при этом может с иронией относится к самому себе.

В такие ночи,

в такие дни,

в часы

такой поры

на улицах

разве что

одни

поэты

и воры́.

Python позволяет автоматизировать поиск поверхностных палиндромов в тексте. Это может быть полезно для поэтического анализа, например, для выявления ритмических узоров, фонетических повторов или семантических акцентов, которые автор мог вложить в симметричные конструкции. В творчестве Маяковского, где ритм и интонация играют ключевую роль, даже такие простые метрики, как поиск палиндромов, могут стать отправной точкой для более глубокого исследования поэтической формы и содержания.

Комментарии (2)


  1. afanasyev-av
    11.12.2025 09:19

    Так, а какие палиндромы нашли? И какой в них сакральный смысл?


  1. Diacut
    11.12.2025 09:19

    Вам статьи этой серии следовало называть как-то иначе.

    s/Python/regular expressions/

    Как-то так.