Analyser les paroles de différents genres musicaux avec un codage universel des phrases
Avant de commencer à étudier l’incorporation de phrases, lançons quelques graphiques simples à l’aide de Plotly.
Je préfère généralement les visualisations Plotly à toute autre chose. Ils sont plus beaux, interactifs et vous pouvez facilement les organiser et les partager en utilisant Plotly Chart Studio. Le seul inconvénient est qu’il peut prendre beaucoup de code (et beaucoup de dictionnaires imbriqués!) Pour tirer quelque chose d’utile de Plotly, ce qui est ennuyeux quand tout ce que vous voulez faire est d’explorer rapidement les données.
Une chose que je recommanderais est mise à jour de Plotly à au moins 4,8 comme les pandas peuvent désormais utiliser Plotly comme bibliothèque pour le traçage backend par opposition au Matplotlib «ayant une déficience esthétique».
Dans le bloc de code ci-dessous – nous pouvons lancer un simple graphique à barres de Pandas DataFrame juste en ajoutant .plot.bar()
à un objet DataFrame.
Simple comme 123, abc!
pd.DataFrame([1,2,3],['a','b','c']).plot.bar()
Vous pouvez modifier l’apparence de votre silhouette si vous le souhaitez en utilisant les mêmes paramètres que vous utiliseriez normalement avec un Tracer graphiquement des objets, il y a donc cette flexibilité familière supplémentaire.
Bon retour au projet …
J’ai décidé d’obtenir des paroles d’un gamme des genres, certains plus extrêmes que d’autres afin de voir si nous pouvons voir des différences mais j’ai aussi choisi des genres très imbriqués pour voir s’il y a des points communs.
Voyons le nombre de chansons dans chaque genre que nous avons.
#plot genres
fig_genre = pd.DataFrame(df.genre.value_counts()).plot.bar(template='ggplot2')#title parameters
title_param = dict(text='Count of Genre
',
font=dict(size=20))#update layout
fig_genre.update_layout(title=title_param,
width=1000,
height=500,
xaxis = dict(title='Genre'),
yaxis = dict(title='Count'))#change the colour
fig_genre.update_traces(marker_color='rgb(148, 103, 189)')#show plot
fig_genre.show()
Chaque genre est raisonnablement bien représenté – suffisamment pour faire au moins des comparaisons significatives.
Et les artistes par genre?
Allons en ville avec une visualisation et créons une carte de genre et d’artiste. Si vous souhaitez interagir avec le tracé, le lien vers le tracé d’origine se trouve dans la note de bas de page.
J’ai un éventail de groupes et d’artistes qui, selon moi, représentent ces genres. Vous pourriez ne pas être d’accord avec moi. C’est bien, la définition du genre peut être controversée.
Explorons la longueur des paroles par genre.
#get lyric frequencies for each song
df['lyric_count'] = df['lyrics'].map(lambda x: len(x.split()))
Le hip-hop est un genre très lyrique – de nombreuses métriques descriptives clés qui décrivent le nombre de paroles pour le hip-hop sont différentes de tous les autres genres.
Il sera intéressant de voir si le contenu de ces paroles sont également différentes lorsque nous analysons le contenu de ces paroles. Ce qui m’amène commodément à la prochaine partie de l’analyse EDA… Part of Speech (PoS).