Onika Tanya Maraj-Petty also known as Nicki Minaj 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 (Roman)."
I hypothesize 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 sentiment will be in the Pink Friday: Roman Reloaded album where Roman is featured in almost every song.
Source: Roman Zolanski. Nicki Minaj Wiki. (n.d.). Retrieved from 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 the number of occurrences (n) and sentiment value (value), 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 therefore, uses words to describe both the positive and more importantly, negative feelings, associated with love.
It would be interesting to conduct further analysis of this data for the following:
- The sentiment of the albums in ascending order to see if Pink Friday: Roman Reloaded has the lowest n and value for positive words. - Analyze each song Roman is on to see how they've changed over time. - Analyze Minaj's other alter-egos such as "Martha Zolanski" and "Queen Sleeze" to compare how they differ in both occurrence and sentiment Updated 12/28/2022