Задача трех тел

Автор

Елена Тарбокова

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

30 ноября 2024 г.

Аннотация
Воспоминания о прошлом Земли.

1 О чем?

«Задача трёх тел» — роман китайского писателя-фантаста Лю Цысиня в жанре научной фантастики. Является первой частью трилогии автора «Воспоминания о прошлом земли», но китайские читатели в целом воспринимают трилогию по названию первого романа.

Википедия

“Неужели основной закон природы – это отсутствие законов? – размышлял Ван. – Возможно ли, что стабильность и порядок – лишь временное динамическое равновесие, достигнутое только в одном уголке Вселенной, маленький островок покоя в океане хаоса?”

2 Обработка данных

Целью данной работы будет попытка провести текстовый анализ первых трех глав романа “Задача трех тел”, используя инструментал языка R для проведения лемматизации, аннотации и построения визуализаций.

Для работы с данными проведем их первичную обработку и подготовку к использованию. Выгружаем текст первых 3 глав произведения с сайта Librebook и читаем с помощью функции read_html.

library(rvest)
library(tidyverse)

url <- 'https://librebook.me/the_three_body_problem/vol4/1/'
html <- read_html(url)

url2 <- 'https://librebook.me/the_three_body_problem/vol4/2'
html2 <- read_html(url2)

url3 <- 'https://librebook.me/the_three_body_problem/vol4/3'
html3 <- read_html(url3)

Затем вытаскиваем текст каждой главы по HTML классу b-chapter.

text_tbl <- html |>
  html_element("div.b-chapter") |> 
  html_text2() |>
  as_tibble()

text_tbl2 <- html2 |>
  html_element("div.b-chapter") |> 
  html_text2() |>
  as_tibble()

text_tbl3 <- html3 |>
  html_element("div.b-chapter") |> 
  html_text2() |>
  as_tibble()

Для удобства работы с текстом, обхединяем данные трех глав в одну таблицу и аннотируем с помощью функции udpipe_annotate.

library(tidytext)
library(tokenizers)
library(udpipe)

#udpipe_download_model(language = 'russian-syntagrus')
syntagrus <- udpipe_load_model(file = "russian-syntagrus-ud-2.5-191206.udpipe")

text_joined <- text_tbl |>
  full_join(text_tbl2)

text_joined <- text_joined |>
  full_join(text_tbl3)

test <- udpipe_annotate(syntagrus, text_joined$value)
chap_annotated <- as_tibble(test)

chap_annotated

3 Некоторые подсчеты

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

library(igraph)
library(ggraph)

cooc <- cooccurrence(chap_annotated$lemma, relevant = chap_annotated$upos %in% c("NOUN", "ADJ"), skipgram = 1) |> 
  as_tibble() |>
  dplyr::filter(cooc > 2)

wordnetwork <- graph_from_data_frame(cooc)
ggraph(wordnetwork, layout = "fr") +
  geom_edge_link(aes(width = cooc), alpha = 0.8, edge_colour = "grey90", show.legend=FALSE) +
  geom_node_label(aes(label = name), col = "#1f78b4", size = 4) +
  theme_void() +
  labs(title = "Совместная встречаемость существительных и прилагательных")

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

Выясним, какие существительные Лю Цысинь использует чаще всего и проиллюстрируем это в виде облака слов для наглядности.

library(wordcloud2)

nouns <- chap_annotated  |> 
  dplyr::filter(upos %in% "NOUN") |>
  count(lemma) |> 
  arrange(-n) 
nouns
wordcloud2(nouns, 
           shape = 'star',
           size = 0.7,
           backgroundColor = "black",
           color = "skyblue", 
           fontWeight = "normal",
)

4 Выводы

В результате текстового анализа первых трех глав романа “Задача трех тел” с использованием инструментала языка R для проведения лемматизации, аннотации и построения визуализаций, удалось получить самые часто используемые существительные в произведении, а также связку совместно встречаемых существительных и прилагательных в тексте. Можно увидеть, что чаще всего встречаются слова, так или иначе отражающие цепочку основных событий в тексте: эпоху Культурной революции (революция, хунвэйбин, реакционер, отряд и т.д.), маоистскую идеалогию, науку в эту эпоху (профессор, теория, взгляд, книга, студент), слова “год” и “отец” являются самыми распространенными в тексте, что кажется, вполне разумным, учитывая, что повествование носит ретроспективный характер (главная героиня вспоминает прошлое, “те годы”), а вокруг отца главной героини разворачивается основная трагедия ужасов той эпохи.

“В холодном ночном небе зимы 1969 года Е Вэньцзе видела лишь облака и бесчисленные звезды.”

(Cixin 2006)

использованная литература

Cixin, Liu. 2006. «Three-Body Problem».