Как Python помог переосмыслить алкогольную романтику в текстах Довлатова

— Скоро Новый год. Партия не в силах отменить или хотя бы отсрочить это буржуазное веяние. А значит, неизбежны возлияния. И, как следствие, досадные происшествия. В общем, Фидель, пей, но не теряй лица…

— Я меру знаю, — ответил Фидель, поправляя одежду, — литр на человека, и порядок! Гуляю, пока не погаснет свет…

Сложно судить об истинном отношении Сергея Довлатова к спиртному, да это и не принципиально для литературоведения. Куда важнее то, что в его текстах алкогольная тематика является сквозной: она служит инструментом характеристики персонажей и катализатором сюжета. Мы видим это повсюду: от лагерного быта в «Зоне» до редакционных будней «Компромисса». Эмигранты, охранники, литераторы и маргиналы в его прозе регулярно выпивают, дебоширят и философствуют. Примечательно, что автор избегает деления героев на однозначно положительных и отрицательных. Возникает вопрос: не является ли алкоголь в мире Довлатова средством романтизации персонажей? Чтобы ответить на него, я решил провести лексико-семантическое исследование с использованием Python. Моей целью было выяснить, как трансформируется художественная реальность после «рюмки-другой» и становится ли мир в глазах героев более гармоничным или уютным.

Для исследования я проанализировал массив текстов автора, сравнивая лексический состав фрагментов до и после упоминания спиртного. Весь корпус произведений был объединен в единый датасет. В качестве основного инструмента использовалась библиотека razdel (от разработчиков Natasha), которая обеспечивает качественную токенизацию и сегментацию предложений, учитывая специфику русской пунктуации (диалоги, многоточия). Также был задействован морфологический анализатор pymorphy3 для лемматизации слов, что позволило свести различные словоформы к единой начальной форме.

Визуализация и статистический анализ проводились с помощью стандартного стека: pandas, matplotlib и seaborn.

Я намеренно отказался от нейросетевых моделей сентимент-анализа (например, Slovnet). Обученные на текстах из соцсетей или отзывах, они часто пасуют перед тонкой довлатовской иронией, не считывая её как форму отрицания позитивного контекста. Моя задача заключалась не в формальной оценке «хорошо/плохо», а в фиксации качественных сдвигов в восприятии: визуальных, слуховых и когнитивных. Нейросети часто игнорируют подобные дискурсивные связи.

Методология заключалась в поиске «алкогольных» маркеров (водка, пьяный, запой и др.) и анализе контекстного окна — трех предложений до и трех после события.

alcohol_words = ['выпил', 'выпить', 'водка', 'пьяный', 'опохмел', 'запой', 'бутылка']
alcohol_lemmas = {morph.parse(w)[0].normal_form for w in alcohol_words}

def get_context_windows(sentences, condition_func, window=3):
    contexts = []
    for i, sent in enumerate(sentences):
        if condition_func(sent):
            before = sentences[max(0, i - window):i]
            after = sentences[i + 1:i + 1 + window]
            contexts.append((sent, " ".join(before), " ".join(after)))
    return contexts

def is_alcohol_sentence(sent):
    words = [t.text.lower() for t in tokenize(sent) if t.text.isalpha()]
    lemmas = [morph.parse(w)[0].normal_form for w in words]
    return any(l in alcohol_lemmas for l in lemmas)

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

def extract_percept_descriptions(context_text):
    tokens = [t.text.lower() for t in tokenize(context_text) if t.text.isalpha()]
    lemmas = [morph.parse(w)[0].normal_form for w in tokens]
    percept_positions = [i for i, l in enumerate(lemmas) if l in percept_lemmas]
    
    descriptions = {'visual': [], 'auditory': [], 'emotional': []}
    for pos in percept_positions:
        start = max(0, pos - 5)
        end = min(len(lemmas), pos + 6)
        window_lemmas = lemmas[start:end]
        for l in window_lemmas:
            if l in visual_lemmas: descriptions['visual'].append(l)
            elif l in auditory_lemmas: descriptions['auditory'].append(l)
            elif l in emotional_lemmas: descriptions['emotional'].append(l)

Результаты исследования

Анализ охватил 439 эпизодов употребления алкоголя. Выяснилось, что Довлатов крайне скуп на классические метафоры изменения сознания. Его стиль лаконичен: герои предпочитают действовать, а не предаваться рефлексии о том, как «мир подернулся дымкой».

Тем не менее, были обнаружены две важные лексические аномалии. Слово «тёплый» практически не встречается в описаниях обстановки до момента выпивки, появляясь лишь после неё. Это можно трактовать и как физиологический эффект, и как смену восприятия пространства. Еще более показательна лексема «любовь»: она фигурирует преимущественно в «пьяных» контекстах. Это подтверждает гипотезу о том, что алкоголь у Довлатова выступает катализатором эмоциональной открытости и кратковременного сближения людей.

Как Python помог переосмыслить алкогольную романтику в текстах Довлатова
Распределение перцептивных маркеров в контексте употребления спиртного

Интересно, что звуковая картина мира (аудиальные описания) остается абсолютно статичной. Никакого «звона в ушах» или «особенной тишины» — внешний шум реальности не меняет своего регистра.

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

 

Источник

Читайте также