Vampire Weekend is an indie band that formed in 2006. Since then, they have released four albums. “Vampire Weekend” was released in 2008, then “Contra” in 2010, “Modern Vampires of the City” in 2013, and “Father of the Bride” in 2019. Over time, the overall tone and mood of the music and music videos became darker and less pop-y.
The first wordcloud for “Contra” will show why this step was taken.
vw_word_album1 %>%
head(10) ->album1top10
album1top10 %>%
ggplot(aes(reorder(word, -n), n, fill=word)) + geom_col() + scale_fill_tableau() + theme_economist() + ggtitle("Top 10 Words of 'Vampire Weekend'") + labs(y= "Number of Appearances", x = "Words") vw_word_album3 %>%
head(10) ->album3top10
album3top10 %>%
ggplot(aes(reorder(word, -n), n, fill=word)) + geom_col() + scale_fill_tableau() + theme_economist() + ggtitle("Top 10 Words of 'Modern Vampires of the City'") + labs(y= "Number of Mentions", x = "Words") The sentiment analysis was accomplished with the Afinn lexicon. Afinn ranks words on a scale of -5 to 5 based on postive or negative connotation. -5 is the most negative rating and 5 is the most positive.
The tables below are the 10 most positive (left) and 10 most negative (right) words from each respective album. If multiple words have the same ranking in the lexicon, they are then ordered in the table based on frequency.
vw_song_lyrics %>%
filter(title %in% "Vampire Weekend") %>%
unnest_tokens(word, lyric) %>%
anti_join(stop_words) %>%
count(word, sort = TRUE) %>%
inner_join(get_sentiments("afinn")) %>%
arrange(desc(value)) -> vw_word_album_afinn_pos
vw_word_album_afinn_pos %>%
head(10)## # A tibble: 10 x 3
## word n value
## <chr> <int> <dbl>
## 1 funny 1 4
## 2 charm 2 3
## 3 praise 2 3
## 4 perfect 1 3
## 5 chance 3 2
## 6 fine 2 2
## 7 smile 2 2
## 8 tops 2 2
## 9 true 2 2
## 10 cares 1 2
vw_song_lyrics %>%
filter(title %in% "Vampire Weekend") %>%
unnest_tokens(word, lyric) %>%
anti_join(stop_words) %>%
count(word, sort = TRUE) %>%
inner_join(get_sentiments("afinn")) %>%
arrange(desc(-value)) -> vw_word_album_afinn_neg
vw_word_album_afinn_neg %>%
head(10)## # A tibble: 10 x 3
## word n value
## <chr> <int> <dbl>
## 1 fuck 5 -4
## 2 shit 1 -4
## 3 cruel 3 -3
## 4 dumb 2 -3
## 5 evil 1 -3
## 6 lost 1 -3
## 7 murdering 1 -3
## 8 racist 1 -3
## 9 insane 6 -2
## 10 collapse 1 -2
There are 18 occurrences of the 10 unique most positive words. The median value is 2 and mean is 2.5.
There are 22 occurrences of the 10 unique most negative words. The mean and median values are both -3.
vw_song_lyrics %>%
filter(title %in% "Contra") %>%
unnest_tokens(word, lyric) %>%
anti_join(stop_words) %>%
count(word, sort = TRUE) %>%
inner_join(get_sentiments("afinn")) %>%
arrange(desc(value)) -> c_word_album_afinn_pos
c_word_album_afinn_pos %>%
head(10)## # A tibble: 10 x 3
## word n value
## <chr> <int> <dbl>
## 1 funny 2 4
## 2 love 1 3
## 3 lovely 1 3
## 4 chance 3 2
## 5 care 2 2
## 6 honest 2 2
## 7 brave 1 2
## 8 enjoy 1 2
## 9 fair 1 2
## 10 fine 1 2
vw_song_lyrics %>%
filter(title %in% "Contra") %>%
unnest_tokens(word, lyric) %>%
anti_join(stop_words) %>%
count(word, sort = TRUE) %>%
inner_join(get_sentiments("afinn")) %>%
arrange(desc(-value)) -> c_word_album_afinn_neg
c_word_album_afinn_neg %>%
head(10)## # A tibble: 10 x 3
## word n value
## <chr> <int> <dbl>
## 1 cruel 2 -3
## 2 lost 2 -3
## 3 worse 2 -3
## 4 bad 1 -3
## 5 desperate 1 -3
## 6 die 1 -3
## 7 fake 1 -3
## 8 horrified 1 -3
## 9 victim 1 -3
## 10 bitter 4 -2
There are 14 occurrences of the 10 unique most positive words. The median and mean values are both 2
There are 16 occurrences of the 10 unique most negative words. The mean median is -3 and the mean is -2.9.
vw_song_lyrics %>%
filter(title %in% "Modern Vampires of the City") %>%
unnest_tokens(word, lyric) %>%
anti_join(stop_words) %>%
count(word, sort = TRUE) %>%
inner_join(get_sentiments("afinn")) %>%
arrange(desc(value)) -> mvotc_word_album_afinn_pos
mvotc_word_album_afinn_pos %>%
head(10)## # A tibble: 10 x 3
## word n value
## <chr> <int> <dbl>
## 1 rejoicing 1 4
## 2 love 20 3
## 3 praise 4 3
## 4 excited 3 3
## 5 blessing 2 3
## 6 charming 1 3
## 7 luck 1 3
## 8 pleasant 1 3
## 9 won 1 3
## 10 stronger 4 2
vw_song_lyrics %>%
filter(title %in% "Modern Vampires of the City") %>%
unnest_tokens(word, lyric) %>%
anti_join(stop_words) %>%
count(word, sort = TRUE) %>%
inner_join(get_sentiments("afinn")) %>%
arrange(desc(-value)) -> mvotc_word_album_afinn_neg
mvotc_word_album_afinn_neg %>%
head(10)## # A tibble: 10 x 3
## word n value
## <chr> <int> <dbl>
## 1 damn 2 -4
## 2 hell 1 -4
## 3 die 8 -3
## 4 idiot 3 -3
## 5 died 2 -3
## 6 bad 1 -3
## 7 hate 1 -3
## 8 lost 1 -3
## 9 fire 14 -2
## 10 fool 5 -2
There are 39 occurrences of the 10 unique most positive words. The median and mean values are both 3.
There are 38 occurrences of the 10 unique most negative words. The mean and median values are both -3.
vw_song_lyrics %>%
filter(title %in% "Father of the Bride") %>%
unnest_tokens(word, lyric) %>%
anti_join(stop_words) %>%
count(word, sort = TRUE) %>%
inner_join(get_sentiments("afinn")) %>%
arrange(desc(value)) -> fotb_word_album_afinn_pos
fotb_word_album_afinn_pos %>%
head(10)## # A tibble: 10 x 3
## word n value
## <chr> <int> <dbl>
## 1 win 5 4
## 2 funny 1 4
## 3 triumph 1 4
## 4 love 7 3
## 5 affection 4 3
## 6 grand 1 3
## 7 loved 1 3
## 8 perfect 1 3
## 9 sympathy 6 2
## 10 proud 4 2
vw_song_lyrics %>%
filter(title %in% "Father of the Bride") %>%
unnest_tokens(word, lyric) %>%
anti_join(stop_words) %>%
count(word, sort = TRUE) %>%
inner_join(get_sentiments("afinn")) %>%
arrange(desc(-value)) -> fotb_word_album_afinn_neg
fotb_word_album_afinn_neg %>%
head(10)## # A tibble: 10 x 3
## word n value
## <chr> <int> <dbl>
## 1 die 8 -3
## 2 worried 4 -3
## 3 violence 3 -3
## 4 anger 2 -3
## 5 cruel 2 -3
## 6 evil 2 -3
## 7 fake 2 -3
## 8 hate 2 -3
## 9 kill 2 -3
## 10 lost 2 -3
There are 31 occurrences of the 10 unique most positive words. The median value is 3 and mean is 3.1.
There are 29 occurrences of the 10 unique most negative words. The mean and median values are both -3.
Most of the top 10 most common words among the four albums are filler like “ooh” and “la” or simply have no connatation either way.
Of the 10 most positive words that appear in each individual album, the number of occurrences does not follow a clear negatively or positively sloped line. A line of best fit would be positively sloped as they go from 18 to 15 to 39 to 31. Meaning, the most postive words are used more often as time goes on generally.
As for negative words, the total occurrences go from 22 to 16 to 38 to 29. This follows the exact same pattern. It appears that language with strong connotations (be it positive or negative) tend to appear with each album.
The absolute values of the means and medians for all eight tables are very similar to each other as well. For each album, the absolute values of the medians and means of the negative rankings are greater than or equal to their positive counterparts in every instance but one. The exception is the last album. The absolute values for both medians are 3 and the absolute value for the negative mean is 3 and the absolute value for the positive mean is 3.1. Close, but not equal.
Because the data showed the same patterns for the rise of positive and negative words and overall similar outcomes for measures of central tendencies, the hypothesis has been disproved. While the lyrics have become more negative, they have also become more positive with time.