[论文解读] MusicMood: Predicting the mood of music from song lyrics using machine learning
本文提出一种基于歌词的朴素贝叶斯分类器,用于预测音乐是否传达快乐或悲伤情绪,在200首歌曲的验证集上达到88.89%的精确率。该系统使用经过预处理的歌词提取的n-gram与词干还原技术生成的tf-idf特征向量,尽管由于数据集规模较小可能导致过拟合,但其在筛选快乐音乐方面表现出高精确率。
Sentiment prediction of contemporary music can have a wide-range of applications in modern society, for instance, selecting music for public institutions such as hospitals or restaurants to potentially improve the emotional well-being of personnel, patients, and customers, respectively. In this project, music recommendation system built upon on a naive Bayes classifier, trained to predict the sentiment of songs based on song lyrics alone. The experimental results show that music corresponding to a happy mood can be detected with high precision based on text features obtained from song lyrics.
研究动机与目标
- 开发一种仅基于歌词文本的机器学习模型,用于预测音乐的情绪状态。
- 创建一个包含2,773首歌词的新数据集,标签为“快乐”或“悲伤”,用于情绪预测研究。
- 构建一个网络应用程序,支持通过输入歌手和歌曲名称实现实时音乐情绪预测。
- 评估不同文本特征表示方法与预处理技术在情绪分类中的性能表现。
- 探索基于文本的情感分析在过滤音乐库以识别情绪基调方面的可行性。
提出的方法
- 从百万首歌曲数据集中随机抽取10,000首歌曲,利用歌手和歌曲标题元数据从LyricWikia获取歌词。
- 通过比较英文单词数量与总单词数量,过滤掉非英文歌词,仅保留以英文为主的内容。
- 最终得到2,773首歌曲的数据集,其中1,000首用于训练,200首用于验证,情绪标签(快乐/悲伤)基于歌词内容和听感测试人工标注。
- 使用袋模型(bag-of-words)提取文本特征,包括n-gram(1–3)、停用词移除和Porter词干还原,随后进行二值化、词频(tf)和tf-idf向量化。
- 使用10折交叉验证在训练集上训练并评估三种朴素贝叶斯模型(多项式与多元伯努利),并通过网格搜索进行超参数调优。
- 最终模型在完整训练集上重新训练,并在验证集上进行评估,性能指标包括精确率、召回率和ROC-AUC。
实验结果
研究问题
- RQ1仅凭歌词能否准确预测音乐的情绪为快乐或悲伤?
- RQ2不同的文本预处理技术(如停用词移除、词干还原、n-gram大小)如何影响情绪分类性能?
- RQ3在使用朴素贝叶斯模型进行歌词文本情绪预测时,哪种特征表示方法(二值化、tf或tf-idf)表现最优?
- RQ4在小样本数据集和高维特征空间下,模型过拟合的程度如何?
- RQ5能否构建一个高精确率的情绪分类器,以极低的误报率过滤掉悲伤歌曲,从而在实际音乐推荐系统中应用?
主要发现
- 使用tf-idf特征表示的多项式朴素贝叶斯分类器在ROC-AUC指标上表现最佳,优于伯努利模型和基于tf的模型。
- 停用词移除在所有配置中均一致提升了模型性能,表明常见词汇会降低情绪预测的信号强度。
- 模型在训练集上达到99.60%的精确率,在200首歌曲的验证集上达到88.89%的精确率,表明由于数据集规模较小且进行了大量超参数调优,存在过拟合风险。
- 当n-gram大小超过一元语法时,性能反而下降,所有配置下一元语法(1-grams)均表现最佳。
- 词云可视化显示,快乐与悲伤歌曲中均普遍存在不相关且常见的词汇,这支持使用tf-idf方法抑制此类词汇的影响。
- 模型的高精确率表明其可作为可靠过滤器,用于在进一步处理(如流派分类)前从大规模音乐库中排除悲伤音乐。
更好的研究,从现在开始
从阅读论文到最终审阅,大幅缩短您的研究时间。
无需绑定信用卡
本解读由 AI 生成,并经人工编辑审核。