В романе Бориса Пастернака «Доктор Живаго» главный герой выведен врачом. Очевидно, что писатель выбрал такую профессию своему персонажу не просто так. В этом прослеживается несколько сюжетных задумок, и, поскольку Юрий Живаго пишет стихи, в этом должны быть и какая‑то связь с медицинским следом в русской словесности. Самые известные писатели в русской литературе, связанные с медициной это Чехов и Булгаков. Оба они получили нужное образование и некоторое время врачевали. Я решил исследовать текст романа с помощью доступных инструментов Python и установить, действительно ли есть связь Юрия Живаго с Чеховым и как в романе Пастернак использует профессию своего героя с литературной точки зрения.

«Как хорошо на свете! — подумал он. — Но почему от этого всегда так больно?».

Я скачал в интернете текст романа «Доктор Живаго» в виде фала.txt с сайта azbyka.ru и начал с того, что стал искать в романе какое‑то чеховское присутствие. От мысли искать подобное, связанное с Булгаковым я сразу отказался — по эпохе события в романе не совпадают с литературной карьерой автора «Собачьего сердца». Для поиска связи с Чеховым я решил применить алгоритм Word2Veс. Это объяснятся моим личным впечатлением от чтения романа — я не помню, чтобы Пастернак впрямую упоминал Чехова и не стал искать явные цитаты или упоминания имени драматурга с помощью, например, регулярных выражений. Мне показалось интереснее выявить именно скрытые семантические поля и найти в тексте романа чеховскую атмосферу. Word2Veс подходит для такого поиска. Алгоритм строит векторные представления слов на основе их контекста во всем романе. Word2Veс помещает слова в многомерное пространство, где расстояние, то есть косинусная близость отражает семантическую схожесть.

Я начал с того, что попытался найти известные чеховские формулы в романе и установить их семантических соседей.

markers = {
    "чеховск*": r"чеховск\w*",
    "футляр": r"футляр\w*",
    "три сестры": r"три\s+сестр\w*",
    "мороз": r"мороз\w*",
    "диагност": r"диагност\w*",
    "мальчики": r"мальчик\w*",
    "человек в футляре": r"человек\s+в\s+футляр\w*"
}
for marker_name, pattern in markers.items():
    regex = re.compile(rf'.{{0,50}}{pattern}.{{0,50}}', re.IGNORECASE | re.DOTALL)
    matches = regex.findall(text_zhivago)

    print(f"\Маркер: '{marker_name}' | Найдено: {len(matches)}")
    for i, ctx in enumerate(matches[:3]):
        clean_ctx = ctx.replace('\n', ' ').strip()
        print(f"  {i+1}. ...{clean_ctx}...")

Что у меня получилось:

Лемма: 'чехов' (встречается 2 раз)

неказистый: 0.3775

ракушка: 0.3701

замотанный: 0.3432

преждевременный: 0.3429

вериться: 0.3401

правило: 0.3368

позорный: 0.3367

Лемма: 'чеховский' (встречается 1 раз)

витать: 0.3547

забывчивость: 0.3321

разгадка: 0.3318

разведенному: 0.3301

расшатали: 0.3206

соблазнительный: 0.3205

докалывать: 0.3202

Лемма: 'футляр' (встречается 2 раз)

выпросить: 0.3622

морщившееся: 0.3519

шарообразный: 0.3470

тварь: 0.3426

обветренных: 0.3418

пола: 0.3386

тифозный: 0.3370

Лемма: 'диагност' (встречается 3 раз)

марксизм: 0.4142

унизиться: 0.3843

уметь: 0.3766

свершиться: 0.3670

незадачливый: 0.3574

таинственно: 0.3495

разнимать: 0.3466

Для леммы «чеховский» модель нашла интересное семантическое соседство «расшатали». По этой находке видено, что у Пастернака в романе не просто исчезает чеховский уют, но он активно расшатывается историческими катаклизмами.

Интересное семантические соседство выявлено для леммы «диагност»: «марксизм», «таинственно», «свершиться». Соседство слов «диагност» и «марксизм» не случайно. Оно выводит на поверхность такую скрытую полемику романа, где Живаго как врач и диагност противопоставлен идеологу‑«диагносту» Стрельникову‑Антипову, который поставил идею выше жизни.

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

«Всякая стадность — прибежище неодарённости, всё равно, верность ли это Соловьёву, или Канту, или Марксу. Истину ищут только одиночки и порывают со всеми, кто любит её недостаточно».

Дальше я решил углубиться в профессию Живаго и посмотреть, можно ли установить лексическую связь между специальностью героя и социальным контекстом сюжета. Ставит ли Юрий Андреевич какой‑то диагноз всей эпохе?

Я решил построить визуальную семантическую сеть и проверить структурное единство медицинского и социального дискурсов в романе. Для графика я использовал медицинские и социальные термины.

MEDICAL_LEMMAS = {
    'болезнь', 'смерть', 'диагноз', 'формалин', 'карболка', 'стетоскоп',
    'анатомия', 'тело', 'кровь', 'лихорадка', 'врач', 'лечить', 'боль', 'труп'
}
SOCIAL_LEMMAS = {
    'революция', 'хаос', 'разрушение', 'страх', 'гибель', 'бунт', 'идеология',
    'футляр', 'отчаяние', 'судьба', 'общество', 'смерть', 'боль', 'кризис'
G = nx.Graph()
window_size = 1 
for lemmas in sentence_lemmas:
    relevant_words = [w for w in lemmas if w in MEDICAL_LEMMAS or w in SOCIAL_LEMMAS]
    for i in range(len(relevant_words)):
        for j in range(i + 1, len(relevant_words)):
            w1, w2 = relevant_words[i], relevant_words[j]
            if G.has_edge(w1, w2):
                G[w1][w2]['weight'] += 1
            else:
                G.add_edge(w1, w2, weight=1)
plt.figure(figsize=(12, 10))
pos = nx.spring_layout(G, k=0.5, iterations=50)
edges_to_draw = [(u, v) for (u, v, d) in G.edges(data=True) if d['weight'] > 1]
weights = [G[u][v]['weight'] for u, v in edges_to_draw]
Семантическая сеть: пересечение патологий в романе "Доктор Живаго"
Семантическая сеть: пересечение патологий в романе «Доктор Живаго»

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

Так же я решил проверить семантическую близость медицинского и социального контекста с помощью SBERT. Это нейросетевая модель на базе трансформеров, которая преобразует целые предложения в векторы. В отличие от TF‑IDF, SBERT понимает контекст, синонимы, метафоры и синтаксические конструкции. Для моей задачи эта нейросетевая модель хорошо подходит. Писатель может описывать болезнь тела, не использую медицинских терминов, например «тело стыло» и так же без специальных слов описывать и крах общества. SBERT способен оценить косинусное сходство векторов двух предложений, даже если в них нет ни одного общего слова, но они описывают одну и ту же экзистенциальную или патологическую ситуацию.

model = SentenceTransformer('cointegrated/rubert-tiny2') 
med_sample_sents = [processed_sentences[i] for i in medical_sentences_indices[:20]]
social_sentences_indices = [i for i, lemmas in enumerate(sentence_lemmas) if lemmas & SOCIAL_LEMMAS]
social_sample_sents = [processed_sentences[i] for i in social_sentences_indices[:20]]
emb_med = model.encode(med_sample_sents)
emb_soc = model.encode(social_sample_sents)
similarity_matrix = cosine_similarity(emb_med, emb_soc)

Что у меня получилось:

Средняя косинусная сходство между 'медицинскими' и 'социальными' предложениями:

Средняя схожесть: 0.5711 (шкала от 0 до 1)

Максимальная схожесть: 1.0000

Семантическая близость контекстов
Семантическая близость контекстов

Средняя косинусная схожесть 0.5711 — это высокий показатель для семантического анализа художественного текста. Он означает, что предложения о медицинской патологии и предложения о социальной патологии в среднем имеют 57% семантического перекрытия.

Максимальная схожесть 1.0000 это очень много. Такая величина показывает, что в романе есть предложения, которые невозможно однозначно классифицировать как медицинские или социальные диагнозы. У Пастернака патология героев так взаимосвязана, что установить первичность социальных, психических или физиологических отклонений почти невозможно.

Надеяться и действовать — наша обязанность в несчастии. Бездеятельное отчаяние — забвение и нарушение долга

У версии о том, что Пастернак получил премию за роман не заслуженно, много сторонников. Но и без размышлений о печальной судьбе награды можно сказать, что роман у писателя получился выдающийся.

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


  1. Litemanager_soft
    19.10.2026 08:01

    прям захотелось прочитать этот роман , а вообще интересно что скажет учительница по литературе по вашей статье)


  1. belch84
    19.10.2026 08:01

    Очень хорошо помню эпизод из романа, в котором Юрий Андреевич ставит диагноз очень тяжело больной пациентке, все прочие врачи в этот диагноз не верят, и лишь когда пациентка умрирает и удается провести вскрытие, оказываеться, что доктор Живаго был таки прав! После этого все его знакомые врачи поздравляют доктора и чуть ли не радуются тому, что все выяснилось и тому, какой же он замечательный диагност. Пишу по памяти, могут быть неточности, роман читал очень давно. Тем не менее эпизод показался мне тогда довольно циничной шуткой. Но врач-то он был, видимо, хороший


    1. ksbes
      19.10.2026 08:01

      Др. Живаго VS Др. Хаус!