Buongiorno e buon pomeriggio. Sono qui per presentare il progetto di ricerca "Analisi delle tendenze musicali del XXI secolo mediante analisi del sentiment e del testo" al JMP Discovery Summit. Mi chiamo Srichandrika Gadde e sono qui con la mia partner di ricerca, Delaney Carroll. Siamo studenti laureati dell'Oklahoma State University e stiamo seguendo il corso di Business Analytics e Data Science.
Una panoramica di questo progetto. Il progetto è stato condotto nell'ambito di un corso di laurea magistrale presso l'Oklahoma State University. L'obiettivo è analizzare il sentiment e le caratteristiche testuali dei testi per identificare sostanzialmente i cambiamenti nelle tendenze musicali nel tempo, nonché per verificare quali caratteristiche influenzano il successo commerciale delle canzoni. Per questo progetto, utilizziamo JMP Pro 18 Student's Edition. Per arrivare al flusso di lavoro, abbiamo seguito un flusso di lavoro piuttosto standard in cui abbiamo pre-elaborato i dati per prepararli all'analisi. Abbiamo sostanzialmente ripulito alcune colonne ed eseguito alcune imputazioni, di cui parlerò a breve. Poi siamo passati all'analisi dei testi, dove eseguiamo l'analisi del sentiment e del testo, e all'EDA, dove esploriamo queste caratteristiche per identificare cambiamenti e tendenze. Infine, arriviamo alla costruzione di un paio di modelli predittivi per prevedere le caratteristiche del nostro successo commerciale, come la popolarità e la longevità nelle classifiche. Infine, arriviamo alla convalida.
Una panoramica di questi dati. Abbiamo ricavato i nostri set di dati da Kaggle e stiamo fondamentalmente esplorando le classifiche Hot 100 di Billboard, che è una classifica standard del settore per il successo delle canzoni in America. Utilizziamo tre set di dati, principalmente il set di dati della Billboard Weekly Chart, le funzionalità audio di Spotify e il set di dati dei testi delle canzoni della Billboard Hot 100 dal 2020 al 2022. Utilizzando questi tre set di dati, li abbiamo uniti e abbiamo esplorato e identificato cambiamenti e tendenze. Questo è fondamentalmente il nostro punto di partenza per verificare quali tendenze musicali fossero presenti per le canzoni più popolari.
Nella pre-elaborazione dei dati, abbiamo sostanzialmente ripulito un paio di colonne di testo, nomi di canzoni e artisti usando Python per renderli tutti omogenei, il che può semplificare l'unione dei nostri set di dati. Poi abbiamo identificato un paio di feature mancanti, record mancanti in alcune feature audio che abbiamo imputato usando l'imputazione media, usando JMP. Infine, abbiamo ingegnerizzato alcune variabili come il numero totale di settimane in classifica, le posizioni di picco e la top_ten, eccetera. Ne parleremo a breve. Questa è stata la pre-elaborazione dei dati.
Ora iniziamo con l'analisi dei testi. In questa fase, fondamentalmente cerchiamo di rispondere ad alcune domande, come ad esempio: come sono cambiati il sentiment o la complessità dei testi nel tempo dal 2000 al 2022? Oppure ci poniamo domande come: come si sono evoluti i generi o le tendenze di genere nel corso degli anni? Per questa analisi, abbiamo utilizzato script Python all'interno di JMP per condurre l'analisi del sentiment e l'analisi del testo. Nell'analisi del sentiment, abbiamo utilizzato Vader, che in pratica... Calcola i punteggi del sentiment: positivo e negativo. È un lessico, uno strumento di analisi del sentiment basato su regole che può aiutarci a identificare il sentiment generale di un testo. Lo usiamo per identificare il sentiment per i testi. Abbiamo creato quattro funzionalità: Vader positivo, Vader negativo, Vader neutro e Vader composto.
La fase successiva è l'analisi del testo. In questo contesto, abbiamo creato quattro funzionalità: TTR, Hapax Legomena, Densità Lessicale e Complessità Lirica. Il TTR è fondamentalmente il numero di parole univoche rispetto al totale delle parole. Hapax è fondamentalmente il conteggio per verificare quante parole compaiono una sola volta nel contenuto del testo. La Densità Lessicale è fondamentalmente il rapporto tra il contenuto e il testo stesso, come nomi, verbi, aggettivi, ecc. Questo filtra sostanzialmente eventuali frasi accattivanti o frasi di riempimento che non contribuiscono effettivamente alla complessità lirica. La complessità lirica è fondamentalmente la somma delle prime tre. Lo stesso vale per il composto Vader, che ci fornisce il sentiment generale, da positivo a negativo positivo. Queste sono le otto funzionalità che abbiamo creato. Possiamo passare a JMP per vedere come queste funzionalità cambiano nel tempo.
Innanzitutto, per quanto riguarda le caratteristiche di Vader, vediamo il lato positivo. È rimasto relativamente lo stesso. Ha avuto alcune fluttuazioni tra il 2005 e il 2015, ma poi, alla fine del 2022, è rimasto praticamente lo stesso del 2000. Venendo alla neutralità di Vader. Questa neutralità di Vader indica la quantità di contenuto neutro presente nel testo. Vediamo una leggera diminuzione e poi un leggero aumento nel 2021, ma vediamo una leggera diminuzione nella componente neutrale complessiva dei testi dal 2000 al 2020. Per quanto riguarda la negatività di Vader, questa è decisamente aumentata. Possiamo vedere un aumento significativo dal 2000 al 2020, e poi vediamo un calo, ma poi la componente negativa complessiva di Vader è aumentata. Il composto di Vader è fondamentalmente il sentimento generale, che vediamo in una leggera diminuzione.
Ha nuovamente oscillato tra il 2006 e il 2015, per poi diminuire leggermente entro la fine del 2022. Anche per quanto riguarda le caratteristiche del testo nel corso degli anni, il TTR è decisamente aumentato dopo il 2020 e intorno al 2020. Hapax, come vediamo, segue un trend piuttosto simile al TTR. Questo principalmente perché misurano una diversità di vocabolario simile. Hapax è quasi direttamente proporzionale al TTR, quindi seguono un trend piuttosto simile. La densità lessicale, che è la parola del contenuto, è decisamente aumentata dal 2000 al 2022, il che significa che è stato utilizzato più vocabolario nei testi, che sono diventati più diversificati. Il punteggio di complessità lirica, che è un aggregato dei primi tre, è decisamente aumentato entro la fine del 2020. Ora stiamo esaminando la media del composto Vader nei diversi generi. Questo è il sentimento generale nei diversi generi. Vediamo che i generi per adulti, la commedia, il K-pop, il soul e il genere di culto hanno un sentimento piuttosto elevato, in linea con il tema del genere. I generi con meno elementi Vader sono il rap, il punk e il latino. Questi sono quelli con meno elementi Vader. Da questo, possiamo capire che il genere gioca un ruolo nel sentimento generale dei testi. Generi come il punk e il rock avranno sicuramente meno sentimento generale perché sono di natura più negativa.
Passiamo al prossimo. Qui vediamo che stiamo cercando di visualizzare la media di Vader negativo e Vader positivo nei vari generi. Visivamente, possiamo immediatamente identificare che il positivo di Vader è più alto del negativo di Vader in tutti questi generi, il che significa che, sebbene i generi siano altamente negativi, presentano anche alcune componenti positive, parole positive nelle loro canzoni. Immediatamente, possiamo identificare che il punk e il rap hanno la componente negativa più alta, mentre la musica per bambini o gli standard per adulti hanno la musica meno negativa. Questo ha senso perché il punk e il rap sono più... Hanno molti testi legati alla rabbia, alla ribellione e alle lotte, quindi sono di natura più negativa rispetto alla musica per bambini, che dovrebbe essere meno che più positiva. Questa è solo una tabella riassuntiva che mostra le medie di tutte le caratteristiche che abbiamo creato nel corso degli anni e dei generi per esplorare come le tendenze musicali si sono evolute nel corso degli anni e dei generi.
Con questo, abbiamo creato questa mappa termica, le cui dimensioni si basano sul numero di brani. Possiamo immediatamente vedere che il pop è un genere piuttosto dominante a causa del numero di canzoni che ha nelle classifiche Billboard Top 100. È piuttosto costantemente positivo, direi. Ha un alto composto Vader in tutti gli anni, e questo probabilmente ha anche una portata maggiore, che finisce nelle classifiche Billboard Hot 100. Possiamo vedere che il rap ha alcune fluttuazioni. Entro la fine del 2020, è diventato di natura più negativa, e anche l'hip hop o la musica country hanno un sentiment positivo piuttosto costante. Queste sono alcune delle informazioni che possiamo ottenere usando questo. Questa è un'altra mappa termica in cui controlliamo il TTR per genere e anno. In questo TTR, vediamo che anche il pop, il rap, l'RNB, l'hip hop o la musica country hanno TTR piuttosto alti e sono rimasti piuttosto costanti dal 2000 al 2022. La musica di culto, gli standard per adulti o la musica per bambini, in pratica, hanno i TTR più bassi e senza fluttuazioni. Questo dimostra che hanno testi molto meno complessi o molto più semplici perché non cercano di esprimere emozioni più profonde in alcun modo. Questa è una riflessione che possiamo trarre da questo.
Un'altra domanda a cui stiamo cercando di rispondere è: dopo e prima del 2010, in base ai cambiamenti culturali, ci sono stati cambiamenti significativi anche nella musica? Prima e dopo il 2010. Per questo, abbiamo creato una colonna separata che raggruppa tutti gli anni e le canzoni prima e dopo il 2010, che stiamo utilizzando nella nostra analisi ANOVA. In questa analisi unidirezionale, abbiamo confrontato questo dato con la densità lessicale prima e dopo il 2010 per vedere se ci fossero stati cambiamenti significativi o variazioni nella densità lessicale. A questo proposito, vediamo che il valore di significatività è inferiore a 0,001, il che significa che c'è stato un cambiamento significativo e che, dalle visualizzazioni iniziali, abbiamo visto che la densità lessicale è decisamente aumentata entro la fine del 2020. Questo cambiamento è stato di natura significativa e la densità lessicale dei testi era più semplice prima del 2010 rispetto a dopo. Abbiamo provato a fare la stessa analisi con il composto Vader per verificare se ci fossero stati cambiamenti significativi nel sentiment generale prima e dopo il 2010. Il valore P era 0,09, il che significa che non c'erano stati molti cambiamenti nel sentiment generale, nonostante ci fossero delle fluttuazioni, quindi rispetto a prima e dopo, non c'è stato un grande cambiamento.
Abbiamo effettuato la stessa analisi con il TTR per verificare se ci fosse stato uno spostamento significativo con un p-value di 0,033. Ancora una volta, direi che il TTR non presenta una differenza molto ampia tra il TTR prima e dopo il 2010. Detto questo, abbiamo anche verificato se le tre caratteristiche insieme avessero subito uno spostamento significativo. Per questo, utilizziamo un'analisi MANOVA. In questo, vediamo che il composto di Vader è effettivamente diminuito dopo il 2010, il che significa che il sentiment generale è diminuito e la densità lessicale è aumentata, mentre il TTR è rimasto praticamente invariato. Visivamente vediamo che ci sono stati cambiamenti, ma poi, se dovessimo verificare, come insieme definito combinato, c'è stato un cambiamento significativo? Per questo, quando l'abbiamo testato, vediamo che nel pre e nel post, il test F era inferiore a 0,001, il che significa che insieme questi tre elementi hanno subito uno spostamento prima e dopo il 2010. Questo conclude la prima fase, l'analisi lirica. I risultati complessivi sono che il genere e il sentimento generale interagiscono, che il sentimento generale aumenta o diminuisce in base al genere e che, alla fine del 2020, la complessità dei testi è aumentata.
Ora passerò la parola a Delaney, che ci guiderà nella seconda metà del progetto, in cui costruiremo i modelli.
Grazie, Srichandrika, per la dimostrazione sull'analisi dei testi. Ora vedremo come possiamo utilizzare l'analisi del testo nei modelli predittivi. Abbiamo scelto il modello bootstrap forest per questa particolare analisi grazie alla sua capacità di gestire dati complessi. Caratteristiche musicali come il sentiment, la complessità dei testi, il genere e l'anno possono interagire in modi non lineari che modelli semplici come la regressione lineare non riescono a catturare. JMP produce anche una classificazione dell'importanza delle variabili, che ci aiuta a vedere quali fattori influenzano maggiormente la popolarità o la longevità del retargeting. Inoltre, i modelli bootstrap forest impediscono l'overfitting combinando i risultati di alberi diversi. Entrerò subito nel vivo dell'argomento e inizierò con una demo dal vivo.
Oltre ai dati settimanali sulle classifiche e alle funzionalità audio musicali, abbiamo le nostre variabili che rappresentano il sentiment del testo e l'analisi dei dati dei testi. Il set di dati su cui lavoro include i dati settimanali delle classifiche di Billboard. Ci sono parecchi record. Sono circa oltre 130.000.
Per prima cosa, vogliamo avviare un'analisi esplorativa dei dati per esaminare le tendenze e gli schemi all'interno dei dati. Inizieremo visualizzando le distribuzioni delle nostre variabili per vedere dove si trovano i dati. Possiamo semplicemente andare su "Analizza" e fare la distribuzione. Poi ho già tutte le mie variabili qui, ma basta premere OK e poi guardare nel formato stack, che è molto più facile da visualizzare. Ma poi potremmo vedere la distribuzione delle nostre variabili. Ecco i nostri generi. Abbiamo circa 25 generi e possiamo persino ordinarli per conteggi. Il pop è di gran lunga il più popolare tra gli altri generi, seguito da country e rap. Successivamente, creeremo una visualizzazione delle serie temporali utilizzando il Generatore di Grafici. Vorrei vedere come il conteggio dei generi cambia nel tempo. Possiamo crearlo nel Generatore di Grafici, ma ho già tutti i miei dati lì. Inseriremo il week_ID per l'asse X, poi lo coloreremo per genere e infine aggiungeremo genere e sovrapposizione, in modo da poterli vedere tutti contemporaneamente. Poi andiamo avanti e premiamo OK. Qui ci sono molti generi, ma questo è nel corso degli anni. Questo sarà pop. Questo è tutto. Come potete vedere, dopo il 2015, pop e tutto si contendono il primo posto in classifica.
Nel nostro EDA, mi piace anche creare una matrice di correlazione con tutte le mie variabili numeriche per vedere se ci sono variabili predittive che potrebbero essere altamente correlate tra loro. Possiamo costruirla utilizzando lo strumento multivariato e i metodi multivariati – riavvierò semplicemente la mia analisi – e inserirò tutte le variabili numeriche, quindi daremo il via. Evidenzia relazioni altamente correlate. Qui possiamo vedere che c'è una relazione altamente correlata tra energia e rumorosità. Vorremmo assicurarci di includere solo una di queste nel nostro modello per ridurre la multicollinearità. Un test statistico che mi piace eseguire per visualizzare le relazioni tra diverse variabili è un test ANOVA a una via.
In precedenza abbiamo visto che ci sono circa 25 generi principali nel set di dati. Vorrei vedere se ci sono differenze significative tra le medie dei diversi generi. Ho iniziato osservando come la longevità o il numero totale di settimane sul grafico possano differire tra i generi. Potremmo farlo aprendo un fit Y per X, quindi inseriamo il genere per X e poi calcoliamo il numero totale di settimane sul grafico. Non quello. Totale settimane sul grafico, poi clicchiamo OK, poi eseguiamo l'ANOVA delle medie, quindi confrontiamo le medie e infine ogni coppia. Qui sotto possiamo vedere che il valore P mostra una significatività.
Tornando al report "Connecting Letters", questo ci mostra come i diversi gruppi o generi siano diversi tra loro. Qui possiamo vedere che ha la media di longevità in classifica più alta ed è statisticamente diverso da qualsiasi altro genere. Lo stesso vale per i generi successivi, indie pop, pop e post-grunge. Non condividono alcuna lettera con nessun altro genere, quindi sono statisticamente più alti. Possiamo completare lo stesso processo per esaminare la posizione di picco per genere, tranne per il fatto che potremmo semplicemente costruirlo allo stesso modo, utilizzando la variabile "posizione di picco" per la nostra Y. Tornando alle lettere di collegamento, potremmo vedere, oppure cercheremo la media più bassa, poiché ciò mostra che quei generi raggiungono un picco più alto in classifica. È interessante notare che il K-pop ha la media più bassa e mostra che è più probabile che salga in classifica, il che è interessante anche perché, osservando il test ANOVA sulla longevità, il K-pop non è molto in alto in questa lista. Ciò potrebbe indicare che il K-pop ha una forte capacità di diventare virale e raggiungere inizialmente il picco, ma non ha una grande forza duratura e scende rapidamente nelle classifiche.
Potremmo anche completare il test ANOVA come ha fatto Srichandrika con le variabili di testo e sentiment per vedere le differenze tra generi e altri gruppi. Una volta completata la nostra EDA, siamo pronti per passare alla modellazione predittiva. Ma prima dobbiamo creare una colonna di convalida per ogni variabile di risposta. JMP Pro consente di farlo facilmente. È possibile accedere alla modellazione predittiva e poi alla colonna di convalida. Ne creeremo una per ciascuna. Creeremo due modelli, uno per la longevità e un modello di classificazione per prevedere se una canzone potrebbe entrare nella top 10 o meno. Stratificheremo in base al numero totale di settimane in classifica, che è una delle nostre risposte. Faremo una suddivisione 60, 20, 20. Dato che stiamo creando più colonne, le nomineremo, in modo da poterle distinguere. Faremo semplicemente un seed casuale di 1, 2, 3, 4, 5. Questo creerà il risultato.
Ne ho già creato uno per i primi 10, quindi non lo ripeterò. Ora che abbiamo le nostre colonne di convalida, possiamo iniziare a costruire i nostri modelli predittivi. JMP offre un'opzione di bootstrap forest che potresti usare facilmente. Riavvierò semplicemente la mia analisi. Inserisco la nostra variabile di risposta nella Y e poi tutte le nostre variabili predittive, assicurandomi di inserire la colonna di convalida che abbiamo creato. Per risparmiare al programma un lungo tempo di esecuzione, ho scelto di lasciare fuori dal modello alcune variabili categoriali con molti gruppi diversi. Ad esempio, vorrei vedere come un artista potrebbe influenzare la longevità del grafico, ma ce ne sono troppe nel set di dati per un modello efficiente. Includendo le variabili come input, teniamo anche presente le variabili che vogliamo assicurarci di non includere a causa della multicollinearità. Qui ho incluso l'energia invece del volume per evitarlo. Assicuriamoci di avere la nostra convalida. Ora clicchiamo su OK.
Si aprirà la finestra di specifica della foresta Bootstrap che chiederà quanti alberi nel modello e quante variabili predittive vengono considerate casualmente a ogni suddivisione. È possibile specificare quanti alberi vengono sviluppati, quanto in profondità possono arrivare, quanti dati vede ogni albero e quanto sono casuali le suddivisioni. Giocare con queste impostazioni può influire sull'equilibrio tra accuratezza, tempo di esecuzione e sovradattamento. Ma per iniziare, utilizzeremo semplicemente i valori suggeriti per ogni impostazione e premeremo OK per vedere quali sono i nostri risultati. Premo OK e questo passaggio richiede in genere un paio di secondi, poiché JMP sta creando più alberi decisionali dietro le quinte. Ci diamo solo un po' da fare. Si tratta anche di un set di dati piuttosto grande, quindi contribuirà anche al tempo di esecuzione. Ecco fatto. Qui il nostro r² è 0,89, che è già piuttosto buono. Se pensiamo che i risultati possano essere migliorati, potremmo rieseguire il modello con specifiche diverse e vedere a che punto siamo. Ma qui possiamo cliccare sul triangolo rosso, inserire i contributi in colonna e questo ci mostrerà come le nostre variabili influenzano la longevità in classifica. Qui la posizione di picco è la variabile che influenza di più, il che ha senso perché le canzoni che raggiungono il picco più alto tendono generalmente a durare più a lungo in classifica.
Ora faremo la stessa cosa per il nostro secondo modello. Dove si trova? Solo che useremo la nostra variabile binaria come Y, e poi ci assicureremo di inserire la nostra convalida per quella variabile di risposta. Anche qui, ho scelto di omettere la posizione di picco perché ho usato quella variabile per creare la variabile delle prime 10. Di nuovo, lasceremo tutto così com'è e vedremo cosa ci restituisce. L'output del modello di classificazione ci fornisce una matrice di correlazione per le diverse date o colonne di convalida. Potremmo anche visualizzare qui il ROC e la curva di lift per questo modello e per valutarne le prestazioni e la capacità di distinguere tra le classi. 0,98 è piuttosto buono da questo punto di vista. Con questo si conclude la nostra panoramica del flusso di lavoro JMP utilizzato nel nostro progetto. In pratica, questa modellazione potrebbe aiutare artisti, produttori o etichette discografiche a capire quali caratteristiche delle canzoni influenzano maggiormente il successo e potenzialmente a prevedere le tendenze del settore. Il nostro progetto è solo un esempio di come JMP può essere applicato ai dati di testo e di sentimento nella modellazione predittiva e nei settori creativi.
Vorremmo ringraziare in modo particolare il Dott. Chakraborty e il Dott. McGaugh per il loro mentoring e la loro guida durante tutto il nostro programma Bands. Il loro incoraggiamento e i loro spunti hanno plasmato la nostra esperienza e ci hanno aiutato a crescere tecnicamente e professionalmente. Siamo grati per il tempo e il supporto che ci hanno dedicato e apprezziamo davvero l'opportunità di imparare sotto la loro guida. Grazie a tutti per l'ascolto. La nostra presentazione si conclude qui.