Onika Tanya Maraj also known as Nicki Mianj is a hip hop rapper known for her colorful wigs, outfits and her flow. She is also known for her alter ego, Roman Zolanski. Roman is described to be a "homosexual male from London, England, characterized as being far more outspoken (and perhaps malicious) than Minaj herself."
My hypothesis is that the album where Nicki Minaj's alter ego Roman appears most often is more negative in sentiment than other albums. I believe that the highest negative senitment will be in the Pink Friday: Roman Reloaded album where Roman is inheriently featured in almost every song.
Source: https://nickiminaj.fandom.com/wiki/Roman_Zolanski
library(genius)
library(tidytext)
library(tidyr)
library(readr)
library(ggplot2)
library(GGally)
## Registered S3 method overwritten by 'GGally':
## method from
## +.gg ggplot2
library(stringr)
library(dplyr)
##
## Attaching package: 'dplyr'
## The following objects are masked from 'package:stats':
##
## filter, lag
## The following objects are masked from 'package:base':
##
## intersect, setdiff, setequal, union
NickiAlbums <- tribble(
~ artist, ~ title,
"Nicki Minaj", "Pink Friday",
"Nicki Minaj", "Pink Friday: Roman Reloaded",
"Nicki Minaj", "The Pinkprint",
"Nicki Minaj", "Queen"
)
nicki_lyrics <- NickiAlbums %>%
add_genius(artist, title, type = "album")
## Joining, by = c("album_name", "track_n", "track_url")
## Joining, by = c("album_name", "track_n", "track_url")
## Joining, by = c("album_name", "track_n", "track_url")
## Joining, by = c("album_name", "track_n", "track_url")
## Joining, by = c("artist", "title")
nicki_lyrics %>%
filter(title %in% "Pink Friday") %>%
unnest_tokens(word, lyric) %>%
anti_join(stop_words) %>%
count(word, sort = TRUE) %>%
wordcloud2::wordcloud2()
## Joining, by = "word"
nicki_lyrics %>%
filter(title %in% "Pink Friday: Roman Reloaded") %>%
unnest_tokens(word, lyric) %>%
anti_join(stop_words) %>%
count(word, sort = TRUE) %>%
wordcloud2::wordcloud2()
## Joining, by = "word"
nicki_lyrics %>%
filter(title %in% "The Pinkprint") %>%
unnest_tokens(word, lyric) %>%
anti_join(stop_words) %>%
count(word, sort = TRUE) %>%
wordcloud2::wordcloud2()
## Joining, by = "word"
nicki_lyrics %>%
filter(title %in% "Queen") %>%
unnest_tokens(word, lyric) %>%
anti_join(stop_words) %>%
count(word, sort = TRUE) %>%
wordcloud2::wordcloud2()
## Joining, by = "word"
nicki_lyrics %>%
filter(title %in% "Pink Friday") %>%
unnest_tokens(word, lyric) %>%
anti_join(stop_words) %>%
count(word, sort = TRUE) %>%
inner_join(get_sentiments("afinn")) %>%
arrange(desc(-value)) -> Nicki_Album1
## Joining, by = "word"
## Joining, by = "word"
Nicki_Album1 %>%
head(10)
## # A tibble: 10 x 3
## word n value
## <chr> <int> <dbl>
## 1 bitch 47 -5
## 2 bitches 29 -5
## 3 niggas 10 -5
## 4 motherfucker 7 -5
## 5 cock 2 -5
## 6 cunt 2 -5
## 7 motherfucking 1 -5
## 8 slut 1 -5
## 9 fuck 30 -4
## 10 shit 29 -4
nicki_lyrics %>%
filter(title %in% "Pink Friday: Roman Reloaded") %>%
unnest_tokens(word, lyric) %>%
anti_join(stop_words) %>%
count(word, sort = TRUE) %>%
inner_join(get_sentiments("afinn")) %>%
arrange(desc(-value)) -> Nicki_Album2
## Joining, by = "word"
## Joining, by = "word"
Nicki_Album2 %>%
head(10)
## # A tibble: 10 x 3
## word n value
## <chr> <int> <dbl>
## 1 bitches 48 -5
## 2 bitch 43 -5
## 3 niggas 15 -5
## 4 motherfucker 4 -5
## 5 cock 1 -5
## 6 motherfucking 1 -5
## 7 fuck 40 -4
## 8 shit 37 -4
## 9 dick 22 -4
## 10 damn 18 -4
nicki_lyrics %>%
filter(title %in% "The Pinkprint") %>%
unnest_tokens(word, lyric) %>%
anti_join(stop_words) %>%
count(word, sort = TRUE) %>%
inner_join(get_sentiments("afinn")) %>%
arrange(desc(-value)) -> Nicki_Album3
## Joining, by = "word"
## Joining, by = "word"
Nicki_Album3 %>%
head(10)
## # A tibble: 10 x 3
## word n value
## <chr> <int> <dbl>
## 1 bitches 60 -5
## 2 niggas 60 -5
## 3 bitch 49 -5
## 4 cock 1 -5
## 5 fuck 45 -4
## 6 ass 18 -4
## 7 shit 14 -4
## 8 fucked 6 -4
## 9 fucking 6 -4
## 10 dick 5 -4
nicki_lyrics %>%
filter(title %in% "Queen") %>%
unnest_tokens(word, lyric) %>%
anti_join(stop_words) %>%
count(word, sort = TRUE) %>%
inner_join(get_sentiments("afinn")) %>%
arrange(desc(-value)) -> Nicki_Album4
## Joining, by = "word"
## Joining, by = "word"
Nicki_Album4 %>%
head(10)
## # A tibble: 10 x 3
## word n value
## <chr> <int> <dbl>
## 1 bitch 44 -5
## 2 niggas 31 -5
## 3 bitches 26 -5
## 4 motherfucking 1 -5
## 5 fuck 51 -4
## 6 shit 33 -4
## 7 ass 5 -4
## 8 damn 5 -4
## 9 dick 4 -4
## 10 fucking 3 -4
In conclusion, when looking at value and n, Pink Friday: Roman Reloaded does not have the highest negative sentiment by word, it is second to The Pinkprint. The Pinkprint can be described as Minaj's most lovey-dovey/intimate album and because of that uses words to describe both the positive and more importantly, negative feelings, associated with love.
It would be interesting to analyze the sentiment of the albums in ascending order to see if Pink Friday: Roman Reloaded has the lowest n and value for positive words. It would also be interesting to do an analysis on each individual song Roman is on to see how they've changed over time.
Although Minaj's first and most utilized alter ego is Roman, it would be interesting to see how her others such as "Martha Zolanski"" and "Queen Sleeze" differ in both occurance and sentiment.