library(rvest)
library(tidyverse)
library(polite)
library(tidytext)
library(udpipe)
library(stopwords)
library(stringr)
library(purrr)
remotes::install_github("dmafanasyev/rulexicon")
library(rulexicon)
library(reshape2)
library(wordcloud)
library(paletteer)
library(ggpage)Эмоциональная тональность Пятикнижия Ф. М. Достоевского
Цели и задачи исследования
В настоящей работе предпринимается попытка рассмотреть так называемое «Пятикнижие» Федора Михайловича Достоевского в новом ракурсе. С опорой на инструментарий цифровых методов проводится анализ эмоциональной тональности романов.
В связи с поставленной целью представляется необходимым решить ряд следующих задач:
- С помощью веб-скрапинга сформировать корпус текстов, включающий романы «Пятикнижия» Достоевского, и подготовить его к цифровому анализу (токенизация, лемматизация).
- Проанализировать эмоциональную тональность текстов с использованием методов автоматического анализа, чтобы выявить особенности ее распределения в каждом романе.
- Сравнить эмоциональную тональность, выявленную в текстах.
Перед началом работы загрузим все необходимые пакеты для исследования:
Несколько слов о Достоевском
«Дело в жизни, в одной жизни, — в открывании ее, беспрерывном и вечном, а совсем не в открытии!»
— «Идиот», Ф. М. Достоевский
Приведенная выше цитата из одного из самых знаменитых романов Достоевского передает идею, исходя из которой жизнь является бесконечным процессом, а не статичным результатом; и именно в этом процессе необходимо черпать вдохновение. Таким образом можно охарактеризовать и суть творческого пути писателя.
Федор Михайлович Достоевский - без сомнений один из величайших русских писателей и мыслителей, чьи произведения оказали глубочайшее влияние на мировую литературу и философию. Его собственная художественная и идейная эволюция и стала таким «открыванием».
Аркадий Сергеевич Долинин, один из наиболее авторитетных исследователей Достоевского, охарактеризовал творчество писателя следующим образом:
«С точки зрения основ, главных руководящих идей, творчество Достоевского может быть разделено на два периода: от “Бедных людей” до “Записок из подполья” и от “Записок” до знаменитой речи на Пушкинском празднике. В первом периоде он горячий поклонник Шиллера, Жорж Занд и Гюго, пламенный защитник великих идеалов гуманизма в их обычном, общепринятом понимании, преданнейший ученик Белинского - социалиста, своим глубоким пафосом, своей напряженной взволнованностью в отстаивании естественных прав “последнего человека” не уступающий и самому учителю. Во втором он, если не окончательно отрешается от всех своих прежних идей, то часть их безусловно переоценивает и, переоценив, отбрасывает, а часть хоть и оставляет, но пытается поднести под нее совершенно другие основания. Это деление удобно тем, что резко подчеркивает ту глубокую трещину в его метафизике, то видимое “перерождение его убеждений”, которое в самом деле обнаружилось очень скоро после каторги и - надо думать - не без ее воздействия на ускорение, а может быть и направление внутренней душевной работы».
Именно во втором, переломном периоде, последовавшем за каторгой и личными трагедиями, и было создано главное наследие писателя - так называемое «Великое пятикнижие». Это неофициальное, но устоявшееся в литературоведении обозначение пяти крупнейших романов Достоевского. В данном понятии отражается идейно-тематическая и поэтико-структурная целостность указанных произведений, а также сходство их композиционной конструкции. Предположительно, данное обозначение восходит к Пятикнижию Моисея - началу Ветхого Завета.
Общие черты пяти текстов:
- Тема борьбы Бога и Дьявола в человеке;
- Поиск идеальной личности, способной пожертвовать собой ради других и идеального устройства мира.
Перейдем к практическому исследованию «Пятикнижия», осуществляемому в цифровой среде. С использованием методов веб-скрапинга будут собраны структурированные данные по каждому роману. В качестве источника данных выбран сайт lib.ru, с которого осуществляется сбор текстового материала для последующей обработки (на данном этапе сам текст произведений собираться не будет)
# Для исследования я выбрала страницу Федора Михайловича на lib.ru
url <- "http://az.lib.ru/d/dostoewskij_f_m/"
html = read_html(url)
# Кланяюсь Федору Михайловичу и вежливо забираю необходимое 🙂
session <- bow(url)
# Загружаю HTML главной страницы раздела с помощью polite
html <- scrape(session)
# Далее использую Selector Gadget, чтобы выбрать необходимые мне тексты. В данном случае это романы, входящие в "пятикнижие"
toc <- html |>
html_elements("dl:nth-child(14) li , dl:nth-child(12) li , dl:nth-child(13) li , dl:nth-child(10) li , dl:nth-child(11) li , dl:nth-child(9) li , dl:nth-child(8) li , dl:nth-child(7) li") |>
html_element('a')
# Собираю информацию по текстам, получая при этом ссылки на них.
# Делаю это для проверки, что все сработало так, как мне надо.
texts <- tibble(
title = toc |>
html_text2(),
href = toc |>
html_attr("href")
)
# Несмотря на то, что я проверила, какие тексты нужно брать с помощью Selector
# Gadget, все равно получилось забрать лишнюю инфорацию. Нужно отфильтровать ее!
filtered_books <- texts |>
filter(title %in% c(
"Преступление и наказание",
"Идиот",
"Бесы",
"Подросток",
"Братья Карамазовы. Часть 1"
)) |>
distinct(title, .keep_all = TRUE) # Вынужденная мера, так как на сайте есть дубль "Преступления и наказания"
# Теперь добавляю протокол доступа и доменное имя для каждой страницы
books_domen <- filtered_books |>
mutate(ID = as.integer(row_number())) |>
mutate(link = str_c("http://az.lib.ru/d/dostoewskij_f_m/", href)) |>
select(-href)
# Собираю полные ссылки для текстов
urls <- books_domen |>
pull(link)Следующим этапом работы является извлечение необходимых данных с помощью функции, которая обрабатывает сразу все тексты сразу.
# Перехожу к функции и наполняю ее всем необходимым: я хочу вытащить с сайта информацию
# о рейтинге произведения, а также год написания текста.
get_dostoevsky_polite <- function(url) {
bow_obj <- bow(url)
html_page <- scrape(bow_obj)
res = tibble(
rating = html_page |>
html_elements("br+ form , br+ form a") |>
html_text2() |>
str_extract("\\d+\\.\\d+\\*\\d+"),
year = html_page |>
html_element("li:nth-child(3)") |>
html_text2() |>
str_extract("\\d+")
)
return(res)
}
# Применяю функцию ко всем текстам, добавляя при этом столбец с id
dostoevsky <- map_df(urls, get_dostoevsky_polite, .id = "ID")
# Отлично, получилось так, как я и хотела. НО! Видимо из-за разницы в оформлении (и видимо "внутренностей" структуры) текст некоторых произведений не выводится. Я решила избавиться от таких исключений, чтобы не нарушать единообразность данных.
dostoevsky_full <- dostoevsky |>
mutate(link = urls) |>
mutate(title = books_domen$title) |>
select(ID, title, link, year, rating)| ID | title | link | year | rating |
|---|---|---|---|---|
| 1 | Преступление и наказание | http://az.lib.ru/d/dostoewskij_f_m/text_0060.shtml | 1866 | 4.48*4447 |
| 2 | Идиот | http://az.lib.ru/d/dostoewskij_f_m/text_0070.shtml | 1868 | 5.92*595 |
| 3 | Бесы | http://az.lib.ru/d/dostoewskij_f_m/text_0080.shtml | 1872 | 6.06*240 |
| 4 | Подросток | http://az.lib.ru/d/dostoewskij_f_m/text_0090.shtml | 1875 | 6.50*116 |
| 5 | Братья Карамазовы | http://az.lib.ru/d/dostoewskij_f_m/text_1881_karamazovy.shtml | 1881 | NA |
Полученная таблица позволяет сравнить хронологию создания романов «Пятикнижия» и их текущую оценку на платформе. Единственный недостаток: нет рейтинга для «Братьев Карамазовых», так как на сайте эта книга разделена на несколько частей.
Подготовка корпуса текстов к анализу
На предыдущем этапе сбор полных текстов произведений был преднамеренно отложено. В ходе предварительного анализа сайта-источника было установлено, что структура хранения текстов является неоднородной и не все произведения корректно поддаются автоматизированной обработке. В частности, роман «Подросток» не удается корректно извлечь независимо от предпринимаемых технических решений. Первоначально предполагалось, что возникшая ошибка связана с проблемами кодировки, однако данная гипотеза не подтвердилась: причиной сбоя оказалась некорректная HTML-разметка страницы, периводящая к возникновению рекурсии при парсинге. В связи с этим роман «Подросток» был исключен из дальнейшего анализа корпуса текстов.
Сбор метаданных и формирование корпуса текстов осуществлялись раздельно, что позволило сохранить полноту описания корпуса при одновременном исключении технически проблемных документов.
Итак, необходимо проделать практически те же шаги, но исключив «Подростка» из корпуса.
toc2 <- html |>
html_elements("dl:nth-child(7) li , dl:nth-child(8) li , dl:nth-child(9) li , dl:nth-child(14) li , dl:nth-child(12) li , dl:nth-child(13) li , dl:nth-child(11) li") |>
html_element('a')
texts2 <- tibble(
title = toc2 |>
html_text2(),
href = toc2 |>
html_attr("href")
)
filtered_books_without_podrostok <- texts2 |>
filter(title %in% c(
"Преступление и наказание",
"Идиот",
"Бесы",
"Братья Карамазовы. Часть 1"
)) |>
distinct(title, .keep_all = TRUE)
books_domen_new <- filtered_books_without_podrostok |>
mutate(ID = as.integer(row_number())) |>
mutate(link = str_c("http://az.lib.ru/d/dostoewskij_f_m/", href)) |>
select(-href)
urls_new <- books_domen_new |>
pull(link)
# Теперь тут будет функция для сбора ТОЛЬКО текстов
get_dostoevsky_polite_texts <- function(url) {
bow_obj <- bow(url)
html_page <- scrape(bow_obj)
res = tibble(
text = html_page |>
html_element("div") |>
html_text2() |>
str_squish())
return(res)
}
# Объединение таблиц
dostoevsky_texts <- map_df(urls_new, get_dostoevsky_polite_texts, .id = "ID")
# Отлично, теперь у нас есть корпус текстов, с которым можно работать
dostoevsky_corpus <- dostoevsky_texts |>
mutate(
title = books_domen_new$title,
)Полученный корпус представляет собой таблицу из четырех произведений Достоевского с идентификаторами, названиями и полным текстом произведений. Визуализация корпуса в полном объеме в рамках данной работы не приводится ввиду значительного объема текстовых данных.
Тексты произведений содержат служебные элементы, такие как имя автора, название произведения и т.п., которые не относятся к собственно художественному тексту. На следующем этапе корпус будет очищен от указанных метаданных с целью обеспечения корректного и унифицированного анализа текстового материала.
Сначала с использованием регулярных выражений будет проведена максимально возможная очистка текстов от метаданных. Данный этап требует относительно объемного кода, поскольку для каждого романа служебные элементы оформлены по-разному, что необходимо учитывать при обработке.
# Начинаю очистку текста с регулярных выражений
dostoevsky_corpus_clean <- dostoevsky_corpus |>
mutate(
text_clean = text |>
# Убираю автора из текста (при всем уважении)
str_remove_all("Ф\\.?\\s*М\\.?\\s*Достоевск(ий|ого)") |>
str_remove_all("Федор\\s+Михайлович\\s+Достоевск(ий|ого)") |>
# Убираю название произведения в разных варианта
str_remove_all("Преступление и наказание.") |>
str_remove_all("Идиот.") |>
str_remove_all("Бесы.") |>
str_remove_all("Братья Карамазовы.") |>
# Убираю все части и главы, которые, как мне кажется, тоже могут помешать при последующем анализе
str_remove_all("Часть\\s+(первая|вторая|третья|четвертая|пятая|шестая)") |>
str_remove_all("Часть\\s+\\d+") |>
# Убираю всякие дополнительные моменты
str_remove_all("Роман в .*? част(ях|ях с эпилогом)") |>
str_remove_all("Полное собрание сочинений") |>
str_remove_all("Роман в [а-я ]+") |>
str_remove_all("Собрание сочинений в [а-я ]+") |>
# И ссылки тоже убираю
str_remove_all("http[s]?://\\S+") |>
# Для Бесов удаляю всё до первой главы
str_replace("^.*?(Глава\\s+первая|Глава\\s+1)", "\\1") |>
# Ну и привожу в порядок пробелы
str_squish()
)В результате получается предварительно очищенный корпус, который не является полностью идеальным, однако последующая фильтрация стоп-слов позволит скорректировать оставшиеся неточности.
На данном этапе будет выполнена токенизация текстов, то есть разбиение корпуса на отдельные смысловые единицы (токены). Это является необходимым шагом для лемматизации.
# Токенизирую тексты
dostoevsky_corpus_tokens <- dostoevsky_corpus_clean |>
mutate(id = row_number()) |>
unnest_tokens(
output = tokens,
input = text_clean) |>
select(id, title, tokens)
knitr::kable(
dostoevsky_corpus_tokens |>
slice_head(n = 10),
caption = "Таблица №2. Метаданные по пятикнижию Достоевского, 10 строк для иллюстрации"
)| id | title | tokens |
|---|---|---|
| 1 | Преступление и наказание | с |
| 1 | Преступление и наказание | эпилогом |
| 1 | Преступление и наказание | i |
| 1 | Преступление и наказание | в |
| 1 | Преступление и наказание | начале |
| 1 | Преступление и наказание | июля |
| 1 | Преступление и наказание | в |
| 1 | Преступление и наказание | чрезвычайно |
| 1 | Преступление и наказание | жаркое |
| 1 | Преступление и наказание | время |
При визуальной проверке данные корректно отображаются, что иллюстрируется на Таблице №2.
Далее осуществляется непосредственно процесс лемматизации, поскольку устранение стоп-слов отдельно в данном случае является лишней работой. Это обусловлено тем, что леммы будут объединяться с одним из лексиконов, в котором отсутствуют стоп-слова.
# Скачиваю языковую модель в рабочую директорию (у меня она уже есть, так что я закомментирую ее)
rus_model <- udpipe_download_model(language = "russian-syntagrus")
# Загружаю модель
rus <- udpipe_load_model("russian-syntagrus-ud-2.5-191206.udpipe")
# Аннотирую
dostoevsky_annotate <- udpipe_annotate(
rus,
x = dostoevsky_corpus_tokens$tokens,
doc_id = dostoevsky_corpus_tokens$id
)
# Переделываю в тиббл
dostoevsky_ann_tibble <- as_tibble(dostoevsky_annotate)После этого начинается долгая загрузка: можно сходить попить чай или кофе :)
На данном этапе завершается процесс подготовки корпуса текстов к последующему анализу.
Эмоциональная тональность текстов
На данном шаге осуществляеся анализ тональности текстов В рамках настоящего исследования для этих целей используется русскоязычный лексикон AFINN, включающий 7268 оценочных лексем, каждой из которых присвоен вес в диапазоне от -5 (крайне негативная тональность) до +5 (крайне позитивная тональность).
# Скачиваю словарь AFINN с оценочными словами
set.seed(2001)
afinn <- hash_sentiment_afinn_ruДля последующего анализа корпус текстов предварительно подготавливается: тексты разбиваются на фрагменты фиксированной длины (чанки по 100 слов), после чего осуществляется сопоставление токенов оценочными лексемами из выбранного лексикона.
# Разделяю тексты на отрывки по 100 слов
ann_clear <- dostoevsky_ann_tibble |>
filter(upos != "PUNCT") |>
select(lemma, doc_id) |>
rename(token = lemma) |>
mutate(chunk = round(((row_number() + 50) / 100), 0))Далее осуществляется объединение подготовленного корпуса с лексиконом AFINN с использованием функции inner_join(), что позволяет соотнести каждому токену соответствующую оценку тональности.
dostoevsky_sent <- ann_clear |>
inner_join(afinn) |>
select(doc_id, token, chunk, score)В последующих разделах работы будет проведен непосредственный анализ эмоциональной тональности каждого из рассматриваемых романов.
«Преступление и наказание»
В качестве первого примера рассматривается роман «Преступление и наказание». Этот роман, по мнению русского поэта, драматурга и критика Иннокентия Федоровича Анненского, обозначает момент переворота в творчестве писателя. При этом Анненский, на мой взгляд, очень точно передал атмосферу произведения (Иннокентий Фёдорович Анненский 1909):
«Из романов Достоевского “Преступление и наказание”, безусловно, и самый колоритный. Это — роман знойного запаха известки и олифы, но еще более это — роман безобразных, давящих комнат… <…>»
С этим трудно не согласиться: запахи и удушающее ощущение тесноты действительно становятся одними из первых ассоциаций, возникающих при размышлениях о романе, формируя его уникальную атмосферу.
Особый интерес представляет рассмотрение романа через призму цифрового анализа, поскольку это позволяет сопоставить субъективное восприятие текста с объективными результатами автоматизированной оценки лексической и эмоциональной окраски. Такой подход создаёт основу для дальнейшего анализа распределения положительных, нейтральных и негативных лексем, а также выявления закономерностей эмоциональной динамики на протяжении всего произведения.
Эмоционально окрашенная лексика отдельных текстов фрагментов (чанков) представляется здесь в виде сравнительного облака слов.
pal <- paletteer_d("ButterflyColors::hamadryas_feronia")
# добавляем новый столбец для удобства визуализации
dostoevsky_sent_class <- dostoevsky_sent |>
mutate(tone = case_when( score >= 0 ~ "pos",
score < 0 ~ "neg"))
set.seed(2001)
dostoevsky_sent_class |>
filter(chunk %in% c(1:10),
nchar(token) <= 13)|> # Убираю слишком длинные слова, иначе они не поместятся на графике
count(token, tone, sort = TRUE) |>
acast(token ~ tone, value.var = "n", fill = 0) |>
comparison.cloud(
colors = c(pal[1], pal[5]),
max.words = 50,
random.order = FALSE, # Слова по порядку
rot.per = 0.3 # Поворот слов для экономии места
)В начальной части текста, представленной фргаментом из начала романа (10 первых чанков) происходит первое знакомство читателя с персонажами. Центральное внимание уделяется образу Родиона Раскольникова, описание которого сопровождается высокой концентрацией лексем с негативной оценочной окраской:
«Не то чтоб он был так труслив и забит, совсем даже напротив; но с некоторого времени он был в раздражительном и напряженном состоянии, похожем на ипохондрию. Он до того углубился в себя и уединился от всех, что боялся даже всякой встречи, не только встречи с хозяйкой. Он был задавлен бедностью; но даже стесненное положение перестало в последнее время тяготить его. Насущными делами своими он совсем перестал и не хотел заниматься. Никакой хозяйки, в сущности, он не боялся, что бы та ни замышляла против него. Но останавливаться на лестнице, слушать всякий вздор про всю эту обыденную дребедень, до которой ему нет никакого дела, все эти приставания о платеже, угрозы, жалобы, и при этом самому изворачиваться, извиняться, лгать, — нет уж, лучше проскользнуть как-нибудь по лестнице и улизнуть, чтобы никто не видал.
В следующем фрагменте текста представлены размышления Раскольникова, в которых прослеживается формирование его философской концепции, основанной на разделении людей на «право имеющих» и «тварей дрожащих». На данном этапе повествования Достоевский еще не раскрывает эту идею в полном объеме, однако последовательно подводит читателя к ней:
«На какое дело хочу покуситься и в то же время каких пустяков боюсь! — подумал он со странною улыбкой. — Гм… да… все в руках человека, и все-то он мимо носу проносит, единственно от одной трусости… это уж аксиома… Любопытно, чего люди больше всего боятся?…
Примечательно, что в данном отрывке наблюдается более высокая частотность лексем, связанных со страхом (в частности, формы глагола «бояться») по сравнению с предыдущим фрагментом. Это указывает на внутренний конфликт героя: Раскольников испытывает страх перед реализацией собственной идеи, которая уже намечается в его размышлениях, но пока формулируется в явном виде В контексте романа данная идея связана, конечно, с замыслом преступления — убийства старухи-процентщицы — как своеобразного испытания, призванного определит, к какому типу людей принадлежит сам Раскольников: к «тварям дрожащим» или «право имеющиим».
Более того, даже лексема «улыбка», традиционно ассоциируемая с позитивной оценкой, в данном контексте приобретает негативную окраску. Характеристика улыбки как «странной» и ее связь с преступным замыслом придают образу тревожный, напряженный смысл, отражающий внутренее состояние героя.
В первой главе приводится также описание жителей Петербурга, которые представлены как положительными, так и негативно окрашенными лексемами из облака слов.
Особое внимание привлекает включение в группу негативно окрашенных слов лексемы «блин». Вероятно, это связано с тем, что лексикон AFINN основан на модели современного русского языка, где данная единица функционирует как эвфемизм. В романе же лексема употребляется в прямом значении, обозначая предметы одежды или пищи, что подтверждается контекстом:
«К поим лохмотьям непременно нужна фуражка, хотя бы старый блин какой-нибудь, а не этот урод»
«Тут втягивает; тут конец свету, якорь, тихое пристанище, пуп земли, трехрыбное основание мира, эссенция блинов, жирных кулебяк, вечернего самовара, тихих воздыханий и теплых кацавеек, натполенных лежанок…»
Данный пример иллюстрирует ограничения лексиконного подхода при работе с художественными текстами классической литературы, где значение слова определяется контекстом, а не современным употреблением.
Было бы интересно провести аналогичный анализ для середины романа, чтобы проследить, как изменяется облако слов в текстах, где уже отсутствуют подробные описания героев и Петербурга. Такой подход позволил бы выявить динамику эмоциональной окраски текста на протяжении повествования.
Для следующего анализа будет выбран фрагмент примерной середины роман, соответствующий чанкам с 910 по 920, который относится к четвертой части произведения. Четвертая часть романа сосредоточена на развитии внутреннего конфликта Раскольникова, его сближении с Сонечкой Мармеладовой, а также на встрече героя со следователем.
pal <- paletteer_d("ButterflyColors::hamadryas_feronia")
# добавляем новый столбец для удобства визуализации
dostoevsky_sent_class2 <- dostoevsky_sent |>
mutate(tone = case_when( score >= 0 ~ "pos",
score < 0 ~ "neg"))
set.seed(2001)
dostoevsky_sent_class2 |>
filter(chunk %in% c(910:920)) |>
count(token, tone, sort = TRUE) |>
acast(token ~ tone, value.var = "n", fill = 0) |>
comparison.cloud(
colors = c(pal[1], pal[5]),
max.words = 100,
random.order = FALSE, # Слова по порядку
rot.per = 0.3, # Поворот слов для экономии места
scale = c(3, 0.5),
min.freq = 1
)Конкретный фрагмент романа (четвертая часть, вторая глава) описывает, как Раскольников предупреждает Дмитрия Разумихина о странностях Аркадия Ивановича Свидригайлова и необходимости оберегать Дуню Раскольникову, у которой они встретили Лужина. В разговоре с ним обсуждались смерть жены Свидригайлова и его преступное прошлое. Намек Лужина на связь Дуни и Свидригайлова привел к разрыву помолвки, а сцена завершилась выдворением Лужина Раскольниковым.
Данный график облака слов следует анализировать с учётом контекста. Так, например, на графике к позитивным лексемам относятся слова «любезный» и «любезно». Однако в рассматриваемом фрагменте они характеризуют Лужина — человека, далёкого от искренней любезности:
«… Да и вообще Петр Петрович принадлежал к разряду людей, по-видимому чрезвычайно любезных в обществе и особенно претендующих на любезность, но которые, чуть что не по них, тотчас же и теряют все свои средства и становятся скорее на мешки с мукой, чем на развязных и оживляющих общество кавалеров…»
В данном случае эти слова выполняют функцию скорее негативной характеристики Лужина, демонстрируя лицемерие и социальную поверхностность персонажа.
Большая часть негативно окрашенных лексем относится к описанию Свидригайлова:
«Ах, Петр Петрович, вы не поверите, до какой степени вы меня теперь испугали! — продолжала Пульхерия Александровна. — Я его всего два раза видела, и он мне показался ужасен, ужасен! Я уверена, что он был причиною смерти покойницы Марфы Петровны.
«… Не спорю, может быть, он способствовал ускоренному ходу вещей, так сказать, нравственным влиянием обиды; но что касается поведения и, вообще нравственной характеристики лица, то я с вами согласен. Не знаю, богат ли он теперь и что именно оставила ему Марфа Петровна; об этом мне будет известно в самый непродолжительный срок; но уж, конечно, здесь, в Петербурге, имея хотя бы некоторые денежные средства, он примется тотчас за старое. Это самый развращенный и погибший в пороках человек, из всех подобного рода людей! Я имею значительное основание предполагать, что Марфа Петровна, имевшая несчастие столь полюбить его и выкупить из долгов, восемь лет назад, послужила ему еще и в другом отношении: единственно ее старанием* и жертвами затушено было, в самом начале, уголовное дело, с примесью зверского, так сказать, фантастического душегубства, за которое он весьма и весьма мог бы прогуляться в Сибирь».
В данном случае и лексемы «старание», и «фантастический» следует рассматривать как негативно окрашенные, поскольку они усиливают образ Свидригайлова как духовно обезображенного и морально разложившегося человека.
Итак, и здесь облако слов формируется преимущественно из лексем, характеризующих личность персонажей, отражая их нравственные качества и эмоциональное воздействие на окружающих. Посмотрим, что же из себя представляет финал романа.
В качестве материала для анализа рассматривается фрагмент финала романа, охватывающий чанки 1723-1733, соответствующие второй главе эпилога. Именно в этом эпизоде начинается процесс духовного возрождения Раскольникова Далее будет проанализировано, находит ли данное изменение отражение в тексте на уровне визуализации.
pal <- paletteer_d("ButterflyColors::hamadryas_feronia")
# добавляем новый столбец для удобства визуализации
dostoevsky_sent_class2 <- dostoevsky_sent |>
mutate(tone = case_when( score >= 0 ~ "pos",
score < 0 ~ "neg"))
set.seed(2001)
dostoevsky_sent_class2 |>
filter(chunk %in% c(1723:1733)) |>
count(token, tone, sort = TRUE) |>
acast(token ~ tone, value.var = "n", fill = 0) |>
comparison.cloud(
colors = c(pal[1], pal[5]),
max.words = 100,
random.order = FALSE, # Слова по порядку
rot.per = 0.3, # Поворот слов для экономии места
scale = c(3, 0.5),
min.freq = 1
)В рассматриваемом фрагменте негативно окрашенные лексемы связаны преимущественно с состоянием физической и душевной болезни героя. И здесь же находится сон Раскольникова о конце света и трихинах, после которого начинается процесс его внутреннего преображения.
В дальнейшем в тексте появляются эмоционально насыщенные единицы с положительной тональностью: «любовь», зарождающаяся между Раскольниковым и Сонечкой, «счастье», переживаемое вопреки обстоятельствам, «ясные» весенние дни, символизирующие оживление не только природы, но и внутреннего мира героя.
Существенным в эмоционально-смысловом отношении является эпизод воссоединения Родиона и Сони, в котором отчетливо прослеживается смена тональной доминанты — от отчуждения и страдания к принятию и духовной близости.
«Она всегда протягивала ему свою руку робко, иногда даже не подавала совсем, как бы боялась, что он оттолкнет ее. Он всегда как бы с отвращением брал ее руку, всегда точно с досадой встречал ее, иногда упорно молчал во все время ее посещения. Случалось, что она трепетала его и уходила в глубокой скорби. Но теперь их руки не разнимались; он мельком и быстро взглянул на нее, ничего не выговорил и опустил свои глаза в землю. Они были одни, их никто не видел. Конвойный на ту пору отворотился. Как это случилось, он и сам не знал, но вдруг что-то как бы подхватило его и как бы бросило к ее ногам. Он плакал и обнимал ее колени. В первое мгновение она ужасно испугалась, и все лицо ее помертвело. Она вскочила с места и, задрожав, смотрела на него. Но тотчас же, в тот же миг она все поняла. В глазах ее засветилось бесконечное счастье; она поняла, и для нее уже не было сомнения, что он любит, бесконечно любит ее и что настала же наконец эта минута…
Таким образом, цифровой анализ тональности позволяет выявить закономерности эмоциональной окраски текста: отрицательные лексемы концентрируются вокруг конфликтных или тревожных сцен, тогда как положительные в зависимости от контекста могут приобретать усложненную, в том числе ироническую или амбивалентную, семантику.
«Идиот»
Роман Достоевского «Идиот» посвящен изображению идеального человека. В письме своей племяннице Софье Ивановой писатель прямо указывает, что основная цель произведения заключается в том, чтобы «изобразить положительно прекрасного человека». В этом письме Достоевский также называет литературных прототипов князя Мышкина — персонажей, черты которых могли послужить образцом для создания героя. Среди них упоминаются Дон Кихот, затем «слабейшая мысль, чем Дон Кихот, но все-таки огромная» — Пиквик Диккенса, и Жан Вальжан из романа «Отверженные» Гюго.
Исходя из этого, можно предположить, что в романе «Идиот» будет преобладать более позитивно окрашенная лексика. Эту гипотезу можно проверить с помощью построения облака слов для анализа эмоциональной окраски текста.
Для анализа следует выбрать чанки с 1887 по 1897, поскольку именно в этом фрагменте романа представлены его начало и знакомство с главными героями.
pal_idiot <- paletteer_d("NatParksPalettes::BryceCanyon")
# добавляем новый столбец для удобства визуализации
dostoevsky_sent_class3 <- dostoevsky_sent |>
mutate(tone = case_when( score >= 0 ~ "pos",
score < 0 ~ "neg"))
set.seed(2002)
dostoevsky_sent_class3 |>
filter(chunk %in% c(1887:1897)) |>
count(token, tone, sort = TRUE) |>
acast(token ~ tone, value.var = "n", fill = 0) |>
comparison.cloud(
colors = c(pal_idiot[1], pal_idiot[5]),
max.words = 100,
random.order = FALSE, # Слова по порядку
rot.per = 0.3, # Поворот слов для экономии места
scale = c(3, 0.5),
min.freq = 1
)Анализ графика показывает, что князь Мышкин и Рогожин представлены как противоположные персонажи, что с самого начала создает у читателя ожидание их будущего конфликта. Далее рассмотрим их описания более подробно.
Князь Лев Николаевич Мышкин:
«Обладатель плаща с капюшоном был молодой человек, тоже лет двадцати шести или двадцати семи, роста немного повыше среднего, очень белокур, густоволос, со впалыми щеками и с легонькою, востренькою, почти совершенно белою бородкой. Глаза его были большие, голубые и пристальные; во взгляде их было что-то тихое, но тяжелое, что-то полное того странного выражения, по которому некоторые угадывают с первого взгляда в субъекте падучую болезнь. Лицо молодого человека было, впрочем, приятное, тонкое и сухое, но бесцветное, а теперь даже досиня иззябшее».
Князь Мышкин предстает с двух сторон: с одной стороны, в его образе присутствуют элементы, которые могут быть интерпретированы как негативные, вызванные его болезнью, с другой — это не мешает ему сохранить приятные черты, что видно и далее в тексте:
«Завязался разговор. Готовность белокурого молодого человека в швейцарском плаще отвечать на все вопросы своего черномазого соседа была удивительная и без всякого подозрения совершенной небрежности, неуместности и праздности иных вопросов. Отвечая, он объявил, между прочим, что действительно долго не был в России, с лишком четыре года, что отправлен был за границу по болезни, по какой-то странной нервной болезни, вроде падучей или виттовой пляски, каких-то дрожаний и судорог. Слушая его, черномазый несколько раз усмехался; особенно засмеяля он, когда на вопрос: “Что же, вылечили?” — белокурый отвечал, что “нет, не вылечили”».
Итак, образ князя Мышкина с самого начала строится на внутреннем противоречии: внешняя болезненность, «странность» взгляда и признаки физической уязвимости соседствуют с открытостью и искренностью. Его болезнь маркируется лексемами (не всегда, но тем не менее) с потенциально негативной оценкой, однако в контексте романа она не умаляет, а, напротив, подчеркивает нравственную чистоту и доверчивость героя.
Парфен Семенович Рогожин:
«Один из них был небольшого роста, лет двадцати семи, курчавый и почти черноволосый, с серыми маленькими, но огненными глазами. Нос его был широк и сплюснут, лицо скулистое; тонкие губы беспрерывно складывались в какую-то наглую, насмешливую и даже злую улыбку; но лоб его был высок и хорошо сформирован и скрашивал неблагородно развитую нижнюю часть лица».
В данном случае улыбка Рогожина, хотя формально может казаться положительной, приобретает явно негативную окраску, подчеркивая его злой и насмешливый характер. Далее посмотрим, как продолжаетя описание героя, и какие еще характеристики определяют его личность:
«Особенно приметна была в этом лице его мертвая бледность, придававшая всей физиономии молодого человека изможденный вид, несмотря на довольно крепкое сложение, и вместе с тем что-то страстное, до страдания, не гармонировавшее с нахальною и грубою улыбкой и с резким, самодовольным его взглядом.
Вновь обращает на себя внимание улыбка Рогожина, которая в данном контексте приобретает зловещий оттенок. Несмотря на внешнюю выразительность образа, внутренний облик персонажа оказывается непривлекательным: в противопоставлении Мышкину Рогожин предстает фигурой, лишенной сочувствия и характеризующейся внутренней жестокостью.
Для продолжения анализа будет рассмотрен фрагмент из средней части романа, что позволит выявить изменения в изображении персонажей и проследить эволюцию их характеристик по мере развития повествования.
В качестве примера выбран фрагмент, охватывающий чанки с 3000 по 3010, соответствующий третьей части, первой главе произведения. В данном эпизоде автор временно отступает от основного хода событий и обращается к описанию семьи Епанчиных, акцентируя внимание на характере генеральши и внутрисемейных отношениях, прежде всего на ее беспокойсвте о будущем Аглаи. Также подробно изображается обстановка дома (дачи) генеральши, куда приглашен князь Мышкин и где собираются почти все члены ее семьи, за исключением генерала.
pal_idiot <- paletteer_d("NatParksPalettes::BryceCanyon")
# добавляем новый столбец для удобства визуализации
dostoevsky_sent_class3 <- dostoevsky_sent |>
mutate(tone = case_when( score >= 0 ~ "pos",
score < 0 ~ "neg"))
set.seed(2002)
dostoevsky_sent_class3 |>
filter(chunk %in% c(3000:3010)) |>
count(token, tone, sort = TRUE) |>
acast(token ~ tone, value.var = "n", fill = 0) |>
comparison.cloud(
colors = c(pal_idiot[1], pal_idiot[5]),
max.words = 100,
random.order = FALSE, # Слова по порядку
rot.per = 0.3, # Поворот слов для экономии места
scale = c(3, 0.5),
min.freq = 1
)Так, позитивно окрашенными словами описывается дача Епанчиных:
«Дача Епанчиных была роскошная дача, во вкусе швейцарской хижины, изящно убранная со всех сторон цветами и листьями. Со всех сторон ее окружал небольшой, но прекрасный цветочный сад. Сидели все на террасе, как у князя; только терраса была несколько обширнее и устроена щеголеватее.
Многие лексемы используются в контексте спора героев:
«Тема завязавшегося разговора, казалось, была не многим по сердцу; разговор, как можно было догадаться, начался из-за нетерпеливого спора, и, конечно, все бы хотелось переменить сюжет, но Евгений Павлович, казалось, тем больше упорствовал и не смотрел на впечатление; приход князя как будто возбудил его еще более. Лизавета Прокофьевна хмурилась, хотя и не все понимала. Аглая, сидевшая в стороне, почти в углу, не уходила, слушала и упорно молчала. — Позвольте, — с жаром возражал Евгений Павлович, — я ничего и не говорю против либерализма. Лизберализм не есть грех; это необходимая составная часть всего целого, которое без него распадется или замертвеет; либерализм имеет такое же право существовать, как и самый благонравный консерватизм; но я на русский либерализм нападаю, и опять-таки повторяю, что за то, собственно, и нападаю на него, что русски либерал не есть русский либерал, а есть не русский либерал. Дайте мне русского либерала, и я его сейчас же при вас поцелую».
В этой сцене значительная часть эмоционально окрашенных лексем функционирует в контексте напряженного спора между персонажами. Преимущественно используются слова с негативной эмоциональной окраской: «нетерпеливый», «хмуриться», «возражать», «против», «грех», «нападать». Примечательно, что в этом контексте отдельные лексемы, формально относимые лексиконом AFINN к позитивным (например, глагол «целовать»), не смягчают общего эмоционального фона сцены. Напротив, в контексте сцены эти слова приобретают иронический оттенок и усиливают полемический характер высказывания
В целом большинство лексем в данном фрагменте отражают конфликтное взаимодействие и общение между персонажами, что наглядно проявляется на графике облака слов. Таким образом, представляется пример того, что эмоциональная окраска текста проявляется не только в описаниях героев, но и в их диалогах.
Даже молчаливое появление князя вызывает обострение эмоций у Евгения Павловича. В целом, на протяжении всего романа князь, пусть и неосознанно, вступает в конфликты с окружающими. Его простое присутствие способно порождать противоречивые реакции у других персонажей. Вместе с тем сам князь проявляет понимание, принятие и сострадание к людям вокруг себя.
Финальная часть романа «Идиот» локализуется приблизительно в чанках 3960-3970. Именно в этом фрагменте князь Мышкин узнает о том, что Рогожин совершил с Настасьей Филипповной.
pal_idiot <- paletteer_d("NatParksPalettes::BryceCanyon")
# добавляем новый столбец для удобства визуализации
dostoevsky_sent_class3 <- dostoevsky_sent |>
mutate(tone = case_when( score >= 0 ~ "pos",
score < 0 ~ "neg"))
set.seed(2002)
dostoevsky_sent_class3 |>
filter(chunk %in% c(3960:3970)) |>
count(token, tone, sort = TRUE) |>
acast(token ~ tone, value.var = "n", fill = 0) |>
comparison.cloud(
colors = c(pal_idiot[1], pal_idiot[5]),
max.words = 100,
random.order = FALSE, # Слова по порядку
rot.per = 0.3, # Поворот слов для экономии места
scale = c(3, 0.5),
min.freq = 1
)На основании лексем, представленных в облаке слов, можно заключить, что данная схема характеризуется высоким уровнем напряжения, страха, а также мотивом искаженного смеха. Обратимся к более детальному анализу текстового фрагмента:
«Бормоча эти неясные слова, Рогожин начал стлать постели. Видно было, что он эти постели, может, еще утром про себя придумал. Прошлую ночь он сам ложился на диване. Но на диване двоим рядом нельзя было лечь, а он непременно хотел постлать теперь рядом, вот почему и стащил теперь, с большими усилиями, через всю комнату, к самому входу за занавеску, разнокалиберные подушки с обоих диванов. Кое-как постель устроилась; он подошел к князю, нежно и восторженно взял его за руку, приподнял и подвел к постели; но оказалось, что князь и сам мог ходить; значит, “страх проходил”, и однако же, он все-таки продолжал дрожать».
Такой финал композиционно соотносится с началом романа, образуя эффект смыслового «закольцовывания»: перед читателем вновь предстают два героя-антипода, при этом персонаж, олицетворяющий нравственную чистоту, оказывается неспособен противостоять тяжести преступления, совершенного другим, и вновь впадает в истерию.
На этом анализ данного эпизода можно завершить и перейти к рассмотрению следующего романа.
«Бесы»
Роман Достоевского «Бесы» является наиболее политизированным его произведением, в котором писатель стремится осмыслить психологию молодых революционеров, к числу которых он сам когда-то принадлежал. Реакция общества на роман оказалась неоднозначной.
Одним из ключевых эпизодов произведения является убийство студента группой «наших», которое Достоевский заимствовал из истории «нечаевского дела». Стратегия действий Петра Верховенского и устройство его тайного общества демонстрируют принципы, изложенные в манифесте «Катехизис революционера», написанном самим Нечаевым.
В данном контексте представляет интерес исследовать, насколько политическая тематика романа проявляется в тексте и в какой степени она отражается через эмоциональную окраску, что можно проследить с помощью анализа тональности.
Для анализа выберем начальный фрагмент романа, охватывающий чанки с 4182 по 4192.
pal_demons <- paletteer_d("lisa::MaxBeckmann")
# добавляем новый столбец для удобства визуализации
dostoevsky_sent_class_demons_1 <- dostoevsky_sent |>
mutate(tone = case_when( score >= 0 ~ "pos",
score < 0 ~ "neg"))
set.seed(2002)
dostoevsky_sent_class_demons_1 |>
filter(chunk %in% c(4182:4192)) |>
count(token, tone, sort = TRUE) |>
acast(token ~ tone, value.var = "n", fill = 0) |>
comparison.cloud(
colors = c(pal_demons[1], pal_demons[5]),
max.words = 100,
random.order = FALSE, # Слова по порядку
rot.per = 0.3, # Поворот слов для экономии места
scale = c(3, 0.5),
min.freq = 1
)Здесь вновь наблюдается ситуация, при которой график облака слов формируется преимущественно на основе описания одного персонажа — Степана Трофимовича Верховенского. Обратимся к тому, как данный герой представлен в тексте романа:
«Скажу прямо: Степан Трофимович постоянно играл между нами некоторую особую и, так сказать, гражданскую роль и любил эту роль до страсти — так даже, что, мне кажется, без нее и прожить не мог. Не то чтоб уж я его приравнивал к актеру на театре: сохрани боже, тем более что сам его уважаю. Тут всё могло быть делом привычки, или, лучше сказать, беспрерывной и благородной склонности, с детских лет, к приятной мечте о красивой гражданской своей постановке. Он, например, чрезвычайно любил свое положение “гонимого” и, так сказать, “ссыльного”. В этих обоих словечках есть своего рода классический блеск, соблазнивший его раз навсегда, и, возвышая его потом постепенно в собственном мнении, в продолжение столь многих лет, довел его наконец до некоторого весьма высокого и приятного для самолюбия пьедестала. В одном сатирическом английском романе прошлого столетия некто Гулливер, возвратясь из страны лилипутов, где люди были всего в какие-нибудь два вершка росту, до того приучился считать себя между ними великаном, что, и ходя по улицам Лондона, невольно кричал прохожим и экипажам, чтоб они пред ним сворачивали и остерегались, чтоб он как-нибудь их не раздавил, воображая, что он всё еще великан, а они маленькие. За это смеялись над ним и бранили его, а грубые кучера даже стегали великана кнутьями; но справедливо ли? Чего не может сделать привычка? Привычка привела почти к тому же и Степана Трофимовича, но еще в более невинном и безобидном виде, если можно так выразиться, потому что прекраснейший был человек».
Показательно, что в данном фрагменте лексемы, формально относящиеся к негативно окрашенным («гонимый», «довести», «бранили», «грубые»), в контексте повествования приобретают иное оценочное звучание. Для самого Степана Трофимовича его положение «гонимого» оказывается источником самодовольства и внутреннего возвышения: оно позволяет ему символически противопоставлять себя окружающим и укреплять собственное чувство значимости. Таким образом, негативная лексика не снижает образ героя, а, напротив, участвует в создании ироничного и психологически сложного портрета персонажа.
Остальные лексемы также преимущественно извлечены из описания данного персонажа, в особенности из фрагмента, в котором раскрывается его склонность к самоидеализации. Степан Трофимович в собственном воображении конструирует образ значимой и опасной фигуры — человека «известного» и идейного, наделённого особым статусом и потому вызывающего постоянное внимание и опасения со стороны властей.
«Он искренно сам верил всю свою жизнь, что в некоторых сферах его постоянно опасаются, что шаги его беспрерывно известны и сочтены и что каждый из трех сменившихся у нас в последние двадцать лет губернаторов, въезжая править губернией, уже привозил с собою некоторую особую и хлопотливую о нем мысль, внушенную ему свыше и прежде всего, при сдаче губернии. Уверь кто-нибудь тогда честнейшего Степана Трофимовича неопровержимыми доказательствами, что ему вовсе нечего опасаться, и он бы непременно обиделся. А между тем это был ведь человек умнейший и даровитейший, человек, так сказать, даже науки, хотя, впрочем, в науке… ну, одним словом, в науке он сделал не так много и, кажется, совсем ничего.
В этом образе Достоевский изображает тип людей, не совершающих реальных поступков, но ожидающих высокой общественной оценки и признания собственной значимости. Степан Трофимович предстает сложным и противоречивым персонажем: несмотря на то что он вызывает у читателя определённую симпатию, именно он оказывается одним из тех, кто косвенно, но существенно повлиял на формирование и идейное «воспитание» главных «бесов» романа.
Посмотрим, какой график облака слов получается в других частях романа.
Для последующего анализа был выбран фрагмент из второй части романа, первой главы («Ночь»), подглавы VI, соответствующий чанкам 4900–4910. В данном эпизоде Николай Ставрогин приходит к Ивану Шатову и признаётся ему в том, что Мария Тимофеевна Лебядкина (Хромоножка) является его законной женой. Далее рассматривается, находит ли их диалог отражение в графике облака слов.
pal_demons <- paletteer_d("lisa::MaxBeckmann")
# добавляем новый столбец для удобства визуализации
dostoevsky_sent_class_demons_1 <- dostoevsky_sent |>
mutate(tone = case_when( score >= 0 ~ "pos",
score < 0 ~ "neg"))
set.seed(2002)
dostoevsky_sent_class_demons_1 |>
filter(chunk %in% c(4900:4910)) |>
count(token, tone, sort = TRUE) |>
acast(token ~ tone, value.var = "n", fill = 0) |>
comparison.cloud(
colors = c(pal_demons[1], pal_demons[5]),
max.words = 100,
random.order = FALSE, # Слова по порядку
rot.per = 0.3, # Поворот слов для экономии места
scale = c(3, 0.5),
min.freq = 1
)Рассматриваемый отрывок относится к эпизоду, в котором Шатов узнаёт от Ставрогина о намерении Петра Верховенского «порешить <…> дело совсем», поскольку тот подозревает Шатова в шпионстве. Это известие вызывает у героя резкую эмоциональную реакцию и приводит к нарастанию внутреннего напряжения, что отражается в его речи:
«Шатов скривил рот, услыхав такой вопрос, высказанный таким обыкновенным тоном. — Если б я и был шпион, то кому доносить? — злобно проговорил он, не отвечая прямо. — Нет, оставьте меня, к черту меня! — вскричал он, вдруг схватываясь за первоначальную, слишком потрясшую его мысль, по всем признакам несравненно сильнее, чем известие о собственной опасности. — Вы, вы, Ставрогин, как могли вы затереть себя в такую бесстыдную, бездарную лакейскую нелепость! Вы член их общества! Это ли подвиг Николая Ставрогина! — вскричал он чуть не в отчаянии.
Уже данная реплика Шатова насыщена значительным количеством негативно окрашенной лексики, что закономерно в контексте сцены: герой осознаёт реальность угрозы собственной жизни и факт постоянного наблюдения за ним.
Вместе с тем обращает на себя внимание присутствие в облаке слов лексемы «любить», формально относящейся к позитивной тональности. В анализируемом фрагменте она встречается всего дважды и употребляется в принципиально разных контекстах — иронически-негативном и нейтрально-положительном:
«…Пожалусйта, не смейтесь, он очень в состоянии спустить курок. Они уверены, что я тоже шпион. Все они, от неуменья вести дело, ужасно любят обвинять в шпионстве».
«Я слышал, что вы имели здесь некоторое влияние на Марью Тимофеевну и что она любила вас видеть и слушать. Так ли это?»
В первом случае глагол «любить» используется с очевидным ироническим оттенком и не смягчает негативной эмоциональной окраски высказывания; во втором — носит описательный характер и не оказывает существенного влияния на общий эмоциональный фон эпизода.
В целом данный фрагмент характеризуется высоким уровнем напряжения и преобладанием лексем с негативной коннотацией. Отсутствие по-настоящему позитивно окрашенных элементов объясняется критическим положением Шатова и драматизмом ситуации, в которой он оказывается.
Это создает контраст с первым рассмотренным фрагментом, в котором преобладала позитивно окрашенная лексика, а даже формально негативные слова в контексте приобретали положительную тональность. Далее обратимся к анализу финала романа и попытаемся охарактеризовать его эмоциональную структуру.
Финал романа представлен фрагментами, охватывающими чанки с 6169 по 6179. В этот диапазон частично включается и приложение, глава десятая («У Тихона»), однако данный эпизод в рамках настоящего анализа рассматриваться не будет. Перейдём к построению графика облака слов для указанного фрагмента.
pal_demons <- paletteer_d("lisa::MaxBeckmann")
# добавляем новый столбец для удобства визуализации
dostoevsky_sent_class_demons_1 <- dostoevsky_sent |>
mutate(tone = case_when( score >= 0 ~ "pos",
score < 0 ~ "neg"))
set.seed(2002)
dostoevsky_sent_class_demons_1 |>
filter(chunk %in% c(6169:6179.)) |>
count(token, tone, sort = TRUE) |>
acast(token ~ tone, value.var = "n", fill = 0) |>
comparison.cloud(
colors = c(pal_demons[1], pal_demons[5]),
max.words = 100,
random.order = FALSE, # Слова по порядку
rot.per = 0.3, # Поворот слов для экономии места
scale = c(3, 0.5),
min.freq = 1
)Анализ графика наглядно демонстрирует существенное преобладание негативно окрашенных лексем над позитивными. Это закономерно, поскольку рассматриваемый фрагмент включает предсмертное письмо Ставрогина, насыщенное лексикой, выражающей страх и опустошённость:
«Я по-прежнему никого не виню. Я пробовал большой разврат и истощил в нем силы; но я не люблю и не хотел разврата. Вы за мной в последнее время следили. Знаете ли, что я смотрел даже на отрицающих наших со злобой, от зависти к их надеждам? Но вы напрасно боялись: я не мог быть тут товарищем, ибо не разделял ничего. А для смеху, для злобы, тоже не мог, и не потому, чтобы боялся смешного, — я смешного не могу испугаться, — а потому, что все-таки имею привычки порядочного человека и мне мерзило. Но если б имел к ним злобы и зависти больше, то, может, и пошел бы с ними. <…> Я знаю, что мне надо бы убить себя, смести себя с земли как подлое насекомое; но я боюсь самоубийства, ибо боюсь показать великодушие. Я знаю, что это будет еще обман, — последний обман в бесконечном ряду обманов. Что же пользы себя обмануть, чтобы только сыграть в великодушие? Негодования и стыда во мне никогда быть не может; стало быть, и отчаяния».
Данный эпизод представляет собой одно из наиболее напряжённых и значимых мест романа. Ставрогин, один из ключевых отрицательных персонажей произведения, обращается к форме исповедального письма, в котором предпринимает попытку осмыслить собственный жизненный путь и внутреннее состояние. Примечательно, что, отрицая свою принадлежность к кругу единомышленников Верховенского и утверждая, что не был его «товарищем», Ставрогин фактически признаёт свою идейную причастность к тем процессам, которые привели к трагическим событиям романа. Тем самым письмо обнажает глубинное противоречие между самооценкой героя и реальной мерой его ответственности.
Далее следует сцена самоубийства Ставрогина, которая завершает роман.
«Братья Карамазовы»
«Братья Карамазовы» — последний роман Достоевского и завершающее произведение его «пятикнижия». В этом тексте писатель формулирует ответы на ключевые духовно-нравственные вызовы современности, полемизируя с теми явлениями, которые воспринимает как кризисные для своего времени: атеизмом, распадом семейных ценностей, улитарной социалистической этикой и материализмом.
Поскольку данный роман ранее не был мною подробно изучен, анализ будет ограничен его начальной частью. Такой подход позволяет, во-первых, избежать спойлеров для меня, во-вторых, снизить риск ошибок при интерпретации полученных данных.
pal_brothers <- paletteer_d("soilpalettes::vitrixerand")
# добавляем новый столбец для удобства визуализации
dostoevsky_sent_class_brothers_1 <- dostoevsky_sent |>
mutate(tone = case_when( score >= 0 ~ "pos",
score < 0 ~ "neg"))
set.seed(2002)
dostoevsky_sent_class_demons_1 |>
filter(chunk %in% c(7140:7150)) |>
count(token, tone, sort = TRUE) |>
acast(token ~ tone, value.var = "n", fill = 0) |>
comparison.cloud(
colors = c(pal_brothers[1], pal_brothers[4]),
max.words = 100,
random.order = FALSE, # Слова по порядку
rot.per = 0.3, # Поворот слов для экономии места
scale = c(3, 0.5),
min.freq = 1
)В начале романа помещена глава «От автора», посвященная характеристике Алексея Федоровича Карамазова. В следующем фрагменте — непосредственно в первой главе — также преобладают лексемы, относящиеся к данному персонажу, поскольку текст сосредоточен на развернутом описании его образа.
При обращении к графику возникает ряд вопросов. В частности, к негативно окрашенной лексике отнесено слово «прозаический», а также зафиксирована некорректная лемма «сать». Рассмотрим эти случаи последовательно
Слово «прозаический», по-видимому, получает отрицательную тональную оценку вследствие своей семантической соотнесенности с низменным и обыденным в противопоставлении возвышенному и «поэтическому». Подобная интерпретация подтверждается и контекстом ее употребления в романе:
«… единственно из-за того, чтобы походить на Шекспировскую Офелию, и даже так, что будь этот утес, столь давно ею намеченный и излюбленный, не столь живописен, а будь на его месте лишь прозаический плоский берег, то самоубийства может быть не произошло бы вовсе»
Второй случай — лемма «сать» — представляет собой техническую аномалию: фактически она является результатом ошибочной лемматизации слова «шут». Данная погрешность возникла на этапе автоматической обработки текста и потому может быть исключена из дальнейшего анализа.
Остальные фрагменты романа представляют интерес для последующего исследования. На данном этапе анализ эмоциональной окраски отдельных текстовых сегментов можно считать завершенным.
Общий анализ тональностей текстов
Мне стало интересно также привести общий график, по которому можно было бы посмотреть, какой роман является самым позитивно окрашенным, а какой — самым негативным. При этом стоит учитывать, что роман «Братья Карамазовы» не полный.
dostoevsky_total <- dostoevsky_sent |>
# Переименовываю для удобства столбцы, зная, как именно doc_id соотносится с названиями романов
mutate(doc_id = recode(doc_id,
"1" = "Преступление и наказание",
"2" = "Идиот",
"3" = "Бесы",
"4" = "Братья Карамазовы"))
sentiment_results <- dostoevsky_total |>
group_by(doc_id) |>
summarise(
avg_sentiment = mean(score),
n_words = n(),
.groups = "drop"
) |>
arrange(desc(avg_sentiment))
knitr::kable(sentiment_results, caption = "Эмоциональное распределение романов: от самого позитивного к самому негативному")| doc_id | avg_sentiment | n_words |
|---|---|---|
| Идиот | 0.0144344 | 14313 |
| Братья Карамазовы | -0.0335675 | 3986 |
| Бесы | -0.3492536 | 18155 |
| Преступление и наказание | -0.7691179 | 11586 |
Визуализируем полученные данные на графике:
# Сортирую романы по среднему значению тональности (убывающее)
sentiment_results <- sentiment_results |>
arrange(desc(avg_sentiment)) |>
mutate(doc_id = factor(doc_id, levels = rev(doc_id))) # Инвертирую график
# Создаю график
ggplot(sentiment_results, aes(x = doc_id, y = avg_sentiment, fill = doc_id)) +
geom_col(color = "#412A26FF", width = 0.9) + # Рамка и ширина столбцов
scale_fill_paletteer_d("colRoz::e_kingii") + # Палитра
coord_flip() + # Горизонтальный график
labs(
x = NULL,
y = "Эмоциональная тональность романов (в среднем)",
title = "Эмоциональное распределение романов Достоевского"
) +
theme_minimal() +
theme(
legend.position = "none",
axis.text.y = element_text(size = 12),
text = element_text(size = 12, family = "serif", color = "#412A26FF"),
axis.text = element_text(color = "#412A26FF")
)Таким образом, самым позитивным романом по среднему значению эмоциональной окраски оказался «Идиот». При этом его положительная тональность не значительнол превышает значения других произведений.
В дальнейшем исследовании рекомендуется ипользовать полный текст «Братьев Карамазовых», при этом желательно применить альтернативный способ сбора данных, чтобы все части романа корректно отображались и учитывались в анализе.
Заключение
В настоящей работе была предпринята попытка анализа эмоциональной тональности «пятикнижия» Достоевского. В рамках проведенного исследования были решены следующие задачи:
- Сформирован корпус текстов «Пятикнижия» Достоевского и подготовлен к цифровому анализу.
- Проанализирована эмоциональная тональность текстов с использованием автоматических методов.
- Проверено сравнение эмоциональной окраски романов, выявлены их характерные особенности.
Основные наблюдения можно сформулировать следующим образом:
- Среди рассмотренных произведений только «Преступление и наказание» начинается с позитивной тональности и завершается негативной, тогда как в «Идиоте» и «Бесах» наблюдается обратная динамика.
- Наиболее часто в начале романов встречается описание главных героев, включающее как внешние, так и внутренние характеристики. Подобная детализация придает текстам Достоевского элементы театральной выразительности.
В дальнейшем исследование может быть углублено путем более детального анализа каждого романа. Это позвли выявить динамику эмоциональной окраски на уровне глав или отдельных эпизодов, учитывать особенности развития персонажей и ключевые тематические аспекты произведений. Такой подход даст более полное представление о худоежственных и психологических особенностях текстов Достоевского.