早安,下午好。我今天來到這裡,在JMP探索高峰會上展示我的研究計畫-《運用情感與文本分析方法探究21世紀音樂趨勢》。我叫Srichandrika Gadde,我的研究夥伴是Delaney Carroll。我們都是俄克拉荷馬州立大學的研究生,主修商業分析和數據科學。
簡單介紹一下這個項目。本計畫是俄克拉荷馬州立大學研究生課程的一部分。專案的目標是分析歌詞的情感和文本特徵,以識別音樂趨勢隨時間的變化,並探討哪些特徵會影響歌曲的商業成功。我們使用 JMP Pro 18 學生版來完成本專案。在工作流程方面,我們遵循了一個相當標準的流程,首先對資料進行預處理,使其為分析做好準備。我們清理了一些列,並進行了一些插補,稍後我會詳細介紹。然後我們進行歌詞分析,包括情緒分析和文字分析,並進行探索性資料分析 (EDA),以識別這些特徵的變化和趨勢。最後,我們建立了幾個預測模型來預測商業成功特徵,例如流行度和在排行榜上的停留時間。最後,我們進行驗證。
簡單介紹一下這些數據。我們的資料集來自 Kaggle,主要研究的是 Billboard Hot 100 排行榜,它是美國歌曲成功與否的行業標準榜單。我們使用了三個資料集,分別是 Billboard 週榜資料集、Spotify 音訊資料以及 2020 年至 2022 年 Billboard Hot 100 歌曲的歌詞資料集。我們將這三個數據集合併,並分析和識別了其中的變化和趨勢。這構成了我們分析最受歡迎歌曲音樂趨勢的基礎。
在資料預處理階段,我們主要使用 Python 清理了幾個文字列(歌曲和歌手名稱),使它們格式統一,以便於合併資料集。然後,我們辨識出一些缺失特徵,以及一些音訊特徵中的缺失記錄,並使用 JMP 的平均值插補法進行填補。最後,我們對一些變數進行了特徵工程,例如歌曲在榜週數、最高排名和前十名等。稍後我們將詳細介紹這些變數。以上就是資料預處理部分。
現在我們開始進行歌詞分析。在這個階段,我們主要嘗試回答一些問題,例如,從2000年到2022年,歌詞的情感或複雜程度發生了什麼樣的變化?或者,我們會提出一些問題,例如,這些年來音樂流派或流派趨勢是如何演變的?為了進行這項分析,我們使用了JMP中的Python腳本來進行情緒分析和文字分析。在情緒分析中,我們使用了Vader,它主要計算情緒分數:正面和負面。它是一個基於規則的情感分析工具,可以幫助我們識別文本的整體情感。我們用它來辨識歌詞的情感。我們創造了四個特徵:Vader正面、Vader負面、Vader中性和Vader複合。
接下來是文字分析。我們創造了四個特徵:詞頻比 (TTR)、單次出現詞數 (Hapax Legomena)、詞彙密度和歌詞複雜度。詞頻比是指唯一詞的數量與總詞數的比值。單次出現詞數統計的是文本中僅出現一次的詞的數量。詞彙密度是指文本內容中各種詞類(例如名詞、動詞、形容詞等)的比例。這可以有效地過濾掉那些朗朗上口的短語或對歌詞複雜度沒有實際貢獻的填充詞。歌詞複雜度是前三個詞類的綜合結果。 Vader 複合字也類似,它可以反映整體情感傾向,從正面到負面再到正面。以上就是我們創建的八個特徵。接下來,我們可以使用 JMP 來觀察這些特徵隨時間的變化。
首先,我們來看Vader的特徵。 Vader的正面成分基本上保持不變。雖然在2005年至2015年間出現了一些波動,但到2022年底,它與2000年基本持平。接下來是Vader的中性成分。 Vader的中性成分指的是歌詞中中性內容的比例。我們看到2021年略有下降,然後略有上升,但從2000年到2020年,歌詞中整體的中性成分略有下降。 Vader的負面成分則明顯增加。我們可以看到從2000年到2020年,負面成分顯著增加,之後有所下降,但總體而言,Vader的負面成分有所上升。 Vader的綜合成分基本上代表了歌詞的整體情感,我們看到它明顯略有下降。
2006年至2015年間,該指標再次出現波動,但到2022年底略有下降。就文本特徵而言,TTR(歌詞文本比率)在2020年後及前後均呈現上升趨勢。 Hapax(單音節詞)的趨勢與TTR非常相似。這主要是因為它們衡量的是類似的詞彙多樣性。 Hapax幾乎與TTR成正比,因此它們的趨勢非常相似。詞彙密度(即內容詞)自2000年至2022年期間顯著增加,這意味著歌詞中使用的詞彙量更多,也更加多樣化。歌詞複雜度得分(前三項指標的綜合得分)到2020年底也顯著提高。我們現在正在查看Vader複合詞在不同流派中的平均值。這反映了不同流派的整體情感傾向。我們發現,成人標準音樂、喜劇、K-pop、靈魂樂和敬拜音樂等類型的歌曲,其歌詞情感表達都比較強烈,與它們的類型主題相符。而饒舌、龐克和拉丁音樂的歌詞情感表達則相對較少。在這些類型的歌曲中,「Vader」一詞的成分最少。由此可見,歌曲類型對歌詞的整體情感表達有一定影響。像龐克和搖滾這樣的音樂類型,由於本身的負面特質較多,因此整體情感表達必然較低。
接下來是下一個。這裡我們嘗試視覺化不同音樂類型中「Vader negative」(負面情緒)和「Vader positive」(正面情緒)的平均值。從圖中我們可以立即看出,在所有這些音樂類型中,“Vader positive”都高於“Vader negative”,這意味著即使這些音樂類型整體上帶有較強的負面情緒,它們也包含一些積極的成分,例如歌曲中的積極詞彙。我們可以立即發現,龐克和饒舌音樂的負面成分最高,而兒童音樂或成人流行音樂的負面成分最低。這很合理,因為龐克和饒舌音樂的歌詞更與憤怒、反叛和掙扎有關,因此與兒童音樂相比,它們的負面成分更多,而兒童音樂的負面成分應該更少。這只是一個匯總表,它展示了我們創建的所有特徵在不同年份和不同音樂類型下的平均值,旨在探索音樂趨勢在不同年份和不同音樂類型中的變化。
我們據此創建了這張熱力圖,圖中的方塊大小是基於歌曲數量。我們可以立即看出,流行音樂由於其在公告牌百強單曲榜上的歌曲數量眾多而佔據主導地位。可以說,流行音樂的整體評價相當正面。它歷年來的綜合指數(Vader complex)都很高,這也可能意味著它擁有更高的傳播度,最終能夠登上公告牌百大單曲榜。我們可以看到,饒舌音樂的評價出現了一些波動。到2020年底,它的評價變得更加負面,而嘻哈音樂和鄉村音樂則始終保持相當正面的評價。以上是我們利用這張熱力圖得出的一些結論。這是另一張熱力圖,我們用它來分析不同類型和年份的歌曲上架時間(TTR)。從這份TTR(歌曲播放率)圖表中我們可以看到,流行音樂、饒舌音樂、R&B、嘻哈音樂以及鄉村音樂的TTR都相當高,而且從2000年到2022年一直保持穩定。而敬拜歌曲、成人經典歌曲或兒童音樂的TTR則最低,而且幾乎沒有波動。這表明它們的歌詞複雜度較低,或者說歌詞非常簡單,因為它們並不試圖表達更深層的情感。這是我們可以從中得出的一個結論。
我們試圖解答的另一個問題是,基於文化變遷,2010 年前後的音樂是否也發生了顯著變化?為此,我們創建了一個單獨的列,將 2010 年前後的所有年份和歌曲分組,用於我們的變異數分析 (ANOVA)。在這個單因子變異數分析中,我們將其與 2010 年前後詞彙密度進行比較,以確定詞彙密度是否有任何重大變化或轉變。結果顯示,顯著性值小於 0.001,這意味著存在顯著變化,並且從我們最初的視覺化結果來看,到 2020 年底,詞彙密度明顯增加。這種變化具有顯著性,並且 2010 年前的歌詞詞彙密度比 2010 年後的歌詞詞彙密度更簡單。我們嘗試對Vader化合物進行同樣的分析,以檢驗2010年前後整體情緒是否發生了重大變化。 P值為0.09,表示整體情緒並沒有太大變化,儘管存在波動,因此與之前和之後相比,變化不大。
我們對TTR進行了同樣的分析,以檢驗p值為0.033時是否有顯著變化。結果再次表明,2010年前後的TTR差異並不顯著。儘管如此,我們也檢驗了這三個特徵是否共同發生了顯著變化。為此,我們使用了多元變異數分析(MANOVA)。結果顯示,Vader複合詞在2010年後有所減少,顯示整體情緒下降,詞彙密度增加,而TTR基本上保持不變。雖然從視覺上看確實存在變化,但如果要綜合檢驗,作為一個整體,是否存在顯著變化?為此,我們進行了測試,發現前後F檢定值均小於0.001,這意味著這三個特徵在2010年前後確實發生了變化。至此,第一階段──歌詞分析──結束。整體研究結果表明,音樂類型和整體情感是相互影響的,整體情感會根據音樂類型而增減,我們觀察到,到 2020 年底,歌詞的複雜性增加。
現在,我將把講解交給德萊尼,由他帶領我們完成專案的下半部分,也就是模型製作。
謝謝Srichandrika的歌詞分析示範。現在,我們將學習如何將文字分析應用於預測模型。我們選擇使用自助森林模型進行這項分析,因為它能夠處理複雜的數據。音樂特徵,例如情感、歌詞複雜度、流派和年份,可能會以非線性的方式相互作用,而簡單的模型(例如線性回歸)無法捕捉到這些相互作用。 JMP也會產生變數重要性排名,這有助於我們了解哪些因素對流行度或重定向的持久性影響最大。此外,自助森林模型透過合併不同決策樹的結果來防止過度擬合。接下來,我將直接開始進行示範。
除了每週的公告牌資料和音樂音訊功能外,我們還有代表歌詞文字情緒和分析的變數。我正在處理的這個資料集包含每週的公告牌排行榜資料。數據量相當大,大約有超過13萬筆記錄。
首先,我們要進行探索性資料分析,以檢查資料中的趨勢和模式。我們先查看變數的分佈情況,看看資料在哪裡。我們可以直接選擇“分析”,然後選擇“分佈”。我已經把所有變數都放在這裡了,點擊“確定”,然後以堆疊格式查看,這樣更容易理解。這樣我們就能看到變數的分佈了。你看,這是我們的音樂類型。我們大約有 25 種音樂類型,也可以按數量排序。流行音樂是最受歡迎的,鄉村音樂和饒舌音樂緊隨其後。接下來,我們將使用「圖表建構器」建立一個時間序列視覺化圖表。我想看看音樂類型的數量是如何隨時間變化的。我們可以用「圖表建立器」來建立這個圖表,但我已經把所有資料都放進去了。我們將把 week_ID 作為 X 軸,然後按音樂類型著色,最後添加「類型」和「疊加」選項,這樣我們就可以同時看到所有資料了。然後我們點選「確定」。這裡有很多音樂類型,但這是歷年來的趨勢。這是流行音樂,這個是饒舌音樂。你可以看到,2015 年之後,流行音樂和饒舌音樂在排行榜上爭奪最受歡迎的位置。
在我們的探索性資料分析 (EDA) 中,我喜歡對所有數值變數進行相關矩陣分析,以查看是否存在高度相關的預測變數。我們可以使用多元分析工具和多元方法來建立這個矩陣——我重新啟動分析——並將所有數值變數輸入其中,然後點擊「運行」。它會突出顯示高度相關的關係。在這裡我們可以看到能量和響度之間有高度相關的關係。為了降低多重共線性,我們需要確保模型中只包含其中一個變數。我喜歡運行的一個用於查看不同變數之間關係的統計檢定是單因子變異數分析 (ANOVA)。
之前我們看到資料集中大約有 25 個主要音樂類型。我想看看不同類型音樂的平均值之間是否存在顯著差異。我首先查看了不同類型音樂的持續時間(或圖表上的總週數)是否存在差異。我們可以開啟一個「擬合 Y 軸,X 軸」的函數,然後將 X 軸替換為音樂類型,再選擇「圖表上的總週數」。注意,不是“圖表上的總週數”,然後點擊“確定”,接下來進行平均值變異數分析,然後比較平均值,最後比較每一對平均值。在這裡我們可以看到 P 值顯示差異顯著。
回到「連接字母」報告,它向我們展示了不同群體或流派之間的差異。我們可以看到,K-pop 的榜單平均停留時間最長,並且在統計上與其他所有流派都存在顯著差異。獨立流行、流行和後Grunge 等流派的情況也類似。它們與其他任何流派都沒有共享字母,因此在統計上更勝一籌。我們可以重複上述步驟來查看不同流派的最高排名,只是將 Y 變數替換為最高排名。回到連接字母,我們可以看到,或者說,我們將尋找平均值較小的流派,因為這表明這些流派在榜單上的排名更高。有趣的是,K-pop 的平均值最小,這表明它更有可能在名單上排名更高,這也很有趣,因為從榜單停留時間的變異數分析來看,K-pop 的排名並不高。這可能表明 K-pop 具有很強的病毒式傳播能力,並且最初能達到巔峰,但持久力不強,很快就會在排行榜上跌落。
我們也可以像Srichandrika一樣,對文本和情緒變數進行變異數分析(ANOVA),以查看不同流派和其他群體之間的差異。完成探索性資料分析(EDA)後,我們就可以開始進行預測建模了。但首先,我們需要為每個回應變數建立一個驗證列。 JMP Pro可以輕鬆完成這項工作。您可以進入預測建模,然後向下捲動到驗證列。我們將為每個回應變數建立驗證列。我們將建立兩個模型,一個用於預測歌曲的流行度,另一個用於預測歌曲是否能進入前十名的分類模型。我們將根據歌曲在榜單上的總週數進行分層,這是我們的反應變數之一。我們將採用60:20:20的比例來劃分。由於我們要建立多個列,因此需要為它們命名,以便區分。我們將使用1、2、3、4、5的隨機種子來建立列。這樣就創建好了。
我已經為前十名創建了一個驗證集,所以這裡就不贅述了。現在我們有了驗證列,可以開始建立預測模型了。 JMP 有一個自助森林選項,你可以很方便地使用它。我重新啟動分析程式。將回應變數放在 Y 列,然後是所有預測變量,最後確保包含我們建立的驗證列。為了避免程式運行時間過長,我選擇將一些包含多個不同分組的分類變數排除在模型之外。例如,我想看看表演者如何影響歌曲在排行榜上的停留時間,但資料集中的這類變數太多,無法建立一個高效的模型。在將變數作為輸入時,我們還要記住哪些變數會因為多重共線性而被排除。這裡我用能量(energy)取代了響度(loudness)來避免這個問題。確保我們有驗證集。點選“確定”(OK)。
Bootstrap森林的設定框會彈出,詢問模型中要設定多少棵樹,以及每次分裂時隨機考慮多少個預測變數。您可以指定要建立的樹的數量、樹的深度、每棵樹看到的資料量以及分裂的隨機程度。調整這些設定會影響準確率、運行時間和過度擬合之間的平衡。但首先,我們先使用每個設定的建議值,然後點擊「確定」查看結果。我點擊了“確定”,由於JMP在後台建立多個決策樹,這一步通常需要幾秒鐘。我們稍等片刻。這是一個相當大的資料集,因此也會影響運行時間。好了。這裡的R²是0.89,已經相當不錯了。如果我們認為結果可以改進,可以使用不同的設定重新運行模型,看看效果如何。現在,我們可以點擊紅色三角形,進行列貢獻分析,這將顯示變數如何影響圖表的長度。在這裡,最高排名是我們最重要的影響因素,這很合理,因為排名較高的歌曲通常在排行榜上停留的時間更長。
現在,我們將對第二個模型執行相同的操作。它在哪裡?只不過,我們將使用二元變數作為 Y 值,然後確保將該反應變數的驗證資料放入模型中。此外,我選擇省略峰值位置,因為我已使用該變數建立了前 10 名變數。同樣,我們保持所有設定不變,看看結果如何。分類模型的輸出會提供一個不同驗證日期或列的相關矩陣。我們還可以查看此模型的 ROC 曲線和提升曲線,以評估模型效能以及它區分不同類別的能力。 0.98 在這方面表現相當不錯。至此,我們專案中使用的 JMP 工作流程的介紹就結束了。在實踐中,這種建模方法可以幫助藝術家、製作人或唱片公司了解歌曲的哪些特徵對成功影響最大,並有可能預測行業趨勢。我們的專案只是 JMP 如何應用於預測建模和創意領域的文本和情感數據的一個例子。
我們要特別感謝查克拉博蒂博士和麥高夫博士在我們樂團計畫期間的指導和幫助。他們的鼓勵和真知灼見塑造了我們的經歷,並幫助我們在技術和專業方面不斷成長。我們感激他們給予我們的時間和支持,並由衷感謝有機會在他們的指導下學習。感謝各位的聆聽。我們的演講到此結束。