早上好,下午好。我今天来到这里,在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 如何应用于预测建模和创意领域的文本和情感数据的一个例子。
我们要特别感谢查克拉博蒂博士和麦高夫博士在我们乐队项目期间的指导和帮助。他们的鼓励和真知灼见塑造了我们的经历,并帮助我们在技术和专业方面不断成长。我们感激他们给予我们的时间和支持,并由衷感谢有机会在他们的指导下学习。感谢各位的聆听。我们的演讲到此结束。