library(rvest)
library(tidyverse)
<- 'https://librebook.me/the_three_body_problem/vol4/1/'
url <- read_html(url)
html
<- 'https://librebook.me/the_three_body_problem/vol4/2'
url2 <- read_html(url2)
html2
<- 'https://librebook.me/the_three_body_problem/vol4/3'
url3 <- read_html(url3) html3
Задача трех тел
1 О чем?
«Задача трёх тел» — роман китайского писателя-фантаста Лю Цысиня в жанре научной фантастики. Является первой частью трилогии автора «Воспоминания о прошлом земли», но китайские читатели в целом воспринимают трилогию по названию первого романа.
“Неужели основной закон природы – это отсутствие законов? – размышлял Ван. – Возможно ли, что стабильность и порядок – лишь временное динамическое равновесие, достигнутое только в одном уголке Вселенной, маленький островок покоя в океане хаоса?”
2 Обработка данных
Целью данной работы будет попытка провести текстовый анализ первых трех глав романа “Задача трех тел”, используя инструментал языка R для проведения лемматизации, аннотации и построения визуализаций.
Для работы с данными проведем их первичную обработку и подготовку к использованию. Выгружаем текст первых 3 глав произведения с сайта Librebook и читаем с помощью функции read_html.
Затем вытаскиваем текст каждой главы по HTML классу b-chapter.
<- html |>
text_tbl html_element("div.b-chapter") |>
html_text2() |>
as_tibble()
<- html2 |>
text_tbl2 html_element("div.b-chapter") |>
html_text2() |>
as_tibble()
<- html3 |>
text_tbl3 html_element("div.b-chapter") |>
html_text2() |>
as_tibble()
Для удобства работы с текстом, обхединяем данные трех глав в одну таблицу и аннотируем с помощью функции udpipe_annotate.
library(tidytext)
library(tokenizers)
library(udpipe)
#udpipe_download_model(language = 'russian-syntagrus')
<- udpipe_load_model(file = "russian-syntagrus-ud-2.5-191206.udpipe")
syntagrus
<- text_tbl |>
text_joined full_join(text_tbl2)
<- text_joined |>
text_joined full_join(text_tbl3)
<- udpipe_annotate(syntagrus, text_joined$value)
test <- as_tibble(test)
chap_annotated
chap_annotated
3 Некоторые подсчеты
Построим график совместной встречаемости существительных и прилагательных для попытки увидеть ключевую тему первых трех глав.
library(igraph)
library(ggraph)
<- cooccurrence(chap_annotated$lemma, relevant = chap_annotated$upos %in% c("NOUN", "ADJ"), skipgram = 1) |>
cooc as_tibble() |>
::filter(cooc > 2)
dplyr
<- graph_from_data_frame(cooc)
wordnetwork 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)
<- chap_annotated |>
nouns ::filter(upos %in% "NOUN") |>
dplyrcount(lemma) |>
arrange(-n)
nouns
wordcloud2(nouns,
shape = 'star',
size = 0.7,
backgroundColor = "black",
color = "skyblue",
fontWeight = "normal",
)
4 Выводы
В результате текстового анализа первых трех глав романа “Задача трех тел” с использованием инструментала языка R для проведения лемматизации, аннотации и построения визуализаций, удалось получить самые часто используемые существительные в произведении, а также связку совместно встречаемых существительных и прилагательных в тексте. Можно увидеть, что чаще всего встречаются слова, так или иначе отражающие цепочку основных событий в тексте: эпоху Культурной революции (революция, хунвэйбин, реакционер, отряд и т.д.), маоистскую идеалогию, науку в эту эпоху (профессор, теория, взгляд, книга, студент), слова “год” и “отец” являются самыми распространенными в тексте, что кажется, вполне разумным, учитывая, что повествование носит ретроспективный характер (главная героиня вспоминает прошлое, “те годы”), а вокруг отца главной героини разворачивается основная трагедия ужасов той эпохи.
“В холодном ночном небе зимы 1969 года Е Вэньцзе видела лишь облака и бесчисленные звезды.”