歌词是承载歌曲情感的文字,是歌曲本意所在,本文旨在构建一个基于中文文本情感倾向分析的歌曲推荐模型。

作用:
1、输入一首歌曲,可以找到与该歌曲类似情感的其他歌曲
2、输入一个情感词,如“伤感”,可以找到“伤感的歌曲”

以歌词作为情感特征分析的原料有如下优势:
1、存储成本低,歌词全文(即使是带有时间标签的LRC或是KSC)一般不会超过5KB。声纹或者音频特征的存储则需要更大的空间
2、文本分析技术已经比较成熟,有很多现成的开源项目可以借鉴
3、分析规模小,多个歌手演唱的不同版本歌曲也只会有一个歌词
4、文本歌词容易获取

基本的流程可以这样描述:

请输入图片描述

举例说明歌词情感分析,首先看辛晓琪《领悟》的歌词

辛晓琪领悟
我以为我会哭
但是我没有
我只是怔怔望着你的脚步
给你我最后的祝福
这何尝不是一种领悟
让我把自己看清楚
虽然那共爱的痛苦
将日日夜夜
在我灵魂最深处
我以为我会报复
但是我没有
当我看到我深爱过的男人
竟然像孩子一样无助
这何尝不是一种领悟
让你把自己看清楚
被爱是奢侈的幸福
可惜你从来不在乎
啊!一段感情就此结束
啊!一颗心眼看要荒芜
我们的爱若是错误
愿你我没有白白受苦
若曾真心真意付出
就应该满足
啊!多么痛的领悟
你曾是我的全部
只是我回首来时路的每一步
都走的好孤独
啊!多么痛的领悟
你曾是我的全部
只愿你挣脱情的枷锁
爱的束缚任意追逐
别再为爱受苦

1、中文分词。可以借鉴chrome使用的分词技术以及搜狗输入法的细胞词库。目的是获取到带有比较强烈情感倾向的词,本歌词里有“哭”、“痛苦”、“报复”、“无助”、“不在乎”、“荒芜”、“错误”、“受苦”、“痛”、“孤独”等等等等
2、关键词情感倾向匹配。这里需要一个建设一个文本情感倾向的词库,有学者把个人的情感分为“乐”、“好”、“怒”、“哀”、“惧”、“恶”、“惊”七种,为了说明方便,简化成“喜”、“怒”、“哀”、“乐”、“惧”五种,每种情感类型下面有若干代表该类情感的形容词、名词、词组。根据情感强烈与否,标识为“乐1”、“乐2”、“乐3”(也可以忽略情感程度,单纯考虑数量)。
3、形成歌曲的情感特征值。匹配所有关键词之后进行积分累加,一首歌曲的情感特征可以抽象为:
喜:55
怒:11
哀:2
乐:3
惧:1
利用此特征值搜索曲库,形成同类情感歌曲推荐。

本方法的难点在于文本情感倾向词库的建设及机器学习,可以为每种情感类型确定若干个典型词,通过检索同义近义词来扩充词库,构建基础库(进行人工分类是比较精准的方法),可以用到的资源有汉英词典、wordnet项目。

同样的方法还可以用于乐评、带音乐文件日志的分析,豆瓣、QQmusic这样的产品可以充分利用。

补充:LRC、KSC文件由于带有时间标签,可以有更深度的利用,下篇日志写。

标签:无

评论已关闭