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")

Most Common Words in Nicki Minaj Albums

Pink Friday Word Cloud

nicki_lyrics %>%
  filter(title %in% "Pink Friday") %>% 
  unnest_tokens(word, lyric) %>% 
  anti_join(stop_words) %>% 
  count(word, sort = TRUE) %>%
  wordcloud2::wordcloud2()
## Joining, by = "word"

Pink Friday: Roman Reloaded Word Cloud

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"

The Pinkprint Word Cloud

nicki_lyrics %>%
  filter(title %in% "The Pinkprint") %>% 
  unnest_tokens(word, lyric) %>% 
  anti_join(stop_words) %>% 
  count(word, sort = TRUE) %>%
  wordcloud2::wordcloud2()
## Joining, by = "word"

Queen Word Cloud

nicki_lyrics %>%
  filter(title %in% "Queen") %>% 
  unnest_tokens(word, lyric) %>% 
  anti_join(stop_words) %>% 
  count(word, sort = TRUE) %>%
  wordcloud2::wordcloud2()
## Joining, by = "word"

Sentiment Values By Album

Pink Friday

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

Pink Friday: Roman Reloaded

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

The Pinkprint

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

Queen

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

Conclusion

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