An analysis of Rap Lyrics
Report Bug
·
Request Feature
Table of Contents
Rap is one of the four fundamental elements of Hip-Hop and has gained more popularity than ever since the beginning of this movement. However, this genre received lots of criticism from the media due to its often used aggressive language.
This criticism of the media has been always accompanying for years but now we Rap Music has reached a state where even rappers themselves criticize the current state of Rap. Eminem, one of the most famous and successful artist in this genre, released - without any indication or announcement - his 2018 surprise album 'Kamikaze'. Most of the tracks expresses his anger and discontent about the c urrent trends in Hip-Hop Music and he also makes fun and verbally attacks some other, younger Hip-Hop artists, that are currently trending.
Given the long history of Rap Music and how recent the aforementioned event is, one thoroughly consider whether the music itself, especially the text, has changed.
This Project scraped the lyrics from genius.com from 12 artists from different eras of Hip-Hop and analyzed them in terms of chosen words, statistics, sentiment and topics. Each Notebook contains my own explainations of the analysis steps and also some resources about the theory behind the analysis.
This Project uses following libraries for Data Engineering, Analysis and Visualization:
Webscraping/Lyrics aqcuisition was done with these libraries:
Note: At the time of this creation I was not aware of the official Genius API which is why I did web scraping for aqcuiring the data.
You can run these notebook on your end and the script for downloading lyrics can be used for other artist as well, as long as the URLs passed on are from Genius.
With pipenv
we can easily install all dependencies listed above:
pipenv install
The notebooks contain text cells which explain each analysis step.
TODO: Add argparse for lyric downloader
The python script can be found in utils/genius_scraper.py
.
Contributions are what make the open source community such an amazing place to be learn, inspire, and create. Any contributions you make are greatly appreciated.
- Fork the Project
- Create your Feature Branch (
git checkout -b feature/AmazingFeature
) - Commit your Changes (
git commit -m 'Add some AmazingFeature'
) - Push to the Branch (
git push origin feature/AmazingFeature
) - Open a Pull Request
Github: neihtq
E-mail: q.thien.nguyen@outlook.de