Владимир Ленин - ГОСУДАРСТВО И РЕВОЛЮЦИЯ

Автор

Богданович Артем

Дата публикации

24 октября 2025 г.

1 Введение

Цель данного проекта — провести количественный и визуальный анализ текста В. И. Ленина «Государство и революция». Исследование направлено на выявление ключевых слов, частотных закономерностей, контекстов употребления основных терминов и семантических связей между словами. + немного про эмоции и настрой Владимира Ильича. Выбрана тема была не просто так - около 5-6 лет автор принимал активное участие в общественной жизни и увлекался работами социалистических мыслителей(Маркс, Энгельс, франкфрутская школа + неомарксисты, немного Ленин).

2 Использованные библиотеки

library(pdftools)     # для извлечения текста из PDF
library(dplyr)        # для манипуляций с данными
library(tidytext)     # для токенизации текста
library(stringr)      # для регулярных выражений
library(ggplot2)      # для графиков
library(wordcloud)    # для облака слов
library(RColorBrewer) # цветовые палитры
library(stopwords)    # список стоп-слов

3 Импорт и предварительная обработка текста:

PDF-документ был преобразован в текстовый формат, очищен от знаков препинания и приведён к нижнему регистру.

pdf_file <- "stateandrevolution.pdf"
text <- pdf_text(pdf_file)
text <- paste(text, collapse = " ") # объединяем все страницы в один текст

text_clean <- text %>%
  str_replace_all("[^[:alpha:]\\s]", " ") %>% # оставляем только буквы и пробелы
  str_squish() %>%                            # убираем лишние пробелы
  tolower()                                   # переводим в нижний регистр

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

# Токенизация
tokens <- tibble(text = text_clean) %>%
  unnest_tokens(word, text)

# 5. Удаляем русские стоп-слова
russian_stop_words <- c(stopwords("ru", source = "snowball"), "это", "так", "как", "также")  #их тоже вписал, потому что часто мешались
tokens_clean <- tokens %>%
  filter(!word %in% russian_stop_words)

4 Вычислена частота слов

…и построены визуализации, включая гистограммы топ-10 слов и облако слов. Это позволило определить наиболее значимые лексические единицы, такие как «революция», «государство», «маркс» и «пролетариат».

5 Слово “именно” - чем оно примечательно?

Известно, что Ленин любил поспорить, “прибить” своих оппонентов, а потому его манера общения часто имела спортивный характер - стремление к усилениям, к этим “именно” - не просто так. Слово “именно” определенно имеет полемический характер - “именно пролетариат”, “именно советская власть”, “именно революция…” и т.д. (Именно “это”, но не “что-то другое”).

ggplot(top_words, aes(x = reorder(word, n), y = n)) +
  geom_col(fill = "steelblue", alpha = 0.8) +
  geom_text(aes(label = n), hjust = -0.2, size = 3.5) +
  coord_flip() +
  labs(title = "Топ-10 слов в 'Государство и революция'",
       x = "Слово", y = "Частота") +
  theme_minimal() +
  theme(plot.title = element_text(face = "bold"))
  
set.seed(123) 
par(bg = "white")
wordcloud(words = freq$word, 
          freq = freq$n, 
          max.words = 50, 
          colors = brewer.pal(8, "Dark2"),
          scale = c(3, 0.5))

6 Контекстный анализ

С использованием регулярных выражений извлечены фрагменты текста вокруг ключевых слов «революция» и «государство», что позволяет проследить, в каких контекстах Ленин использует эти термины.

contexts <- str_extract_all(text_clean, ".{0,30}(революци[яи]|государств[оа]).{0,30}")
first_contexts <- head(unlist(contexts), 5)
for(i in 1:length(first_contexts)) {
  cat(i, ":", first_contexts[i], "\n\n")
}

words <- unlist(str_split(text_clean, "\\s+"))

get_neighbors <- function(word, words_vector, window = 3){
  positions <- which(words_vector == word)
  neighbors <- c()
  for(pos in positions){
    start <- max(1, pos - window)
    end <- min(length(words_vector), pos + window)
    neighbors <- c(neighbors, words_vector[start:end])
  }
  neighbors <- neighbors[neighbors != word]
  freq_table <- table(neighbors) %>% 
    as.data.frame(stringsAsFactors = FALSE) # важно!
  return(freq_table)
}

neighbors_rev <- get_neighbors("революция", words)
neighbors_gos <- get_neighbors("государство", words)

В целом, данные говорят сами за себя. Слова “отмирает” и “исчезнет” - определенно речь идет про коммунизм, когда государства как такового не будет. А “свободное” и “народное” - про будущее советской власти. Возьмем во внимание, что написано это было в августе - сентябре 1917 года. Эта работа должна была потенциально привлечь и рабочих, и интеллигенцию ) Чем же привлечь в 1917 году, в период кризисов и проблем на фронте? Конечно же “свободным и народным”!

library(SnowballC)
tokens_clean <- tokens_clean %>%
  mutate(stem = wordStem(word, language = "russian"))

stem_freq <- tokens_clean %>% 
  count(stem, sort = TRUE) %>% 
  slice_max(n, n = 10)
print(stem_freq)
cat("\n")

ggplot(stem_freq, aes(x = reorder(stem, n), y = n)) +
  geom_col(fill = "darkgreen", alpha = 0.8) +
  geom_text(aes(label = n), hjust = -0.2, size = 3.5) +
  coord_flip() +
  labs(title = "Топ-10 основ слов",
       x = "Основа слова", y = "Частота") +
  theme_minimal() +
  theme(plot.title = element_text(face = "bold"))

7 Стемминг

Я применил стемминг - метод приведения слов к их основе. Библиотека Snowball находит корень слова, объединяя все его формы. Теперь все варианты “государства” превращаются в основу “государств”, и я вижу реальную частоту этой концепции

Семантическое ядро текста включает такие слова как класс, общество, вопрос, власть. Очевидно, что тут скорее речь идет про “вопрос власти”, который назрел в период двоевластия(логично).

Революции еще нет. Большевики не у власти. В самом начале 1917 года Ленин выступил с речью, которая полна пессимизма :

 «Мы, старики, может быть, не доживем до решающих битв этой грядущей революции».

Так верил ли Ленин в революцию?

Посмотрим на этот момент с помощью сентимент-анализа(анализ самый простой).

positive_words <- c(
  "свобода", "освобождение", "прогресс", "развитие", "справедливость",
  "равенство", "братство", "труд", "пролетариат", "революция", 
  "социализм", "коммунизм", "демократия", "советы", "советский",
  "интернационал", "солидарность", "коллективный", "народный"
)

negative_words <- c(
  "угнетение", "эксплуатация", "насилие", "принуждение", "буржуазия",
  "капитализм", "реакция", "контрреволюция", "империализм", "капиталист",
  "помещик", "олигархия", "спекуляция", "паразитический", "агрессия"
)

sentiment_analysis <- tokens_clean %>%
  mutate(sentiment = case_when(
    word %in% positive_words ~ "положительный",
    word %in% negative_words ~ "отрицательный",
    TRUE ~ "нейтральный"
  )) %>%
  filter(sentiment != "нейтральный") %>%
  count(sentiment, sort = TRUE)

print(sentiment_analysis)
cat("\n")

8 Какие итоги?

8.1 Ключевые концепции работы

центральными понятиями являются:

«Государство» (в формах «государство», «государства», «государственный»),

«Революция»

Имена основоположников марксизма — «Маркс» и «Энгельс».

8.2 Государство?

«Государство» часто соседствует с эпитетами «свободное», «народное», «буржуазное», а также с глаголами «отмирает», «исчезнет», что отражает ленинскую идею об отмирании государства после пролетарской революции.

«Революция» сочетается с определениями «пролетарская», «народная», «французская», что указывает на её историческую и классовую конкретизацию.

8.3 Уверен ли Ленин?

Простой сентимент-анализ показал преобладание положительной лексики (164 случая) над отрицательной (34). Это может говорить об оптимистическом, уверенном тоне Ленина в отношении революционных перспектив, хотя метод стоит уточнять более детальным словарём/сложным подбором/глубоким методом.