Романы-антиутопии крепко заняли свою нишу в отечественной и мировой литературе. Однако, существует мнение, что большинство произведений данного жанра имеет очень схожий сюжет, персонажей и атмосферу и от того такие книги не должны расцениваться как действительно ценные ячейчки мировой культуры. В данной лабораторной работе я постараюсь разобраться в специфики жанра антиутопия и найти различия в их тематическом содержании с помощью модели латентного размещения Дирихле. В качестве корпуса были выбрана 4 наиболее популярных произведения в жанре антиутопия: “Мы” Евгения Замятина,“О дивный новый мир” Хаксли,“451 градус по Фаренгейту” Брэдбери и “1984” Джорджа Оруэлла
В комбинации эти 4 произведения дали порядка 130000 неуникальных слов после удаления стоп-слов, цифр и знаков пунктуации. Также, была выполнена лемматизация, затем корпус был разделен на одинаковые документы по 1000 слов на каждый, такое исскуственное деление было вынужденым, так как деление по главам или частям выдавало слишком большие документы. Помимо стандартных, в список стоп слов были добавлены именна главных героев книг.
rustopwords = data.frame(word =c(stopwords("ru"),"это","всё","весь","свой","мой","версия","альбом","наш","ваш","я","мы","ты","твой","все","лишь","моё","б","ооо","ещё","оно","своё","мои","нам","тот","бернард","уинстон","джулия","обрайен","ленайна","ленайн","линда","джон","гельмгольц","генри","монтэг","битти","милдред","монтэга","фанни","фабер","мустафа","фостер","линда","форд"),stringsAsFactors=FALSE)
Перед тем как мы могли бы построить нашу модель, нужно выяснить оптимальное количество тем. Построив несколько моделей в пределах разумных значений ,с вычислительной точки зрения, мы видим как варируется coherence score в зависимости от количества тем. Можно сделать вывод что 8 тем наиболее оптимальное количество. ## Построение модели Для начала мы должны построить doc-term матрицу, на основе которой будет построена наша модель. Помимо отдельных слов, матрица захватывает биграммы, а также повторно отчищает данные от лишнего шума.
dtm <- CreateDtm(doc_vec = tokens$text,
doc_names = tokens$Num,
ngram_window = c(1, 2),
stopword_vec = c(stopwords::stopwords("ru"),
stopwords::stopwords(source = "smart")),
lower = TRUE,
remove_punctuation = TRUE,
remove_numbers = TRUE,
verbose = FALSE)
dtm <- dtm[,colSums(dtm) > 2]
Для воспроизводимых результатов устанавливаем seed. Параметры были подобраны на глаз, однако многие вариации были опробованы
set.seed(12345)
model <- FitLdaModel(dtm = dtm,
k = 8,
iterations = 500,
burnin = 400,
alpha = 0.1,
beta = 0.01,
optimize_alpha = TRUE,
calc_likelihood = TRUE,
calc_coherence = TRUE,
calc_r2 = FALSE,
cpus = 8)
| topic | coherence | prevalence | top_terms | |
|---|---|---|---|---|
| 8 | 8 | 0.022 | 20.438 | рука, знать, глаз, хотеть, видеть, голова, дверь, увидеть, нога, лицо, почему, мир, уходить, слово, ночь, белый, черный, должный, слышать, воздух |
| 6 | 6 | 0.008 | 20.019 | мочь, лицо, становиться, понимать, день, голос, женщина, идти, снова, думать, комната, тело, стоять, смотреть, друг, взять, место, несколько, время, приходить |
| 2 | 2 | 0.020 | 14.206 | каждый, год, время, давать, новый, самый, чувство, ребенок, хотя, четыре, вид, очень, большой, случай, смерть, жить, приходиться, любовь, продолжать, первый |
| 7 | 7 | 0.046 | 10.680 | который, война, становиться, мир, книга, век, власть, цель, смысл, должный, самый, либо, наука, ибо, революция, группа, общество, история, свобода, возможность |
| 5 | 5 | 0.112 | 10.081 | стена, древний, самый, розовый, ясно, понимать, мочь, единый, вниз, говорить, синий, знать, стеклянный, глаз, завтра, день, запись, стол, последний, нумер |
| 4 | 4 | 0.076 | 8.664 | партия, слово, который, знать, телекран, год, старший, брат, мочь, старший_брат, министерство, существовать, новояз, океания, мысль, самый, кроме, победа, дело, прошлое |
| 1 | 1 | 0.196 | 8.036 | дикарь, директор, затем, главноуправитель, мистер, сом, голос, бутыль, слово, говорить, зал, студент, монд, эпсилон, повторять, вертоплан, отвечать, девушка, принимать, дельта |
| 3 | 3 | 0.023 | 7.876 | книга, который, словно, говорить, дом, стена, огонь, отвечать, город, пес, река, улица, сжигать, пожарный, миссис, бежать, сделать, дома, снова, делать |
| Система | Жизнь | Движение | Старший брат | Описательные выражания | Неизвестно | Прогресс | Непонятно |
|---|---|---|---|---|---|---|---|
| дикарь | каждый | книга | партия | стена | мочь | который | рука |
| директор | год | который | слово | древний | лицо | война | знать |
| затем | время | словно | который | самый | становиться | становиться | глаз |
| главноуправитель | давать | говорить | знать | розовый | понимать | мир | хотеть |
| мистер | новый | дом | телекран | ясно | день | книга | видеть |
| сом | самый | стена | год | понимать | голос | век | голова |
| голос | чувство | огонь | старший | мочь | женщина | власть | дверь |
| бутыль | ребенок | отвечать | брат | единый | идти | цель | увидеть |
| слово | хотя | город | мочь | вниз | снова | смысл | нога |
| говорить | четыре | пес | старший_брат | говорить | думать | должный | лицо |
| зал | вид | река | министерство | синий | комната | самый | почему |
| студент | очень | улица | существовать | знать | тело | либо | мир |
| монд | большой | сжигать | новояз | стеклянный | стоять | наука | уходить |
| эпсилон | случай | пожарный | океания | глаз | смотреть | ибо | слово |
| повторять | смерть | миссис | мысль | завтра | друг | революция | ночь |
| вертоплан | жить | бежать | самый | день | взять | группа | белый |
| отвечать | приходиться | сделать | кроме | запись | место | общество | черный |
| девушка | любовь | дома | победа | стол | несколько | история | должный |
| принимать | продолжать | снова | дело | последний | время | свобода | слышать |
| дельта | первый | делать | прошлое | нумер | приходить | возможность | воздух |
Непонятно
Неизвестно
Прогресс
Описательные выражения
Система
Жизнь
Движение
Старший брат
В целом, результаты схожи с дендрамой.
Ну и в конце мы можем посмотреть распространенность каждой темы в наших книгах: Примечатльно, что в каждой книге есть категория которая очень специфична именно для этой книги. Видимо, где-то могла быть допущена ошибка в наших методах.Несмотря на то, что некоторые темы оказались совсем нерепрезентативными, мы все равно можем найти схожие образы во всех книгах. Так, тема “Система” оказалась более менее предствлена в каждой книги, это может означать что антиутопии в основном фокусируются на прогнивших институтах общества. неизвестные и непонятные темы вместе с описательными выражениями хоть и представлены во всех книгах, никакого вывода дать нам, к сожалению, не могут.