‘No Surprises’ or ‘I Might Be Wrong’: о чём студийные альбомы Radiohead?

И чем они могут отличаться

Author

Оксана Цегоева

1 Идея мини-исследования

Radiohead — британская группа, определить музыкальный стиль которой довольно сложно. Впрочем, в некоторых альбомах определенно есть “преобладающие” стили, что связано с нежеланием группы оставаться в одном жанре. Например, в первых двух студийных альбомах — Pablo Honey (1993) и The Bends (1995) — в основном песни можно отнести к различным жанрам рока, в OK Computer (1997) мы сталкиваемся с эксперементальной смесью рока и электронной музыки, а в Kid A (2000) преобладает уже электроника. Итак, неудивительно, что альбомы Radiohead, выходящие с 1993 по 2016 год, ввиду творческих поисков и развития технологий в том числе и в музыкальной индустрии, отличаются друг от друга по звучанию.

Можно ли уловить различия в текстах альбомов? Всё-таки за более чем 20 лет произошло много событий, которые не могли не повлиять на творчество группы. Именно это мы и попробуем рассмотреть в данной работе.

2 Получение данных

В рамках данного исследования я решила обкачать сайт (такой-то), поскольку там собраны все песни, и можно легко получить доступ.

library(rvest)
library(dplyr)
library(stringr)
library(tidyverse)
library(tidytext)
library(stopwords)
library(textstem)
library(wordcloud)
library(RColorBrewer)

Один из ресурсов, где можно найти информацию о всех альбомах, песнях и текстах группы — SongMeanings, который довольно легко обкачивать.

rhtml <- read_html("https://songmeanings.com/artist/view/discography/200/")

#получаем информацию о дискографии
rh_discography <- rhtml |> 
  html_elements(".album-holder.albums-list") |>
  html_elements(".text") |>
  html_elements("a") 

#теперь мы достаём ссылки на альбомы
hrefs <- rh_discography |>
  html_attr("href")
  
hrefs <- paste0("https://songmeanings.com", hrefs)

#и их названия
titles <- rh_discography |>
 html_attr("title")


#создаем таблицу из названий альбомов и ссылок на них
rh <- tibble(album_title = titles, album_href = hrefs)

knitr::kable(head(rh))
album_title album_href
A Moon Shaped Pool https://songmeanings.com/albums/view/tracks/280180/
See album details https://songmeanings.com/albums/view/tracks/280180/
Airbag/How Am I Driving? https://songmeanings.com/albums/view/tracks/7361/
See album details https://songmeanings.com/albums/view/tracks/7361/
Amnesiac https://songmeanings.com/albums/view/tracks/57/
See album details https://songmeanings.com/albums/view/tracks/57/

Я хочу посмотреть на основные альбомы группы, поэтому таблицу нужно будет отфильтровать. Во-первых, вместе с названиями и ссылками на альбомы спарсились еще и так называемые “See album details”, которые на самом тоже содержат в себе ссылки на альбомы. Во-вторых, здесь собрано много мини-сборников группы, которые часто включают в себя песни из студийных альбомов. Итак, укажем студийные альбомы и добавим информацию о годах выпуска:

#дополнительно можем получить информацию о годах
years_info <- rhtml |>
  html_elements(".album-holder.albums-list") |>
  html_elements("li") |>
  html_text2()

years <- unlist(str_extract_all(years_info, "\\d{4}\\-\\d{2}\\-\\d{2}"))
years <- str_replace_all(years, "\\-\\d{2}\\-\\d{2}", "")


rh <- rh |>
  filter(album_title != "See album details") |>
  mutate(year = years) |>
  filter(album_title == "Pablo Honey" | album_title == "The Bends"
         | album_title == "OK Computer" | album_title == "Kid A" | album_title == "Amnesiac"
         | album_title == "Hail to the Thief" | album_title == "In Rainbows"
         | album_title == "The King of Limbs" | album_title == "A Moon Shaped Pool") |>
  arrange(year) #сортируем альбомы по датам выхода

knitr::kable(rh)
album_title album_href year
Pablo Honey https://songmeanings.com/albums/view/tracks/53/ 1993
The Bends https://songmeanings.com/albums/view/tracks/54/ 1995
OK Computer https://songmeanings.com/albums/view/tracks/55/ 1997
Kid A https://songmeanings.com/albums/view/tracks/56/ 2000
Amnesiac https://songmeanings.com/albums/view/tracks/57/ 2001
Hail to the Thief https://songmeanings.com/albums/view/tracks/2187/ 2003
In Rainbows https://songmeanings.com/albums/view/tracks/14461/ 2007
The King of Limbs https://songmeanings.com/albums/view/tracks/257755/ 2011
A Moon Shaped Pool https://songmeanings.com/albums/view/tracks/280180/ 2016

Это то, что нам нужно! Теперь мы можем пройтись по каждой ссылке и собрать сначала ссылки на песни, а потом уже и тексты песен.

Примечание: на данном сайте в основных альбомах также были указаны композиции, которые не попали в студийные альбомы, однако были написаны в период его создания, поэтому их наличие не противоречит работе

#получаем песни из каждого основного альбома
get_songs <- function(album) {
  Sys.sleep(1)
  album_info <- read_html(album) |>
    html_elements(".table-holder") |>
    html_elements("a")
  
  album_tibble <- tibble(song_title = html_attr(album_info, "title"),
                         song_href = html_attr(album_info, "href"),
                         album_href = album)
}

#получаем таблицу с названием песни, ссылкой на нее и ссылкой на альбом
songs_tibble <- map_df(pull(rh, album_href), get_songs)

#можем соединить таблицу с информацией об альбомах с songs_tibble по колонке с ссылкой на альбом
album_song_tibble <- full_join(rh, songs_tibble)

В album_song_tibble есть название песни, ссылка на нее и ссылка на соответствующий альбом. Посмотрим на таблицу после добавления туда текстов песен. Сразу же начнем обрабатывать тексты, удаляя знаки препинания.

#достаем тексты
get_songs_texts <- function(song_url) {
  Sys.sleep(1)
  text <- read_html(song_url) |>
    html_elements(".none") |>
    html_text2()
  
  text <- str_replace_all(str_to_lower(text), "\n", " ")
  text <- str_replace_all(text, "    ", " ")
  text <- str_replace_all(text, "’", "'")
  text <- str_replace_all(text, "'m", " am")
  text <- str_replace_all(text, "won't", "will not")
  text <- str_replace_all(text, "can't", "can not")
  text <- str_replace_all(text, "n't", " not")
  text <- str_replace_all(text, "'s", " is")
  text <- str_replace_all(text, "'ll", " will")
  text <- str_replace_all(text, "'re", " are")
  text <- str_replace_all(text, "'ve", " have")
  text <- str_replace_all(text, "'d", " would")
  text <- str_replace_all(text, "[[:punct:]]", "")
  text <- str_replace_all(text, "payin", "paying")
  text <- str_replace_all(text, "gonna", "going")
  text <- str_replace_all(text, "\\s$", "")
  text <- str_replace_all(text, "   ", " ")
  text <- str_replace_all(text, "  ", " ")
}

songs_texts <- map(pull(album_song_tibble, song_href), get_songs_texts)

#добавляем текст в таблицу
album_song_text_tibble <- album_song_tibble|>
  mutate(song_text = songs_texts)

#таблица распечатывается некрасиво, поэтому для примера тут показан один альбом
knitr::kable(head(album_song_text_tibble, 1))
album_title album_href year song_title song_href song_text
Pablo Honey https://songmeanings.com/albums/view/tracks/53/ 1993 You https://songmeanings.com/songs/view/582/ you are the sun and moon and stars are you and i could never run away from you you try at working out chaotic things and why should i believe myself not you it is like the world is going to end so soon and why should i believe myself you me and everything caught in the fire i can see me drowning caught in the fire

Теперь объединим тексты песен каждого альбома в один текст. Еще мне показалось удобным соединить название альбома с годом выпуска: на графиках сразу будет отображаться и альбом, и год, да и при дальнейшей обработке данных ничего не растеряется:

texts_to_one <- function(album){
  album_song_text_tibble |>
    filter(album_title == album) |>
    pull(song_text) |>
    str_c(collapse = " ")
}


all_texts <- map(pull(rh, album_title), texts_to_one)

albums_texts = tibble(album = pull(rh, album_title),
                      text = all_texts,
                      year = pull(rh, year)) |>
                unite("album_year", album, year, sep = "_")

knitr::kable(head(albums_texts, 2)) #здесь тоже показано всего 2 альбома, чтобы не занимать слишком много пространства
album_year text
Pablo Honey_1993 you are the sun and moon and stars are you and i could never run away from you you try at working out chaotic things and why should i believe myself not you it is like the world is going to end so soon and why should i believe myself you me and everything caught in the fire i can see me drowning caught in the fire when you were here before could not look you in the eye you are just like an angel your skin makes me cry you float like a feather in a beautiful world and i wish i was special you are so very special but i am a creep i am a weirdo what the heck am i doing here i do not belong here i do not care if it hurts i want to have control i want a perfect body i want a perfect soul i want you to notice when i am not around you are so very special i wish i was special but i am a creep i am a weirdo what the heck am i doing here i do not belong here she is running out again she is running out she is run run run run whatever makes you happy whatever you want you are so very special i wish i was special but i am a creep i am a weirdo what the heck am i doing here i do not belong here i do not belong here he is bitter and twisted he knows what he wants he wants to be low down he wants to belong he wants us to listen he wants us to lead and he was a stupid baby turned into a power freak but how do you how do you how do you he lives with his mother but we show him respect he is a dangerous bigot but we always forget and he is just like his daddy because he cheats on his friends and he steals and he bullies any way that he can how do you how do you how do you and the wise man said i do not want to hear your voice and the thin man said i do not want to hear your voice and they are cursing me and they will not let me be there is nothing to say and there is nothing to do stop whispering stop shouting stop whispering stop shouting and my mother say we do nott love you son some more and the buildings say let me spit on your face some more and the feeling is that there is something wrong cause i can not find the words and i can not find the song stop whispering stop shouting stop whispering stop shouting dear sir i have a complaint dear sir i have a complaint can not remember what it is that is why i am here stop whispering stop whispering stop whispering stop whispering stop shouting been thinking about you your records are here your eyes are on my wall your teeth are over there but i am still no one and you are now a star what do you care been thinking about you and there is no rest shit i still love you still see you in bed but i am playing with myself and what do you care when the other men are far far better all the things you have got all the things you need who bought you cigarettes who bribed the company to come and see you honey i have been thinking about you so how can you sleep these people are not your friends they are paid to kiss your feet they do not know what i know and why should you care when i am not there been thinking about you and there is no rest shit i still love you still see you in bed but i am playing with myself what do you care when i am not there all the things you have got she will never need all the things you have got i have bled and i bleed to please you been thinking about you destiny destiny protect me from the world destiny hold my hand protect me from the world here we are with our running and confusion and i do not see no confusion anywhere and if the world does turn and if london burns i will be standing on the beach with my guitar i want to be in a band when i get to heaven anyone can play guitar and they will not be a nothing anymore grow my hair grow my hair i am jim morrison grow my hair i want to be want to be want to be jim morrison here we are with our running and confusion and i do not see no confusion anywhere and if the world does turn and if london burns i will be standing on the beach with my guitar i want to be in a band when i get to heaven anyone can play guitar and they will not be a nothing anymore soul destroyed with clever toys for little boys it is inevitable inevitable it is a soul destroyed you are free until you drop you are free until you have had enough and you do not understand no ripcord no ripcord no ripcord no ripcord aeroplane do i mean what i mean oh it is inevitable inevitable oh aeroplane a thousand miles an hour on politics and power that she do not understand no ripcord no ripcord no ripcord no ripcord the answer to your prayers we will drop you anywhere no ripcord no ripcord no ripcord no no no ripcord oh yeah i never wanted anything but this i tried hard worked hard i ran around in domestic bliss i fought hard died hard every time you are running over me every time you are running i can see i am not a vegetable i will not control myself i spit on the hand that feels me i will not control myself i never wanted any broken bones scarred face no home your words surround me and i asphyxiate and i burn all hate every time you are running out on me every time you are running i can see i am not a vegetable i will not control myself i spit on the hand that feels me i will not control myself the waters break the waters run all over me the waters break the waters run and this time you are going to pay i am not a vegetable i will not control myself i spit on the hand that feels me i will not control myself i can not afford to breathe in this town nowhere to sit without a gun in my hand hooked back up to the cathode ray i am better off dead i am better off dead i am better off prove yourself prove yourself prove yourself i want to breathe i want to grow i would say i want it but i do not know how i work i bleed i beg i pray but i am better off dead i am better off dead i am better off prove yourself prove yourself prove yourself i am better off dead i am better off dead i am better off prove yourself woh please forget the words that i just blurted out it was not me it was my strange and creeping doubt it keeps rattling my cage and there is nothing in this world will keep it down even though i might even thought i try i can not even though i might even thought i try i can not so many things that keep that keep me underground so many words that i that i can never find if you give up on me now i will be gutted like i have never been before and even though i might even thought i try i can not even though i might even thought i try i can not if you give up on me now i will be gutted like i have never been before and even though i might even thought i try i can not even though i might even thought i try i can not even though i might even thought i try i can not even though i might even thought i try i can not i feel better i feel better now you have gone i got better i got better i got strong i feel better i feel better now there is nothing wrong i got better i got better i got strong tell me something tell me something i do not know tell me one thing tell me one thing let it go i got something i got something heaven knows i got something i got something i do not know in my mind and nailed into my heels all the time killin what i feel and everything i touch turns into stone all wrapped up in crinoline all wrapped up in sugarcoated just in case i blow out i am glued just in case i crack out and everything i touch turns to stone everything i touch turns to stone all wrapped up in crinoline all wrapped up in sugarcoated
The Bends_1995 you can force it but it will not come you can taste it but it will not form you can crush it but it is always here you can crush it but it is always near chasing you home saying everything is broken everyone is broken you can force it but it will stay stung you can crush it as dry as a bone you can walk it home straight from school you can kiss it you can break all the rules but still everything is broken everyone is broken everyone is everyone is broken everyone is everything is broken why can not you forget why can not you forget why can not you forget where do we go from here the words are coming out all weird where are you now when i need you alone on an airplane falling asleep against the window pain my blood will thicken i need to wash myself again to hide all the dirt and pain cause i would be scared that there is nothing underneath and who are my real friends have they all got the bends am i really sinking this slow my baby is got the bends oh no we do not have any real friends no no no i am just lying in a bar with my drip feed on talking to my girlfriend waiting for something to happen and i wish it was the 60s i wish i could be happy i wish i wish i wish that something would happen where do we go from here the planet is a gunboat in a sea of fear and where are you they brought in the cia the tanks and the whole marines to blow me away to blow me sky high baby is got the bends we do not have any real friends i am just lying in a bar with my drip feed on talking to my girlfriend waiting for something to happen and i wish it was the 60s i wish i could be happy i wish i wish i wish that something would i want to live and breathe i want to be part of the human race i want to live and breathe i want to be part of the human race race race where do we go from here the words are coming out all weird where are you now when i need you two jumps in a week i bet you think that is pretty clever do not you boy flying on your motorcycle watching all the ground beneath you drop kill yourself for recognition kill yourself to never ever stop you broke another mirror you are turning into something you are not do not leave me high do not leave me dry do not leave me high do not leave me dry drying up in conversation you will be the one who cannot talk all your insides fall to pieces you just sit there wishing you could still make love they are the ones who will hate you when you think you have got the world all sussed out they are the ones who will spit at you you will be the one screaming out do not leave me high do not leave me dry do not leave me high do not leave me dry oh it is the best thing that you ever had the best thing you ever ever had it is the best thing that you ever had the best thing you have had is gone away ddo not leave me high do not leave me dry do not leave me high do not leave me dry do not leave me high do not leave me high do not leave me dry her green plastic watering can for her fake chinese rubber plant in the fake plastic earth what she bought from a rubber man in a town full of rubber bands to get rid of itself it wears her out it wears her out it wears her out it wears her out she lives with a broken man a cracked polystyreneman who just crumbles and burns he used to do surgery for girls in the eighties but gravity always wins and it wears him out it wears him out it wears him out it wears him she looks like the real thing she tastes like the real thing my fake plastic love but i can not help the feeling i could blow through the ceiling if i just turn and run and it wears me out it wears me out it wears me out it wears me out if i could be who you wanted if i could be who you wanted all the time all the time i do not want to be crippled and cracked shoulders and wrists knees and back ground to dust and ash crawling on all fours when you have got to feel it in your bones when you have got to feel it in your bones now i can not climb the stairs pieces missing everywhere prozac painkillers when you have got to feel it in your bones when you have got to feel it in your bones i used to fly like peter pan all the children flew when i touched their hands you see you have got to feel it in your bones you see you have got to feel it in your bones ahah they love me like i was a brother they protect me listen to me they dug me my very own garden gave me sunshine made me happy nice dream i call up my friend the good angel but she is out with her ansaphone she says she would love to come help but the sea would electrocute us all nice dream if you think that you are strong enough if you think you belong enough nice dream can not get the stink off he is been hanging around for days comes like a comet suckered you but not your friends one day he will get to you teach you how to be a holy cow do not get my sympathy hanging out the 15th floor you have changed the locks three times he still comes reeling through the door and soon he will get to you teach you how to get to purest hell you do it to yourself you do and that is what really hurts is you do it to yourself just you you and no one else you do it to yourself faith you are driving me away you do it everyday you do not mean it but it hurts like hell my brain says i am receiving pain a lack of oxygen from my life support my iron lung we are too young to fall asleep too cynical to speak we are losing it can not you tell we scratch our eternal itch a twentieth century bitch and we are grateful for our iron lung the headshrinkers they want everything my uncle bill my belisha beacon the headshrinkers they want everything my uncle bill my belisha beacon suck suck your teenage thumb toilet trained and dumb when the power runs out we will just hum this this is our new song just like the last one a total waste of time my iron lung the headshrinkers they want everything my uncle bill my belisha beacon the headshrinkers they want everything my uncle bill my belisha beacon and if you are frightened you can be frightened you can be it is ok and if you are frightened you can be frightened you can be it is ok the headshrinkers they want everything my uncle bill my belisha beacon limb by limb and tooth by tooth tearing up inside of me every day every hour i wish that i was bullet proof wax me mold me heat the pins and stab them in you have turned me into this just wish that it was bullet proof was bullet proof so pay me money and take a shot lead fill the hole in me i could burst a million bubbles all surrogate and bullet proof and bullet proof repeat get home from work and you are still standing in your dressing gown well what am i to do i know all the things around your head and what they do to you what are we coming to what are we going do blame it on the black star blame it on the falling sky blame it on the satellite that beams me home the troubled words of a troubled mind i try to understand what is eating you i try to stay awake but its 58hrs since that i last slept with you what are we coming to i just do not know anymore i get on the train and i just stand about now that i do not think of you i keep falling over i keep passing out when i see a face like you what am i coming to i am going melt down you bite through the big wall the big wall bites back you sit there and sulk sit there and bawl you are so pretty when you are on your knees disinfected eager to please sometimes you sulk sometimes you burn god rest your soul when the loving comes and we have already gone just like your dad you will never change each time it comes it eats me alive i try to behave but it eats me alive so i declare a holiday fall asleep drift away rows of houses all bearing down on me i can feel their blue hands touching me all these things into position all these things we will one day swallow whole and fade out again and fade out this machine will will not communicate these thoughts and the strain i am under be a world child form a circle before we all go under and fade out again and fade out again cracked eggs dead birds scream as they fight for life i can feel death can see its beady eyes all these things into position all these things we will one day swallow whole and fade out again and fade out again immerse your soul in love immerse your soul in love

3 Дополнительная обработка и подсчет частотности

Разбиваем тексты на токены, лемматизируем, убираем стоп-слова и получаем список лемм, встречающихся в текстах альбомов:

rh_words <- albums_texts |> 
  unnest_tokens(word, text)

rh_lems <- rh_words|>
  mutate(lemma = lemmatize_words(pull(rh_words, word)))


other <- c("ah")

rh_clean_lems <- rh_lems  |>  #убираем стоп-слова
  anti_join(stop_words) |>
  filter(!word %in% other)

knitr::kable(head(rh_clean_lems))
album_year word lemma
Pablo Honey_1993 sun sun
Pablo Honey_1993 moon moon
Pablo Honey_1993 stars star
Pablo Honey_1993 run run
Pablo Honey_1993 chaotic chaotic
Pablo Honey_1993 world world

Для лемматизации мне было удобнее применить функцию lemmatize_words из библиотеки textstem. Дело в том, что число лемм, которые я получала при разных моделях Udpipe, каждый раз не соотносилось с количеством токенов, выделенных в unnest_tokens. Решение я видела в лемматизации уже отдельных токенов из unnest_tokens, и в принципе грубых ошибок я не обнаружила.

#кол-во лемм без стоп-слов в альбоме
rh_total_counts <- rh_clean_lems  |>
  count(album_year) |>
  rename(total = n)

#сколько раз какая лемма встречается в альбоме 
rh_album_lem_counts <- rh_clean_lems  |> 
  count(album_year, lemma, sort = TRUE) 

#соединяем
rh_album_lemma_tf <- rh_album_lem_counts |>
  left_join(rh_total_counts)

head(rh_album_lemma_tf)
# A tibble: 6 × 4
  album_year              lemma         n total
  <chr>                   <chr>     <int> <int>
1 Hail to the Thief_2003  drop         47   745
2 Hail to the Thief_2003  rain         46   745
3 The King of Limbs_2011  hurt         28   297
4 A Moon Shaped Pool_2016 mess         24   498
5 Hail to the Thief_2003  attention    16   745
6 Pablo Honey_1993        run          16   375
# считаем tf-idf
tf_idf_rh <- rh_album_lem_counts |>
  bind_tf_idf(lemma, album_year, n)

4 Визуализация

Мы посчитали частотность, а дополнительно еще и TF-IDF. Визуализируем наши результаты и начнем с TF-IDF:

tf_idf_rh |>
  group_by(album_year) |>
  slice_head(n = 7) |>
  ggplot(aes(reorder_within(lemma, tf_idf, album_year), tf_idf, fill = album_year)) +
  geom_col(show.legend = FALSE) +
  labs(x = NULL, y = "tf-idf") +
  facet_wrap(~album_year, scales = "free") +
  scale_x_reordered() +
  coord_flip()

Только построив графики, я задумалась о том, насколько специфичными для обработки могут оказаться тексты песен Radiohead. Во-первых, даже в соединенном варианте, получились сравнительно небольшие тексты, а после удаления стоп-слов, они стали меньше еще в несколько раз. Во-вторых, довольно частое явление для них — многократное повторение одних и тех же строчек в песнях. Это, конечно, есть далеко не везде, но в некоторых случаях данное явление достаточно сильно проявляется. Например, в Hail to the Thief есть песня Sit Sown. Stand Up., в которой слова rain и drop (в некоторых вариантах текста — raindrop) повторяются около 48 раз (!). Подобных аномальных случаев в творчестве группы не так много (хотя у них есть песня, где очень много раз повторяется слово no, но не будем развивать это рассуждение в сторону ещё большего фанатского безумия), но всё равно такие моменты повторений сразу заметны, особенно если знаком с творчеством группы. С одной стороны, это немного разочаровывает, ведь ты ждешь от любимой группы большего разнообразия, с другой — даже умиляет, ведь сразу понимаешь, почему выделились определенные слова.
Впрочем, с повтореняими или нет, некоторые выделившиеся слова всё-таки передают настроение альбома. Например, мне очень нравится результат по A Moon Shaped Pool (2016). Он считается одним из самых грустных альбомов группы, тексты, в которых часто поднимается тема разбитого сердца, в основном написаны Томом Йорком (солистом группы), на тот момент переживавшим развод после многолетнего брака. Выделившиеся повторяются лишь несколько раз в каких-либо песнях. И довольно трогательно видеть в топе mess, truth, light, love, leave и time. Даже laugh в целом тоже интересно расположилось здесь.
Не думаю, что имеет большой смысл проводить подробный анализ по каждому из графиков отдельно, поскольку на самом деле нигде (кроме разве что A Moon Shaped Pool), на мой взгляд, не выделяется какая-то четкая тема или настроение (разве что в OK Computer довольно удручающий список, не считая surprise).

Если же говорить об общих наблюдениях, то любопытно то, что практически везде топ слов уникальный, не считая пары совпадений feel и leave, что по меньшей мере подтверждает текстовое разнообразие на протяжении всего творческого периода (а ведь слов, встречающихся в текстах всего один раз тоже много). Определенно здесь можно заметить много слов, связанных с эмоциями и чувствами, что в целом даже соответствует ожиданиям.

Еще мне было интересно взглянуть просто на облака слов по альбомам:

По порядку слева направо сверху вниз: Pablo Honey (1993), The Bends (1995), OK Computer (1997), Kid A (2000), Amnesiac (2001), Hail to the Thief (2004), In Rainbows (2007) , The King of Limbs (2011), A Moon Shaped Pool (2016)

par(mfrow=c(3,3), mar = c(0, 0, 0, 0))

#здесь показан код для одного из облаков, для остальных был написан аналогичный с небольшими изменениями 

f_alb <- rh_album_lemma_tf |>
  filter(album_year == "Pablo Honey_1993")

pal1 <- c("#ded500", "#b58f09", 
         "#debb18", "#a1a216",
         "#b58f09")

wordcloud(f_alb$lemma, f_alb$n, colors = pal1, max.words = 30)

Думаю, что здесь лучше видно разнообразие текстов. Опять же практически везде можно увидеть много эмоционально-окрашенных слов и, как мне кажется, здесь это больше заметно и в других альбомах помимо A Moon Shaped Pool. Однако даже если попробовать описать изменения настроения от альбома к альбома, четкого описания не выйдет (я пыталась и в итоге начала думать, а не влияет ли на мои попытки давнее знакомство с этой музыкой).

5 Можно ли сделать выводы?

На мой взгляд, каких-либо неожиданных и четких наблюдений получено не было кроме последнего альбома группы и, может быть, OK Computer. Впрочем, не думаю, что из-за этого стоит делать вывод, что наконец ближе к концу группа всё-таки научилась выдерживать единую тематику альбома для этого нужны, в конце концов, и другие доказательства. Приятно было отметить для себя текстовое разнообразие: хотя все альбомы соприкасаются с описанием чувств, это везде сделано одновременно и похоже, и при этом по-разному. А это просто красиво.