The aim of this project was to build an automated song recommender and is structured in multiple steps:
-
First, the Top Currently Trending Billboard 100 Songs were webscraped from the respective website and saved to a csv file [BB_Hot100_Webscraping.ipynb].
-
A 43000 entry dataset [curated_audio_features_dataset_curated.csv] of songs and their respective audio features (such as tempo, loudness, danceability) was the basis for applying unsupervised machine learning to cluster them based on similar song audiofeatures. The best results were achieved through a grouping in the following 7 clusters: 0: "Dancy", 1: "Rocky", 2: "Classy", 3: "Folky", 4: "Electry", 5: "Poppy", 6: "Rappy" and stored in a new CSV file [new_af_clusters_7.csv].
-
The song recommender function works by asking the user what mood they are in today and offers the predifined clusters options as well as an additional "trendy" category based on the previously scraped top one 100 songs. It the randomly selects and plays one song from the respective cluster/ group. [Song_recommender.ipynb]