I will be looking at how/if Chance’s music becomes more positive as his life becomes positive. I will be looking at his four main albums “10 Day” (2012), “Acid Rap” (2013), “Coloring Book” (2016), and “The Big Day” (2019). I chose only to look at these works with the help of Wikipedia and Spotify. Although Spotify only has the three albums “Acid Rap”, “Coloring Book”, and “The Big Day” on it’s platform, if you go to the about section under the artist, Spotify recognizes “10 Day” as Chance the Rapper’s first real mixtape/ album (mixtape and album are used interchangeably in his case). With that said, Spotify recognizes his second album “Acid Rap” as his first to hit the charts. Using “10 Day” in my analysis can be useful to show how his music changes as his fame grows. I will also look at the explicit words within Chance the Rapper’s albums. I will be looking at if the number of curse words go down throughout each album. The reduction in curse words throughout his music as each album passes represents his changing image. I will be using both the Genuis API and Spotify API to get my necessary information.
library(genius)
library(tidyverse)
library(tidytext)
library(textdata)
library(wordcloud2)
library(ggplot2)
library(devtools)
library(spotifyr)
library(knitr)
library(ggjoy)
library(dplyr)
library(plotly)
library(ggthemes)
10 Day is Chance the Rapper’s real first mixtape. This mixtape was released during a ten day suspension he received in High School for bringing weed onto his campus leading to the album name “10 Day” - https://en.wikipedia.org/wiki/Chance_the_Rapper.
tenday <- genius_album(artist = "Chance the Rapper", album = "10 Day")
View(tenday)
How many words are in this album
tenday %>%
unnest_tokens(word, lyric) %>%
select(word) %>%
count()
## # A tibble: 1 x 1
## n
## <int>
## 1 7043
7043
How many times do the most popular words occur within the album?
tenday %>%
unnest_tokens(word, lyric) %>%
select(word) %>%
anti_join(stop_words) %>%
count(word, sort = TRUE) %>%
filter(!word %in% c("tahm", "igh")) %>%
head(10) %>%
knitr::kable()
| word | n |
|---|---|
| juke | 108 |
| fuck | 97 |
| bout | 68 |
| nigga | 62 |
| mama | 37 |
| time | 36 |
| break | 32 |
| niggas | 32 |
| shit | 32 |
| brain | 26 |
the most used words are fairly negative
What is the sentiment of these words?
tenday %>%
unnest_tokens(word, lyric) %>%
select(word) %>%
anti_join(stop_words) %>%
count(word, sort = TRUE) %>%
inner_join(get_sentiments("bing")) %>%
inner_join(get_sentiments("afinn")) %>%
filter(!word %in% c("tahm", "igh")) %>%
head(10) %>%
knitr::kable()
| word | n | sentiment | value |
|---|---|---|---|
| fuck | 97 | negative | -4 |
| shit | 32 | negative | -4 |
| fucking | 18 | negative | -4 |
| love | 16 | positive | 3 |
| smile | 10 | positive | 2 |
| bitch | 9 | negative | -5 |
| funny | 9 | negative | 4 |
| warm | 9 | positive | 1 |
| worried | 8 | negative | -3 |
| bad | 7 | negative | -3 |
note –> funny has a negative sentiment but a positive value?? (shortcoming of bing lexicon). list of words changes due to which can be measured by sentiment or not. stays in line with original observation of mostly negative words
What words stand out the most in a word cloud
tenday %>%
unnest_tokens(word, lyric) %>%
select(word) %>%
anti_join(stop_words) %>%
count(word, sort = TRUE) %>%
filter(!word %in% c("tahm", "igh")) %>%
wordcloud2()
“Juke”, “Fuck” “Bout”
Chance_the_Rapper %>%
filter(album_name %in% "10 Day") -> TenDayAlbum
View(TenDayAlbum)
Which track in 10 Day has the highest danceability?
Chance_the_Rapper %>%
filter(album_name %in% "10 Day") %>%
select(danceability, album_name, track_name) %>%
kable()
| danceability | album_name | track_name |
|---|---|---|
| 0.826 | 10 Day | 14,400 Minutes |
| 0.612 | 10 Day | Nostalgia |
| 0.743 | 10 Day | Missing You |
| 0.513 | 10 Day | Windows |
| 0.565 | 10 Day | Brain Cells |
| 0.392 | 10 Day | Long Time |
| 0.492 | 10 Day | 22 Offs |
| 0.490 | 10 Day | U Got Me Fucked Up |
| 0.639 | 10 Day | Family |
| 0.813 | 10 Day | Juke Juke |
| 0.437 | 10 Day | Fuck You Tahm Bout |
| 0.608 | 10 Day | Long Time II |
| 0.473 | 10 Day | Prom Night |
| 0.705 | 10 Day | Hey Ma |
14,400 minutes & Juke Juke have the highest danceability (highest .826)
Can each track’s danceability be shown in a graph?
TenDayAlbum %>%
ggplot()+
geom_col(aes(x=track_name, y=danceability))+
theme_economist()+
theme(axis.text.x = element_text(angle = 90))
What is the distribution of the danceability within 10 Day?
ggplot(TenDayAlbum, aes(x=danceability)) +
geom_density(alpha=0.7)+
labs(x="Danceability", y="Density") +
theme_economist()+
ggtitle("Distribution of Danceability Data in 10 Day")
average of 2.5 songs have a danceability rate between .5 and .6
Using a heatmap code created by http://student.elon.edu/bwilliamson5/FinalProject/index.html to analyize danceability in 10 Day
ggplot(data = TenDayAlbum, aes(x = danceability, y = track_name)) +
geom_tile(aes(fill=danceability, height=1 , width=.1),colour="red") +
scale_y_discrete(breaks = TenDayAlbum$track_name) +
scale_fill_gradient2(low = "#FF0000", midpoint=0.6,
space="Lab", mid="#FFE500", high = "#09B505") +
labs(x = "Danceability") +
labs(y = "Track Name") +
labs(title = "10 Day Album Danceability")
Within 10 Day Chance is a high school druggie with a failing music career
10 Day without any stop or soft words
tenday %>%
unnest_tokens(word, lyric) %>%
select(word) %>%
anti_join(stop_words)-> tendayexplicit
How often are the 10 most explicit words throughout all albums used in 10 Day?
tendayexplicit %>%
filter(word %in% c("fuck", "shit", "niggas", "bitch", "ass", "fucking", "damn", "fucked", "dick", "bitches")) %>%
count(word, sort = TRUE) %>%
ggplot(aes(reorder(word, n), n)) +
geom_col() +
coord_flip() +
theme_economist()
“fuck” is used nearly 100 times within the album
During Acid Rap, Chance is going through his drug addiction but his music career is starting to take off. The artist “Tyler the Creator” allowed Chance to open for him allowing his music to reach new audiences. In the song “Cocoa Butter Kisses” you can see his family’s disapproval of his addiction in the lyrics: “Put Visine inside my eyes so my grandma would fucking hug me” - http://www.mtv.com/news/1707187/chance-the-rapper-acid-rap-mixtape/
acidrap <- genius_album(artist = "Chance the Rapper", album = "Acid Rap")
View(acidrap)
How many words are in this album
acidrap %>%
unnest_tokens(word, lyric) %>%
select(word) %>%
count()
## # A tibble: 1 x 1
## n
## <int>
## 1 7781
7781
How many times do the most popular words occur within the album
acidrap %>%
unnest_tokens(word, lyric) %>%
select(word) %>%
anti_join(stop_words) %>%
count(word, sort = TRUE) %>%
filter(!word %in% c("tahm", "igh", "na", "ooh")) %>%
head(10) %>%
knitr::kable()
| word | n |
|---|---|
| love | 58 |
| juice | 52 |
| shit | 51 |
| jam | 49 |
| yeah | 49 |
| kisses | 39 |
| smoke | 33 |
| fuck | 29 |
| bout | 27 |
| bitch | 24 |
the top three words used are fairly positive in this album (maybe a sign of growth?)
What is the sentiment of these words?
acidrap %>%
unnest_tokens(word, lyric) %>%
select(word) %>%
anti_join(stop_words) %>%
count(word, sort = TRUE) %>%
inner_join(get_sentiments("bing")) %>%
inner_join(get_sentiments("afinn")) %>%
filter(!word %in% c("tahm", "igh", "na", "ooh")) %>%
head(10) %>%
knitr::kable()
| word | n | sentiment | value |
|---|---|---|---|
| love | 58 | positive | 3 |
| shit | 51 | negative | -4 |
| fuck | 29 | negative | -4 |
| bitch | 24 | negative | -5 |
| miss | 20 | negative | -2 |
| lost | 10 | negative | -3 |
| scared | 10 | negative | -2 |
| fucking | 9 | negative | -4 |
| damn | 8 | negative | -4 |
| dick | 7 | negative | -4 |
only one positive sentiment word. list of words changes due to which can be measured by sentiment or not.
What words stand out the most in a word cloud
acidrap %>%
unnest_tokens(word, lyric) %>%
select(word) %>%
anti_join(stop_words) %>%
count(word, sort = TRUE) %>%
filter(!word %in% c("tahm", "igh", "na", "ooh")) %>%
wordcloud2()
“love”, “jam”, “yeah”, “juice”, “shit”, “kisses”, “smoke”, “fuck”
Chance_the_Rapper %>%
filter(album_name %in% "Acid Rap") -> AcidRapAlbum
View(AcidRapAlbum)
Which track in Acid Rap has the highest danceability?
Chance_the_Rapper %>%
filter(album_name %in% "Acid Rap") %>%
select(danceability, album_name, track_name) %>%
kable()
| danceability | album_name | track_name |
|---|---|---|
| 0.605 | Acid Rap | Good Ass Intro |
| 0.768 | Acid Rap | Pusha Man |
| 0.472 | Acid Rap | Paranoia |
| 0.679 | Acid Rap | Cocoa Butter Kisses |
| 0.759 | Acid Rap | Juice |
| 0.667 | Acid Rap | Lost |
| 0.551 | Acid Rap | Everybody’s Something |
| 0.417 | Acid Rap | Interlude (That’s Love) |
| 0.725 | Acid Rap | Favorite Song |
| 0.594 | Acid Rap | NaNa |
| 0.721 | Acid Rap | Smoke Again |
| 0.727 | Acid Rap | Acid Rain |
| 0.661 | Acid Rap | Chain Smoker |
| 0.692 | Acid Rap | Everything’s Good (Good Ass Outro) |
Juice and Pusha Man have the highest danceability (highest .768)
Each track’s danceability shown in a graph
AcidRapAlbum %>%
ggplot()+
geom_col(aes(x=track_name, y=danceability))+
theme_economist()+
theme(axis.text.x = element_text(angle = 90))+
theme(axis.text.x = element_text(size = 5))
What is the distribution of the danceability within Acid Rap?
ggplot(AcidRapAlbum, aes(x=danceability)) +
geom_density(alpha=0.7)+
labs(x="Danceability", y="Density") +
theme_economist()+
ggtitle("Distribution of Danceability Data in Acid Rap")
average of 4 songs have a danceability rate between .6 and .8
Using a heatmap code created by http://student.elon.edu/bwilliamson5/FinalProject/index.html to analyize danceability in Acid Rap
ggplot(data = AcidRapAlbum, aes(x = danceability, y = track_name)) +
geom_tile(aes(fill=danceability, height=1 , width=.1),colour="red") +
scale_y_discrete(breaks = AcidRapAlbum$track_name) +
scale_fill_gradient2(low = "#FF0000", midpoint=0.6,
space="Lab", mid="#FFE500", high = "#09B505") +
labs(x = "Danceability") +
labs(y = "Track Name") +
labs(title = "Acid Rap Album Danceability")
In Acid Rap Chance’s music is finally taking off and hitting the charts
Acid Rap without any stop or soft words
acidrap %>%
unnest_tokens(word, lyric) %>%
select(word) %>%
anti_join(stop_words)-> acidrapexplicit
How often are the 10 most explicit words throughout all albums used in Acid Rap?
acidrapexplicit %>%
filter(word %in% c("fuck", "shit", "niggas", "bitch", "ass", "fucking", "damn", "fucked", "dick", "bitches")) %>%
count(word, sort = TRUE) %>%
ggplot(aes(reorder(word, n), n)) +
geom_col() +
coord_flip() +
theme_economist()
Although “shit” is used almost 50 times throughout the album, “fuck” has reduced to only about 30 times. The amount of overall curse words has decreased.
Coloring Book is the first album where Chance’s music has more of a gospel-y sound. His music begins to focus on moving forward from his past and focusing on his future and his music. In the song “Finish Line/ Drown” he states: “Last year got addicted to Xans, Started forgetting my name and started missing my chance” showing how his mistakes were holding him back. Chance also recognizes the good things in his life. In the song “Blessings” he says: “I know the difference in blessings and worldly possessions, Like my ex-girl getting pregnant, And her becoming my everything”. As seen in this Genuis article, drugs is the reason there was a 3-year gap between Acid Rap and Coloring Book.
coloringbook <- genius_album(artist = "Chance the Rapper", album = "Coloring Book")
View(coloringbook)
How many words are in this album
coloringbook %>%
unnest_tokens(word, lyric) %>%
select(word) %>%
count()
## # A tibble: 1 x 1
## n
## <int>
## 1 7665
7665
How many times do the most popular words occur within the album
coloringbook %>%
unnest_tokens(word, lyric) %>%
select(word) %>%
anti_join(stop_words) %>%
count(word, sort = TRUE) %>%
filter(!word %in% c("tahm", "igh", "na", "ayy", "bom")) %>%
head(10) %>%
knitr::kable()
| word | n |
|---|---|
| ready | 44 |
| blessings | 35 |
| god | 33 |
| night | 32 |
| drinking | 28 |
| citywide | 27 |
| gon | 27 |
| drugs | 24 |
| hey | 24 |
| deserve | 23 |
the top 5 most used words in the song are very positive
What is the sentiment of these words?
coloringbook %>%
unnest_tokens(word, lyric) %>%
select(word) %>%
anti_join(stop_words) %>%
count(word, sort = TRUE) %>%
inner_join(get_sentiments("bing")) %>%
inner_join(get_sentiments("afinn")) %>%
filter(!word %in% c("tahm", "igh", "na", "ayy", "bom")) %>%
head(10) %>%
knitr::kable()
| word | n | sentiment | value |
|---|---|---|---|
| praise | 16 | positive | 3 |
| bitch | 15 | negative | -5 |
| fuck | 15 | negative | -4 |
| love | 13 | positive | 3 |
| miracle | 13 | positive | 4 |
| shit | 11 | negative | -4 |
| bad | 9 | negative | -3 |
| woo | 9 | positive | 3 |
| free | 7 | positive | 1 |
| damn | 6 | negative | -4 |
mix of negative and positive sentiments. odd that “f word” has a lower value than “b word”. list of words changes due to which can be measured by sentiment or not.
What words stand out the most in a word cloud
coloringbook %>%
unnest_tokens(word, lyric) %>%
select(word) %>%
anti_join(stop_words) %>%
count(word, sort = TRUE) %>%
filter(!word %in% c("tahm", "igh", "na", "ayy", "bom")) %>%
wordcloud2()
“ready”, “blessings”, “god”, “night”, “drinking”, “deserve”, “friends”, “citywide”
Chance_the_Rapper %>%
filter(album_name %in% "Coloring Book") -> CBAlbum
View(CBAlbum)
Which track in Coloring Book has the highest danceability?
Chance_the_Rapper %>%
filter(album_name %in% "Coloring Book") %>%
select(danceability, album_name, track_name) %>%
kable()
| danceability | album_name | track_name |
|---|---|---|
| 0.531 | Coloring Book | All We Got (feat. Kanye West & Chicago Children’s Choir) |
| 0.652 | Coloring Book | No Problem (feat. Lil Wayne & 2 Chainz) |
| 0.693 | Coloring Book | Summer Friends (feat. Jeremih & Francis & The Lights) |
| 0.404 | Coloring Book | D.R.A.M. Sings Special |
| 0.714 | Coloring Book | Blessings (feat. Jamila Woods) |
| 0.461 | Coloring Book | Same Drugs |
| 0.838 | Coloring Book | Mixtape (feat. Young Thug & Lil Yachty) |
| 0.771 | Coloring Book | Angels (feat. Saba) |
| 0.505 | Coloring Book | Juke Jam (feat. Justin Bieber & Towkio) |
| 0.704 | Coloring Book | All Night (feat. Knox Fortune) |
| 0.439 | Coloring Book | How Great (feat. Jay Electronica & My cousin Nicole) |
| 0.705 | Coloring Book | Smoke Break (feat. Future) |
| 0.456 | Coloring Book | Finish Line / Drown (feat. T-Pain, Kirk Franklin, Eryn Allen Kane & Noname) |
| 0.381 | Coloring Book | Blessings (feat. Ty Dolla $ign, Anderson .Paak, BJ The Chicago Kid, Raury & Jamila Woods) |
Mixtape (feat. Young Thug & Lil Yachty) and Angels (feat. Saba) have the highest dancability (highest .838)
Each track’s danceability shown in a graph
CBAlbum %>%
ggplot()+
geom_col(aes(x=track_name, y=danceability))+
theme_economist()+
theme(axis.text.x = element_text(angle = 90))+
theme(axis.text.x = element_text(size = 2))
What is the distribution of the danceability within Coloring Book?
ggplot(CBAlbum, aes(x=danceability)) +
geom_density(alpha=0.7)+
labs(x="Danceability", y="Density") +
theme_economist()+
ggtitle("Distribution of Danceability Data in Coloring Book")
average of 2 songs have a danceability rate of either between .4 and .5 or .7 and .8
Using a heatmap code created by http://student.elon.edu/bwilliamson5/FinalProject/index.html to analyize danceability in Coloring Book
ggplot(data = CBAlbum, aes(x = danceability, y = track_name)) +
geom_tile(aes(fill=danceability, height=1 , width=.1),colour="red") +
scale_y_discrete(breaks = CBAlbum$track_name) +
scale_fill_gradient2(low = "#FF0000", midpoint=0.6,
space="Lab", mid="#FFE500", high = "#09B505") +
theme(axis.text.y = element_text(size = 3))+
labs(x = "Danceability") +
labs(y = "Track Name") +
labs(title = "Coloring Book Album Danceability")
In Coloring Book Chance is over his addiction and back in love with his pregnant ex girlfriend
Coloring Book without any stop or soft words
coloringbook %>%
unnest_tokens(word, lyric) %>%
select(word) %>%
anti_join(stop_words)-> coloringbookexplicit
How often are the 10 most explicit words throughout all albums used in Coloring Book?
coloringbookexplicit %>%
filter(word %in% c("fuck", "shit", "niggas", "bitch", "ass", "fucking", "damn", "fucked", "dick", "bitches")) %>%
count(word, sort = TRUE) %>%
ggplot(aes(reorder(word, n), n)) +
geom_col() +
coord_flip() +
theme_economist()
“fuck” and “bitch” are only used about 15 times throughout this album, a big drop in comparison to the others. Most gospel like album, could be why there is such a decrease in curse words.
The Big Day is Chance the Rapper’s most recent and most mainstream album. He begins to move away from his Gospel/Blues-y vibe and into a more pop like tone.
bigday <- genius_album(artist = "Chance the Rapper", album = "The Big Day")
View(bigday)
How many words are in this album
bigday %>%
unnest_tokens(word, lyric) %>%
select(word) %>%
count()
## # A tibble: 1 x 1
## n
## <int>
## 1 11722
11722
How many times do the most popular words occur within the album
bigday %>%
unnest_tokens(word, lyric) %>%
select(word) %>%
anti_join(stop_words) %>%
count(word, sort = TRUE) %>%
filter(!word %in% c("tahm", "igh", "na", "ooh", "yeah", "uh")) %>%
head(10) %>%
knitr::kable()
| word | n |
|---|---|
| single | 66 |
| love | 54 |
| time | 45 |
| baby | 41 |
| bag | 38 |
| forever | 37 |
| die | 36 |
| step | 33 |
| day | 32 |
| people | 29 |
the top 8 most used words in this song are very positive
What is the sentiment of these words?
bigday %>%
unnest_tokens(word, lyric) %>%
select(word) %>%
anti_join(stop_words) %>%
count(word, sort = TRUE) %>%
inner_join(get_sentiments("bing")) %>%
inner_join(get_sentiments("afinn")) %>%
filter(!word %in% c("tahm", "igh", "na", "ooh", "yeah", "uh")) %>%
head(10) %>%
knitr::kable()
| word | n | sentiment | value |
|---|---|---|---|
| love | 54 | positive | 3 |
| die | 36 | negative | -3 |
| fuck | 19 | negative | -4 |
| crazy | 17 | negative | -2 |
| shit | 16 | negative | -4 |
| worth | 15 | positive | 2 |
| bad | 14 | negative | -3 |
| damn | 11 | negative | -4 |
| bitch | 10 | negative | -5 |
| hug | 8 | positive | 2 |
mix of positive and negative words. list of words changes due to which can be measured by sentiment or not.
What words stand out the most in a word cloud
bigday %>%
unnest_tokens(word, lyric) %>%
select(word) %>%
anti_join(stop_words) %>%
count(word, sort = TRUE) %>%
filter(!word %in% c("tahm", "igh", "na", "ooh", "yeah", "uh")) %>%
wordcloud2()
“single”, “love”, “baby”, “time”, “forever”
Chance_the_Rapper %>%
filter(album_name %in% "The Big Day") -> BigDayAlbum
View(BigDayAlbum)
Which track in the Big Day has the highest danceability?
Chance_the_Rapper %>%
filter(album_name %in% "The Big Day") %>%
select(danceability, album_name, track_name) %>%
head(15) %>%
kable()
| danceability | album_name | track_name |
|---|---|---|
| 0.767 | The Big Day | All Day Long |
| 0.606 | The Big Day | Do You Remember |
| 0.793 | The Big Day | Eternal |
| 0.899 | The Big Day | Hot Shower |
| 0.657 | The Big Day | We Go High |
| 0.751 | The Big Day | I Got You (Always and Forever) |
| 0.707 | The Big Day | Photo Ops (Skit) |
| 0.543 | The Big Day | Roo |
| 0.654 | The Big Day | The Big Day |
| 0.780 | The Big Day | Let’s Go On The Run |
| 0.869 | The Big Day | Handsome |
| 0.822 | The Big Day | Big Fish |
| 0.926 | The Big Day | Ballin Flossin |
| 0.710 | The Big Day | 4 Quarters In The Black (Skit) |
| 0.672 | The Big Day | 5 Year Plan |
Ballin Flossin and Hot Shower have the highest danceability (highest .909)
Each track’s danceability shown in a graph
BigDayAlbum %>%
ggplot()+
geom_col(aes(x=track_name, y=danceability))+
theme_economist()+
theme(axis.text.x = element_text(angle = 90))+
theme(axis.text.x = element_text(size = 5))
What is the distribution of the danceability within The Big Day?
ggplot(BigDayAlbum, aes(x=danceability)) +
geom_density(alpha=0.7)+
labs(x="Danceability", y="Density") +
theme_economist()+
ggtitle("Distribution of Danceability Data in The Big Day")
average of 3 songs have a danceability rate between .7 and .8
Using a heatmap code created by http://student.elon.edu/bwilliamson5/FinalProject/index.html to analyize danceability in The Big Day
ggplot(data = BigDayAlbum, aes(x = danceability, y = track_name)) +
geom_tile(aes(fill=danceability, height=1 , width=.1),colour="red") +
scale_y_discrete(breaks = BigDayAlbum$track_name) +
scale_fill_gradient2(low = "#FF0000", midpoint=0.6,
space="Lab", mid="#FFE500", high = "#09B505") +
theme(axis.text.y = element_text(size = 4))+
labs(x = "Danceability") +
labs(y = "Track Name") +
labs(title = "The Big Day Album Danceability")
In The Big Day Chance is at the height of his music fame and a father
The Big Day without any stop or soft words
bigday %>%
unnest_tokens(word, lyric) %>%
select(word) %>%
anti_join(stop_words)-> bigdayexplicit
How often are the 10 most explicit words throughout all albums used in The Big Day?
bigdayexplicit %>%
filter(word %in% c("fuck", "shit", "niggas", "bitch", "ass", "fucking", "damn", "fucked", "dick", "bitches")) %>%
count(word, sort = TRUE) %>%
ggplot(aes(reorder(word, n), n)) +
geom_col() +
coord_flip() +
theme_economist()
“fuck” goes back up to being used around 20 times, while there is still a decrease in overall curse words in this album this could have to do with the more “mainstream” sound he is trying to achieve in The Big Day
chance_albums <- tribble(
~artist, ~title,
"Chance the Rapper", "10 Day",
"Chance the Rapper", "Acid Rap",
"Chance the Rapper", "Coloring Book",
"Chance the Rapper", "The Big Day"
)
View(chance_albums)
chance_lyrics <- chance_albums %>%
add_genius(artist, title, type="album")
All lyrics from all albums
View(chance_lyrics)
Removing any stop and soft words leaving only sentiment words left
chance_lyrics %>%
unnest_tokens(word, lyric) %>%
anti_join(stop_words) %>%
count(word, sort = TRUE) -> chance_word_count
What words occur the most throughout all his albums
wordcloud2(chance_word_count)
“yeah”, “fuck”, “juke”, “love”, “time”, “nigga”, “shit”, “god”
How much the 20 most common words are used throughout the albums
chance_word_count %>%
head(20) %>%
ggplot(aes(reorder(word, n), n)) +
geom_col() +
coord_flip() +
theme_economist()
Finding the sentiments of the most common used words throughout the albums
chance_word_count %>%
inner_join(get_sentiments("afinn"))-> chance_sentiment
View(chance_sentiment)
What are the most negative sentiment words
chance_sentiment %>%
arrange(desc(-value))
## # A tibble: 351 x 3
## word n value
## <chr> <int> <dbl>
## 1 niggas 78 -5
## 2 bitch 58 -5
## 3 bitches 10 -5
## 4 motherfucking 3 -5
## 5 cock 1 -5
## 6 motherfucker 1 -5
## 7 prick 1 -5
## 8 fuck 160 -4
## 9 shit 110 -4
## 10 ass 33 -4
## # … with 341 more rows
The n-word is probably not used in a negative way rather talking about people he probably considers family. An example of this is in the song “No Problem”: “If one more label try to stop me, It’s gon’ be some dreadhead niggas in ya lobby, huh huh”. According to Genius, in this song the "dreadhead n*ggas" he is refering to are the other artists from Chicago he wants to collaborate with, but is not allowed to due to record labels trying to control him and his music
What is the overall sentiment of his works
mean(chance_sentiment$value)
## [1] -0.4501425
-0.4501425
Are the words used in Chance’s lyrics positive or negative?
chance_word_count %>%
inner_join(get_sentiments("bing")) -> chance_sentiment2
View(chance_sentiment2)
How many negative words are there in comparison to positive words?
chance_sentiment2 %>%
ggplot() + geom_col(aes(sentiment, n)) + theme_economist()
There are many more negative words overall than positive throughout his works
Most frequent explicit words with highest negative sentiment throughout all albums
chance_word_count %>%
inner_join(get_sentiments("afinn")) %>%
filter(value == "-5"|value == "-4") %>%
arrange(desc(n))
## # A tibble: 20 x 3
## word n value
## <chr> <int> <dbl>
## 1 fuck 160 -4
## 2 shit 110 -4
## 3 niggas 78 -5
## 4 bitch 58 -5
## 5 ass 33 -4
## 6 fucking 28 -4
## 7 damn 27 -4
## 8 fucked 14 -4
## 9 dick 12 -4
## 10 bitches 10 -5
## 11 hell 4 -4
## 12 bullshit 3 -4
## 13 motherfucking 3 -5
## 14 asshole 2 -4
## 15 pissed 2 -4
## 16 cock 1 -5
## 17 fucker 1 -4
## 18 motherfucker 1 -5
## 19 prick 1 -5
## 20 torture 1 -4
What do the different chords used say about his music
Chance_the_Rapper %>%
count(key_mode, sort = TRUE) %>%
head(10) %>%
kable()
| key_mode | n |
|---|---|
| C# major | 12 |
| A major | 9 |
| G major | 8 |
| F minor | 7 |
| A# major | 5 |
| B minor | 5 |
| D major | 5 |
| F# minor | 5 |
| B major | 4 |
| C major | 4 |
C major and G major are used most often in pop music –> https://mixedinkey.com/captain-plugins/wiki/common-chord-progressions-pop-music/#
what is the most joyful Chance the Rapper song?
Chance_the_Rapper %>%
arrange(-valence) %>%
select(track_name, valence) %>%
head(15) %>%
kable()
| track_name | valence |
|---|---|
| NaNa | 0.891 |
| Pusha Man | 0.883 |
| The Big Day | 0.822 |
| The Big Day | 0.814 |
| Favorite Song | 0.811 |
| Nostalgia | 0.810 |
| Juice | 0.804 |
| Ballin Flossin | 0.789 |
| No Problem (feat. Lil Wayne & 2 Chainz) | 0.788 |
| Long Time | 0.773 |
| Ballin Flossin | 0.766 |
| 22 Offs | 0.726 |
| All Day Long | 0.717 |
| Family | 0.698 |
| All Day Long | 0.697 |
NaNa is the most joyful song
Valence by album:
Chance_the_Rapper %>%
group_by(album_name) %>%
summarise(mean(valence)) %>%
arrange(desc(`mean(valence)`)) %>%
kable()
| album_name | mean(valence) |
|---|---|
| 10 Day | 0.5571429 |
| The Big Day | 0.5499091 |
| Acid Rap | 0.4915714 |
| Coloring Book | 0.4329286 |
The Big Day has the highest Valence meaning it is the most joyful album
Which album has the biggest emotional journey?
ggplot(Chance_the_Rapper, aes(x = valence, y = album_name)) +
geom_joy() +
theme_economist() +
ggtitle("Joyplot of Chance the Rapper's joy distributions",
subtitle = "Based on valence pulled from Spotify's Web API with spotifyr")
Acid Rap has the biggest emotional journey (makes sense with drug addiction) and The Big Day is the most joyful.
Using code from https://msmith7161.github.io/what-is-speechiness/, I will be looking at how Danceability was distributed between the albums
green <- "#1ed760"
yellow <- "#e7e247"
pink <- "#ff6f59"
blue <- "#17bebb"
ggplot(Chance_the_Rapper, aes(x=danceability, fill=album_name,
text = paste(album_name)))+
geom_density(alpha=0.7, color=NA)+
scale_fill_manual(values=c(green, yellow, pink, blue))+
labs(x="Danceability", y="Density") +
guides(fill=guide_legend(title="Album Name"))+
theme_economist()+
ggtitle("Distribution of Danceability Data")
Acid Rap and The Big Day have the highest danceability
All main 10 curse words throughout all Chance’s albums decrease in each album. I believe the large explicitness in 10 Day is Chance releasing his anger towards the world. Using so many curse words is representative of his failures. That could be a big reason why this first album did not take off. In Acid Rap the amount of curse words decrease by almost half. This could relate to his music career taking off. There is a new lightness to his music even though he is experiencing drug addiction. In Coloring Book the explicitness decreases by another third from the amount in Acid Rap. Coloring Book is Chance at the happiest we have seen him. He is over his drug addiction and reflecting on his past. He uses his music to continue forward and look at the blessings around him “Like {his} ex-girl getting pregnant, And her becoming {his} everything”. The Big Day is released three years after Coloring Book. During this time Chance’s fame is growing and he become a father. This time allows for a lot of growth but also possibly a new image/sound. This can be quantified by the increase in danceability from album to album. The release of The Big Day looks into a new tone in Chance’s music. The Big Day is extremely pop-y and mainstream sounding. I believe the slight increase in explicitness in The Big Day from Coloring Book is an example of the more mainstream look he is going for.
From my analysis I believe Chance the Rapper’s music did become more positive as his life became more positive. This conclusion is due more to the increase in danceability and Valence per album rather than the lyrics. While the lyrics in most albums have large negative sentiments, the danceability and joy in each album increases. Although not necessarily the lyrics, the tone of the albums overall become more positive. Looking at the frequency of curse words within each album also shows the decline in negativity or even need for those words as time continues.