“В 90-м году я умирал — просто действительно физически умирал…”,“Я думал, что это такое — энцефалит, не энцефалит? Страшно было действительно. А через какое-то время — дней через десять — я понял, что это можно претерпеть. Самое неприятное в этом состоянии — это не то, что 41 градус постоянно, а то, что не спишь… невозможно уснуть… И вот это было бессонное состояние, которое продолжалось около сорока дней… В течение которого я в некий момент начал творить. И альбом «Прыг-скок» — это вещь оттуда.”
Так описывал Егор Летов свою работу над альбомом “Прыг-Скок”, альбомом, который вместе с “Сто Лет Одиночества” стал переломным моментом в творчестве Летова и всех связанных с ним творческих проектов.Помимо тяжелого физического состояния, Егор начинает принимать ЛСД и другие психоделики.У него происходит переоценка ценностей, а вместе с ней так называемый переход от социальности к метафизики. Песни теряют свою политическую окраску и дух протеста, а заместо им приходят космос,размышления на тему смерти и попытки выйти за грань человеческого понимания. В данной лабораторной работе я постараюсь пронаблюдать изменения в творчестве Егора, сравнивая два периода: До “Прыг-скока” и после. Для этого я хочу выделить характерные слова для обоих периодов и сравнить их.
В качестве источника своих данных я использовал сайт http://grob-hroniki.org/, где смог найти 600 произведений(стихи и песни) за авторством Егора Летова. Суммарно данный корпус составил порядка сорока тысяч слов. Для сравнения двух периодов я использовал дату написания и выделил первый период как 1982-1989 год и второй как 1990-2007, и корпусы составили 23 и 17 тысяч слов соответственно. В качестве фокусного корпуса я выбрал период 1990-2007, однако для полноты картины все метрики высчитывались в обе стороны(специфичность фокусного относительно референсного и наоборот).Такой шаг я предпринял для того что бы увидеть не только какие слова стали более частыми, но и какие стали менее частыми. Примечание: В дальнейшей работе существуют два фактора, влияющих на качество результатов. Во-первых, специфика жанра песни с ее струтурой и ,как результат, повторение частей песен и ,соответсвенно, слов. И во-вторых, сайт предоставлял данные о произведении в неструктурированном виде.Ввиду этого, примечания и альтернативные версии могли попасть в конечнные данные. К сожалению, на стадии скачивании данных эта проблема не была исправлена.
Провел лемматизацию и токенизацию на обоих корпусах.Список стандартных стоп-слов был дополнен словами, обнаруженными как частыми и не имеющих ценности для работы.
rustopwords = data.frame(words =c(stopwords("ru"),c("это","всё","свой","мой","наш","ваш","я","мы","ты","твой","все","лишь","моё","б","ооо","ещё","оно","своё","мои","нам")),stringsAsFactors=FALSE)
Для каждого корпуса были построены частотные списки.
| Слово | Кол-во |
|---|---|
| словно | 118 |
| земля | 74 |
| небо | 72 |
| день | 46 |
| значит | 43 |
| мир | 43 |
| глаз | 36 |
| рука | 33 |
| знать | 31 |
| ночь | 31 |
| Слово | Кол-во |
|---|---|
| умирать | 78 |
| лицо | 75 |
| глаз | 70 |
| рука | 66 |
| словно | 62 |
| идти | 58 |
| ленин | 58 |
| небо | 58 |
| становиться | 57 |
| стимул | 55 |
table = dplyr::left_join(spisok2,spisok1, by = "words")
table[is.na(table)] = 0
table <- table %>%
rename(FC = n.x,RC = n.y)
В качестве Add-N я выбрал 100, потому что опытным путем были получены наиболее правдаподобные результаты. Сравним частоты слов в фокусном и референсом корпусах:
table1 <- table
table1$FC = table1$FC + 100
table1$RC = table1$RC + 100
table1$ipm_fc = table1$FC/sum(table1$FC)*1000000
table1$ipm_rc = table1$RC/sum(table1$RC)*1000000
table1 <- mutate(table1, Ratio = round((ipm_fc/ipm_rc),3))
table1 <- select(table1,words,Ratio)
table1F <- table1[order(-table1$Ratio),]
table1R <- table1[order(table1$Ratio),]
| Слово | Соотношение | |
|---|---|---|
| 1 | словно | 1.341 |
| 19 | родина | 1.266 |
| 17 | радуга | 1.238 |
| 5 | значит | 1.178 |
| 75 | дурачок | 1.146 |
| 76 | прыг | 1.146 |
| 77 | скок | 1.146 |
| 2 | земля | 1.141 |
| 39 | гореть | 1.139 |
| 86 | полететь | 1.136 |
| Слово | Соотношение | |
|---|---|---|
| 232 | умирать | 0.605 |
| 48 | лицо | 0.678 |
| 716 | хороший | 0.691 |
| 2666 | звучать | 0.694 |
| 95 | идти | 0.713 |
| 137 | давать | 0.726 |
| 169 | который | 0.739 |
| 55 | убивать | 0.769 |
| 58 | тело | 0.772 |
| 572 | красный | 0.785 |
Отношение правдоподобия - метрика показывающая наиболее специфичные в обоих корпусах:
table2 <- table
table2$FC = table2$FC + 100
table2$RC = table2$RC + 100
Logll = function(a, b) {
c = sum(a)
d = sum(b)
E1 = c * ((a + b) / (c + d))
E2 = d * ((a + b) / (c + d))
return(2*((a*log(a/E1+1e-7)) + (b*log(b/E2+1e-7))))
}
table2 <- mutate(table2, G2 = round(Logll(FC,RC),2)) %>% arrange(desc(G2))
| Слово | FC | RC | G2 |
|---|---|---|---|
| умирать | 108 | 178 | 17.55 |
| лицо | 119 | 175 | 10.92 |
| хороший | 104 | 150 | 8.53 |
| словно | 218 | 162 | 8.09 |
| звучать | 101 | 145 | 8.06 |
| идти | 113 | 158 | 7.66 |
| давать | 110 | 151 | 6.61 |
| который | 109 | 147 | 5.79 |
| убивать | 118 | 153 | 4.65 |
| тело | 117 | 151 | 4.44 |
Для данной метрики не требуется нормальзация, однако для более интересных результатов, я проигнорирую слова с частностью 0 в референсом корпусе:
table3 = table
table3$s = table3$FC + table3$RC
table3$pmi_FC = round(log(table3$FC/sum(table3$FC)/(table3$s/sum(table3$s))),4)
table3$pmi_RC = round(log(table3$RC/sum(table3$RC)/(table3$s/sum(table3$s))),4)
table3 <-filter(select(arrange(table3,desc(pmi_FC)),words,pmi_FC,pmi_RC),pmi_RC !="-Inf")
table3F <- select(table3,words,pmi_FC)[1:10,]
table3R <-arrange(select(table3,words,pmi_RC),desc(pmi_RC))[1:10,]
| Слово | PMI_FC |
|---|---|
| плыть | 0.5396 |
| света | 0.5396 |
| зола | 0.5327 |
| вовсе | 0.5244 |
| неведомый | 0.5244 |
| радуга | 0.5179 |
| мимо | 0.5143 |
| молоко | 0.5143 |
| простор | 0.5143 |
| сопли | 0.5143 |
| Слово | PMI_RC |
|---|---|
| звучать | 0.7505 |
| иван | 0.7361 |
| равно | 0.7280 |
| боевой | 0.7259 |
| рок | 0.7259 |
| поганый | 0.7237 |
| собирать | 0.7212 |
| анархист | 0.7153 |
| ребенок | 0.7153 |
| подвал | 0.7118 |
Данная метрика выявила совершенно новые специфичные слова! Примечательно, что она выявило довольно много “проблемных” слов - те, которые повторяются скорее в одной песне и из-за этого специфичные(рок,иван,прыг,скок) ## Логарифм отношения шансов (Log-Odds) Также нормализуем:
table4 <- table
table4$FC = table4$FC + 100
table4$RC = table4$RC + 100
table4$odd_FC = table4$FC/(sum(table4$FC) - table4$FC)
table4$odd_RC = table4$RC/(sum(table4$RC) - table4$RC)
table4$log_oddsF = round(log(table4$odd_FC/table4$odd_RC),4)
table4$log_oddsR = round(log(table4$odd_RC/table4$odd_FC),4)
table4F <- select(arrange(table4,desc(log_oddsF)),words,log_oddsF)[1:10,]
table4R <- select(arrange(table4,desc(log_oddsR)),words,log_oddsR)[1:10,]
| Слово | Log Odds |
|---|---|
| словно | 0.2936 |
| родина | 0.2357 |
| радуга | 0.2139 |
| значит | 0.1637 |
| дурачок | 0.1364 |
| прыг | 0.1364 |
| скок | 0.1364 |
| земля | 0.1318 |
| гореть | 0.1301 |
| полететь | 0.1276 |
| Слово | Log Odds |
|---|---|
| умирать | 0.5032 |
| лицо | 0.3892 |
| хороший | 0.3698 |
| звучать | 0.3651 |
| идти | 0.3387 |
| давать | 0.3203 |
| который | 0.3026 |
| убивать | 0.2632 |
| тело | 0.2586 |
| красный | 0.2419 |
Как можно заметить, данная метрика почти не отличается от отношения частностей.
Здесь как с Log-likehood буду выражены наиболее специфичные из обоих корпусов вместе, метрика не нуждается в ручному сглажевании данных, так как это заложено в функцию:
fc <-mutate(spisok2,corpus = "FC")
rc <- mutate(spisok1,corpus = "RC")
table5 <- rbind(fc,rc)
table5 <- select(arrange(bind_log_odds(table5,corpus, words, n),-log_odds_weighted),words,corpus,log_odds_weighted)[1:10,]
| Слово | Корпус | Weighted Log-Odds |
|---|---|---|
| ленин | RC | 4.727781 |
| стимул | RC | 4.603343 |
| родина | FC | 4.020262 |
| версия | RC | 3.508108 |
| насрать | RC | 3.161418 |
| альбом | RC | 3.099903 |
| дурачок | FC | 2.994983 |
| прыг | FC | 2.994983 |
| скок | FC | 2.994983 |
| левый | RC | 2.973088 |
Как результат,данная метрика выделила “проблемные” слова из другой категории - слова-примечания и другие версии(версия и альбом)
Выделю общие выводы на основе всех метрик:
В целом, данные наблюдения подтверждают утверждение о переходе “от социальности к метафизики”. Несмотря на проблемные слова, я считаю результаты работы успешными и доказывающими точку зрения, изложенную в введении.