Bonjour et bon après-midi. Je suis ici pour présenter mon projet de recherche, « Analyse des tendances musicales du XXIe siècle à l'aide de l'analyse des sentiments et du texte », lors du JMP Discovery Summit. Je m'appelle Srichandrika Gadde et je suis accompagnée de ma partenaire de recherche, Delaney Carroll. Nous sommes étudiantes en master à l'Université d'État de l'Oklahoma, où nous suivons le cursus « Analyse commerciale et science des données ».
Voici un aperçu de ce projet. Réalisé dans le cadre d'un cours de master à l'Université d'État de l'Oklahoma, ce projet vise à analyser les sentiments et les caractéristiques textuelles des paroles afin d'identifier les évolutions des tendances musicales et de déterminer les facteurs influençant le succès commercial des chansons. Nous avons utilisé JMP Pro 18 (édition étudiante) pour sa réalisation. Notre méthodologie a suivi un processus standard : le prétraitement des données a permis de les préparer à l'analyse. Nous avons notamment nettoyé certaines colonnes et effectué des imputations (j'y reviendrai). Nous avons ensuite analysé les paroles (analyse des sentiments et du texte), puis réalisé une analyse exploratoire des données (EDA) pour identifier les évolutions et les tendances. Enfin, nous avons construit des modèles prédictifs pour anticiper les facteurs de succès commercial tels que la popularité et la durée de présence dans les classements. La validation des résultats a conclu ce processus.
Voici un aperçu de ces données. Elles proviennent de Kaggle et nous analysons le classement Billboard Hot 100, une référence dans l'industrie musicale américaine. Nous utilisons trois ensembles de données : le classement hebdomadaire de Billboard, les données audio de Spotify et les paroles des chansons du Billboard Hot 100 de 2020 à 2022. Après avoir fusionné ces trois ensembles, nous avons exploré et identifié les évolutions et les tendances. Ces données constituent notre base pour analyser les tendances musicales des chansons les plus populaires.
Lors du prétraitement des données, nous avons nettoyé quelques colonnes de texte (titres des chansons et des artistes) à l'aide de Python afin de les homogénéiser, ce qui facilitera la fusion de nos ensembles de données. Nous avons ensuite identifié des données manquantes (enregistrements manquants dans certaines données audio) que nous avons imputées par la moyenne à l'aide de JMP. Enfin, nous avons créé des caractéristiques pour certaines variables, telles que le nombre total de semaines dans les classements, les meilleures positions et le top 10. Nous les détaillerons plus loin. Voilà pour le prétraitement des données.
Nous commençons maintenant par l'analyse des paroles. Dans cette phase, nous cherchons à répondre à des questions telles que : comment le sentiment ou la complexité des paroles a-t-il évolué entre 2000 et 2022 ? Ou encore : comment les genres musicaux ou les tendances musicales ont-ils évolué au fil des ans ? Pour cette analyse, nous avons utilisé des scripts Python dans JMP afin de réaliser l'analyse des sentiments et l'analyse textuelle. Pour l'analyse des sentiments, nous avons utilisé Vader, un outil qui calcule des scores de sentiment : positifs et négatifs. Il s'agit d'un lexique, un outil d'analyse des sentiments basé sur des règles, qui nous permet d'identifier le sentiment global d'un texte. Nous l'utilisons pour identifier le sentiment des paroles. Nous avons créé quatre catégories : Vader positif, Vader négatif, Vader neutre et Vader composé.
La partie suivante concerne l'analyse textuelle. Nous avons créé quatre caractéristiques : le TTR (taux de répétition), l'Hapax Legomena (nombre de mots uniques par rapport au nombre total de mots). L'Hapax Legomena compte le nombre de mots qui n'apparaissent qu'une seule fois dans le texte. La densité lexicale correspond au ratio entre le contenu et la complexité lyrique (noms, verbes, adjectifs, etc.). Ce critère permet d'éliminer les expressions accrocheuses ou les phrases de remplissage qui n'apportent rien à la complexité lyrique. La complexité lyrique est la moyenne des trois caractéristiques les plus importantes. Il en va de même pour le composé Vader, qui nous donne le sentiment global, allant du positif au négatif. Ce sont les huit caractéristiques que nous avons créées. Nous pouvons maintenant utiliser JMP pour observer leur évolution dans le temps.
Tout d'abord, concernant les caractéristiques de Vader, on constate que la dimension positive est restée relativement stable. On observe quelques fluctuations entre 2005 et 2015, mais fin 2022, elle était quasiment identique à celle de 2000. Quant à la dimension neutre, elle représente la proportion de contenu neutre dans le texte. On constate une légère baisse, puis une légère hausse en 2021, mais globalement, la composante neutre des paroles a légèrement diminué entre 2000 et 2020. Concernant la dimension négative, elle a nettement augmenté. On observe une hausse significative entre 2000 et 2020, suivie d'une baisse, mais globalement, la composante négative de Vader a progressé. La dimension composite de Vader, qui représente le sentiment général, est en légère baisse.
Il a de nouveau fluctué entre 2006 et 2015, avant de légèrement diminuer fin 2022. Concernant les caractéristiques textuelles, le TTR a nettement progressé après 2020 et autour de cette année-là. L'Hapax, quant à lui, suit une tendance assez similaire. Cela s'explique principalement par le fait qu'ils mesurent une diversité lexicale comparable. L'Hapax étant presque directement proportionnel au TTR, leur évolution est très similaire. La densité lexicale, qui correspond au contenu lexical, a nettement augmenté entre 2000 et 2022, ce qui signifie que le vocabulaire des paroles s'est enrichi et diversifié. Le score de complexité lyrique, qui agrège les trois scores les plus élevés, a également progressé fin 2020. Nous examinons maintenant la moyenne du composé Vader par genre. Il s'agit du sentiment général exprimé à travers différents genres. Nous constatons que les standards pour adultes, la comédie, la K-pop, la soul et le gospel affichent un sentiment assez élevé, en accord avec leur thématique respective. Les genres musicaux les moins associés à Dark Vador sont le rap, le punk et la musique latine. Ce sont ceux qui contiennent le moins de références à Dark Vador. On peut donc en déduire que le genre influence le sentiment général des paroles. Les genres comme le punk et le rock auront certainement un sentiment général moins négatif, car ils sont de nature plus pessimiste.
Passons au suivant. Ici, nous cherchons à visualiser la moyenne des composantes négatives et positives de l'influence de Vader selon les genres musicaux. Visuellement, on constate immédiatement que la composante positive est supérieure à la composante négative dans tous ces genres. Cela signifie que même si certains genres sont majoritairement négatifs, ils comportent aussi des éléments positifs, des paroles positives. On remarque d'emblée que le punk et le rap présentent la plus forte composante négative, tandis que la musique pour enfants et les standards pour adultes en contiennent le moins. Cela paraît logique, car le punk et le rap… Leurs paroles abordent souvent la colère, la rébellion et les luttes, ce qui les rend plus négatifs que la musique pour enfants, qui devrait être plus positive. Ce tableau récapitule les moyennes de toutes les caractéristiques que nous avons créées au fil des années et des genres afin d'explorer l'évolution des tendances musicales.
Nous avons ainsi créé cette carte thermique, dont la taille est proportionnelle au nombre de titres présents dans le classement. On constate immédiatement que la pop domine largement le genre, notamment grâce à sa forte présence dans le Billboard Hot 100. Son influence est globalement positive et constante. Elle affiche un indice Vader élevé sur l'ensemble des années, ce qui explique probablement sa plus grande portée et sa présence dans le Billboard Hot 100. Le rap, quant à lui, présente quelques fluctuations. Fin 2020, il a pris une tournure plus négative, tandis que le hip-hop et la country conservent une image positive et stable. Voilà quelques-unes des conclusions que nous pouvons tirer de cette analyse. Voici une autre carte thermique où nous comparons le TTR (temps passé à la recherche) par genre et par année. Dans ce graphique TTR, on constate que la pop, le rap, le R&B, le hip-hop et la country affichent des TTR relativement élevés et constants entre 2000 et 2022. À l'inverse, les chants religieux, les standards pour adultes et la musique pour enfants présentent les TTR les plus faibles et stables. Cela suggère une moindre complexité des paroles, voire une plus grande simplicité, car ces genres ne cherchent pas à exprimer des émotions profondes. C'est une conclusion importante que nous pouvons tirer de cette analyse.
Une autre question à laquelle nous cherchons à répondre est la suivante : entre 2010 et avant, en fonction des évolutions culturelles, y a-t-il eu des changements significatifs dans la musique ? Pour cela, nous avons créé une colonne distincte regroupant toutes les années et les chansons d'avant et d'après 2010, que nous utilisons dans notre analyse ANOVA. Dans cette analyse à un facteur, nous avons comparé la densité lexicale avant et après 2010 afin de déterminer s'il y avait eu un changement majeur. Le résultat est une valeur de signification inférieure à 0,001, ce qui indique un changement significatif. Nos visualisations initiales montrent une nette augmentation de la densité lexicale fin 2020. Ce changement est significatif et la densité lexicale des paroles était plus simple avant 2010 qu'après. Nous avons tenté la même analyse avec le composé Vader pour vérifier s'il y avait eu un changement majeur dans le sentiment général avant et après 2010. La valeur P était de 0,09, ce qui signifie qu'il n'y a pas eu beaucoup de changement dans le sentiment général, même s'il y a eu des fluctuations, donc par rapport à avant et après, peu de changement.
Nous avons effectué la même analyse avec le TTR pour vérifier s'il y avait un changement majeur (p = 0,033). Là encore, je dirais qu'il n'y a pas de différence significative entre le TTR avant et après 2010. Cela dit, nous avons également vérifié si les trois caractéristiques combinées présentaient un changement significatif. Pour cela, nous avons utilisé une analyse MANOVA. Celle-ci montre que le score Vader a diminué après 2010, ce qui indique une baisse du sentiment général, et que la densité lexicale a augmenté, tandis que le TTR est resté quasiment inchangé. Visuellement, des changements sont donc visibles. Mais, si l'on considère l'ensemble des caractéristiques combinées, ce changement est-il significatif ? Le test F, réalisé avant et après l'intervention, était inférieur à 0,001, ce qui signifie que ces trois caractéristiques ont évolué entre 2010 et 2010. Ceci conclut la première phase : l'analyse des paroles. Les conclusions générales seraient que le genre et le sentiment général interagissent, que le sentiment général augmente ou diminue en fonction du genre, et nous observons également que la complexité lyrique a augmenté à la fin de 2020.
Je passe maintenant la parole à Delaney pour qu'il nous présente la deuxième partie du projet, celle où nous allons construire des maquettes.
Merci, Srichandrika, pour cette démonstration d'analyse des paroles. Nous allons maintenant voir comment utiliser l'analyse textuelle dans les modèles prédictifs. Nous avons opté pour le modèle de forêt bootstrap pour cette analyse en raison de sa capacité à traiter des données complexes. Des caractéristiques musicales comme le sentiment, la complexité des paroles, le genre et l'année peuvent interagir de manière non linéaire, ce que des modèles simples comme la régression linéaire ne peuvent pas saisir. JMP produit également un classement de l'importance des variables, ce qui nous permet de voir quels facteurs influencent le plus la popularité ou la longévité des campagnes de remarketing. De plus, les modèles de forêt bootstrap évitent le surapprentissage en combinant les résultats de différents arbres. Je vais commencer sans plus attendre par une démonstration en direct.
En plus de nos données hebdomadaires de classement Billboard et de nos analyses audio musicales, nous disposons de variables représentant le sentiment exprimé dans les textes et l'analyse des paroles. L'ensemble de données sur lequel je travaille comprend les données hebdomadaires du classement Billboard. Il contient un nombre important d'enregistrements, environ plus de 130 000.
Nous allons commencer par une analyse exploratoire des données afin d'examiner les tendances et les schémas. Nous allons commencer par visualiser la distribution de nos variables pour identifier la structure des données. Il suffit d'aller dans « Analyser », puis « Distribution ». J'ai déjà toutes mes variables, mais il suffit de cliquer sur « OK » et de regarder en mode « pile », beaucoup plus lisible. Nous pouvons ainsi visualiser la distribution de nos variables. Voici nos genres. Nous en avons environ 25, et nous pouvons même les trier par nombre d'occurrences. La pop est de loin le genre le plus populaire, suivie par la country et le rap. Ensuite, nous allons créer une visualisation de série temporelle à l'aide de l'outil de création de graphiques. J'aimerais observer l'évolution du nombre de genres au fil du temps. Nous pouvons le faire dans l'outil de création de graphiques, mais j'y ai déjà importé tous mes éléments. Nous allons placer l'identifiant de la semaine sur l'axe des abscisses, puis colorer les données par genre et ajouter une superposition pour les visualiser simultanément. Ensuite, nous cliquons sur OK. Ici, il y a beaucoup de genres, mais cela représente plusieurs années. Celui-ci est de la pop. Celui-ci est du wrap. Vous pouvez constater qu'après 2015, la pop et le wrap se disputent la première place du classement.
Dans notre analyse exploratoire des données (EDA), j'aime également créer une matrice de corrélation avec toutes mes variables numériques afin de repérer d'éventuelles variables prédictives fortement corrélées. Pour ce faire, nous utilisons l'outil multivarié et les méthodes multivariées ; je vais relancer mon analyse, puis y saisir toutes les variables numériques et cliquer sur « Go ». Cette matrice met en évidence les relations fortement corrélées. Ici, nous observons une forte corrélation entre l'énergie et l'intensité sonore. Il est important de n'inclure qu'une seule de ces variables dans notre modèle afin de réduire la multicolinéarité. Un test statistique que j'utilise fréquemment pour analyser les relations entre différentes variables est l'ANOVA à un facteur.
Nous avons vu précédemment que l'ensemble de données comporte environ 25 genres principaux. Je souhaite vérifier s'il existe des différences significatives entre les moyennes de ces différents genres. J'ai commencé par examiner comment la durée de présence, ou le nombre total de semaines sur le graphique, peut varier d'un genre à l'autre. Pour ce faire, nous pouvons effectuer un ajustement Y par X, en remplaçant X par le genre, puis en sélectionnant le nombre total de semaines sur le graphique. Il ne s'agit pas de l'option correspondante. Nous allons maintenant sélectionner le nombre total de semaines sur le graphique, puis cliquer sur OK. Ensuite, nous effectuerons une ANOVA des moyennes, puis comparerons les moyennes, et enfin chaque paire de genres. La valeur p ci-dessous indique une différence significative.
Pour revenir au rapport « Lettres de connexion », il nous montre comment les différents groupes ou genres se distinguent les uns des autres. On constate ici que le genre « K-pop » possède la moyenne de longévité dans les classements la plus élevée et se distingue statistiquement de tous les autres. Il en va de même pour les genres suivants : indie pop, pop et post-grunge. Ils ne partagent aucune lettre avec aucun autre genre et sont donc statistiquement supérieurs. On peut appliquer le même processus pour analyser la position maximale par genre, en utilisant simplement la variable « position maximale » comme variable Y. Concernant les lettres de connexion, on observe que les genres ayant la moyenne la plus faible atteignent généralement des positions plus élevées dans les classements. Fait intéressant, la K-pop présente la moyenne la plus faible, ce qui indique qu'elle est plus susceptible d'apparaître en haut des classements. Ce résultat est d'autant plus intéressant que, d'après le test ANOVA de longévité, la K-pop n'est pas très bien classée. Cela pourrait indiquer que la K-pop a une forte capacité à devenir virale et à atteindre un pic initial, mais qu'elle n'a pas une grande longévité et chute rapidement dans les classements.
Nous pourrions également réaliser une analyse de variance (ANOVA), comme l'a fait Srichandrika avec les variables de texte et de sentiment, afin d'observer les différences entre les genres et les autres groupes. Notre analyse exploratoire des données (EDA) étant terminée, nous pouvons passer à la modélisation prédictive. Mais il nous faut d'abord créer une colonne de validation pour chaque variable de réponse. JMP Pro permet de le faire facilement. Il suffit d'aller dans « Modélisation prédictive », puis dans « Colonne de validation ». Nous allons en créer une pour chaque variable. Nous allons construire deux modèles : un pour la longévité et un modèle de classification pour prédire si une chanson a des chances d'entrer dans le top 10. Nous allons stratifier les données en fonction du nombre total de semaines dans les classements, qui est l'une de nos réponses. Nous allons effectuer une répartition 60/20/20. Puisque nous créons plusieurs colonnes, nous allons les nommer afin de les identifier facilement. Nous allons simplement générer une valeur aléatoire parmi 1, 2, 3, 4 et 5. Cela créera les colonnes.
J'en ai déjà créé un pour le top 10, je ne vais donc pas le refaire. Maintenant que nos colonnes de validation sont en place, nous pouvons commencer à construire nos modèles prédictifs. JMP propose une option de forêt bootstrap que vous pouvez facilement utiliser. Je vais relancer mon analyse. Je place notre variable réponse dans l'axe des ordonnées, puis toutes nos variables explicatives, et enfin, je m'assure d'inclure la colonne de validation que nous avons créée. Afin d'éviter un temps d'exécution trop long, je choisis d'exclure du modèle certaines variables catégorielles comportant de nombreux groupes. Par exemple, j'aimerais observer l'influence d'un artiste sur la longévité dans les classements, mais il y en a beaucoup trop dans l'ensemble de données pour un modèle efficace. En incluant les variables comme entrées, nous veillons également à exclure celles que nous voulons éviter en raison de la multicolinéarité. Ici, j'ai inclus l'énergie à la place du volume sonore pour éviter ce problème. Vérifions que notre validation est bien en place. Nous allons cliquer sur OK.
La fenêtre de configuration de la forêt Bootstrap s'affiche et vous demande le nombre d'arbres du modèle et le nombre de variables explicatives à considérer aléatoirement à chaque division. Vous pouvez spécifier le nombre d'arbres construits, leur profondeur maximale, la quantité de données analysées par chaque arbre et le degré d'aléatoire des divisions. Modifier ces paramètres permet d'optimiser le compromis entre précision, temps d'exécution et surapprentissage. Pour commencer, nous allons utiliser les valeurs suggérées et cliquer sur OK pour visualiser les résultats. Cette étape prend généralement quelques secondes, car JMP construit plusieurs arbres de décision en arrière-plan. Patientons un peu. Le jeu de données étant assez volumineux, le temps d'exécution sera également impacté. Voilà ! Notre R² est de 0,89, ce qui est déjà très bon. Si nous pensons que les résultats peuvent être améliorés, nous pouvons relancer le modèle avec des spécifications différentes et comparer les performances. Ici, en cliquant sur le triangle rouge, on peut analyser les contributions des colonnes et voir comment nos variables influencent la durée de présence dans le classement. La position maximale est ici la variable la plus influente, ce qui est logique puisque les chansons qui atteignent une position maximale plus élevée ont généralement tendance à rester plus longtemps dans le classement.
Nous allons maintenant procéder de la même manière pour notre deuxième modèle. Où se trouve-t-il ? Sauf que nous utiliserons notre variable binaire comme variable Y, et nous veillerons à inclure la validation de cette variable de réponse. Ici aussi, j'ai choisi de ne pas inclure la position du pic, car je l'ai utilisée pour créer la variable des 10 meilleurs résultats. Nous allons tout laisser tel quel et observer les résultats. Le modèle de classification génère une matrice de corrélation pour les différentes données ou colonnes de validation. Nous pouvons également consulter ici la courbe ROC et la courbe de gain pour ce modèle, afin d'évaluer ses performances et sa capacité à distinguer les classes. Un score de 0,98 est excellent. Ceci conclut notre présentation du flux de travail JMP utilisé dans notre projet. En pratique, cette modélisation pourrait aider les artistes, les producteurs ou les maisons de disques à comprendre quelles caractéristiques des chansons influencent le plus leur succès et à anticiper les tendances du secteur. Notre projet n'est qu'un exemple de l'application de JMP aux données textuelles et d'analyse des sentiments dans la modélisation prédictive et les domaines créatifs.
Nous tenons à remercier tout particulièrement le Dr Chakraborty et le Dr McGaugh pour leur mentorat et leurs précieux conseils tout au long de notre programme de musique de chambre. Leurs encouragements et leurs analyses ont enrichi notre expérience et nous ont permis de progresser tant sur le plan technique que professionnel. Nous leur sommes reconnaissants du temps et du soutien qu'ils nous ont accordés et nous apprécions sincèrement l'opportunité d'apprendre sous leur direction. Merci à tous pour votre attention. Notre présentation est maintenant terminée.