智昕,周日贵
(上海海事大学信息工程学院,上海 201306)
随着互联网在生活中的普及,人们的生活方式也发生了很大的变化。在闲暇时听音乐是大部分人的选择之一。现在人们的音乐体验逐步从之前的录音磁带和光盘唱片发展为数字音乐,数字音乐压缩技术等多媒体技术得到了迅速发展,人们也因此可以获得比传统技术更加方便的途径。到2017年,网络音乐的用户规模已经突破3亿,其应用技术已经成为互联网的一个研究热点。音乐是情感的一种表达载体,很多词曲作者通过音乐表达和抒发自己的情感,可以说情感是音乐的本质特征和内涵。
传统的音乐情感分析都是基于音频的,通过音频对音乐的情感倾向性进行分析的研究已经有接近30年的历史,很多专家学者已经在这方面取得了很多卓越的成就。本文将对音乐的另一重要载体——歌词进行分析研究。歌词本质上属于文本,因此对歌词进行情感倾向性分析研究本质上是对文本进行情感倾向的分类。文本的最小构成单位是词语,对词语的情感判别是对歌词进行情感分析的基础。本文针对一些传播较广的中文歌曲,构建一部歌词的领域情感词典,来更好的对音乐进行情感分析。
目前关于构建情感词典的研究工作已经取得了一定的成果。要构建一个相关领域的情感词典,一方面需要对现有的相关资源进行整理与总结,另一方面要选取合适的算法进行相关领域的扩充。文本倾向性分析始于20世纪90年代,Mitchell P.Marcus和Beatrice Santorini[1]等构建了一个基于手动标记的半自动构建的Penn Treebank语料库,其在速度、一致性和准确性上都优于当时完全手动标记的语料库;Hatzivassiloglou和McKeown[2]在收集了大规模语料集的基础上,分析了形容词的语义情感倾向受连词的影响,来对词语做情感倾向性的判断,该方法用聚类的方法将词汇聚成褒义或贬义,精确率最低的一组实验也达到78%,得到了较为理想的分类效果。
国内方面,目前比较权威的情感词典有董振东开整理的知网HowNet情感词典、台湾大学NTUSD简体中文情感词典、情感词汇本体库以及清华大学李军中文褒贬义词典。近些年来随着相关研究的深入,在对音乐歌词和音乐评论的数据挖掘方面去取得了一定进展。蒋胜益、阳垚[3]等人在文献提出一种基于改进后的Hevner情感模型环模型为基础构建的音乐领域的中文情感词典,实现了歌词的情感分类;夏云庆、杨莹[4]等人采用基于情感单元的情感向量空间模型进行歌词情感分析,实验在表示效率、歧义、情感方面取得了较好的分析结果;Yunjing An[5]等人用朴素贝叶斯分类器对歌词进行情感倾向分析,来实现歌词情感倾向的分类;佘莉、夏虎[6]等人在文献中根据Hevner情感环对Web文本信息中得到的音乐评论的情感倾向进行挖掘,进行情感词的提取和识别。
本文提出一个通过两阶段构建领域情感词典的构建方法。第一阶段利用现有的一些词典资源包括知网HowNet情感词典、情感词汇本体库以及清华大学李军中文褒贬义词典进行整理、去重,同时加入手动的标记的歌词词汇,构建出一个针对歌词的基准词汇库。第二阶段通过计算情感词间的点间互信息值(Semantic Orientation Pointwise Mutual Information,S0-PMI)的方法建立情感词间的相似性矩阵,来得到语义间的相似度。然后根据情感词出现的频率来识别相关领域情感词,从而确定目标词的情感倾向来进行中文音乐情感词典的扩充。本文实验的整体过程如图1所示。
图1 情感词典构建流程
歌词通过网易云音乐的爬虫程序将指定ID歌曲歌词网页数据进行抓取。目前很多网站都采取了反爬虫机制如增加验证码、验证滑块等,为爬虫程序获取评论数据增加了难度。本文在爬取过程中对网易云音乐网站中的JavaScript请求数据进行解密,通过破解参数的加密方式来获取请求的数据。
对爬取到的文本数据开始进行预处理工作,包括去除时间标注、去除非歌词句子、对文本进行分词、去除停用词以及进行词频统计等。首先,使用正则表达式可以达到筛选歌词去除噪音信息的目的。接着进行分词操作,词汇是语言中能够独立运用的最小的语言单位,是语言中的原子结构,因此在提取出歌词文本后,对歌词进行分词是情感倾向性分析的重要预处理步骤。本文采用Python的中文分词组件jieba进行分词,组件工具支持三种分词模式:精确模式、全模式和搜索引擎模式。用jieba分词组件可以将句子切分成分词,也可以添加用户自定义的词库加入分词系统来达到更理想的分词效果。将句子划分成独立的词语后,最后对其中的停用词进行过滤,停用词通常是没有实际含义的,一般是指在文本内容中出现频率较高的介词、代词、虚词等一些与情感无关的字符。本文针对歌词构建了一个停用词表,然后采用基于词频的方法将出现在文本中的停用词去除,减少文本数据的冗余。最后将词频进行统计,提取高频实词构成歌词词汇的语料库。
对2.1节中的歌词词汇语料库与手动整理得到的基准词汇库之间的语义相似度可以采用互信息的方法计算得到,它是用来度量两个随机变量之间的关联性,对任意两个变量,它们之间的互信息的定义如公式(1)所示,从而确定目标词的情感倾向来进行情感词典的扩充。
其中,P(x)表示变量 x出现的概率,P(x│y)表示在变量y出现的情况下出现变量x的概率。当MI(x,y)的结果越小,表明变量x和变量y越不相关,当值取0时,两者之间是相互独立的;反之,MI(x,y)的结果越大,表明两者之间的关联程度越高。
在本文中,情感词典的扩充采用点间互信息(S0-PMI)来计算语义的相似度从而确定目标词的情感倾向。分为以下几个步骤:首先选取基准词中一组倾向性非常明显的褒义词与贬义词,分别用{PosWords1,PosWords2,…}与{NegWords1,NegWords 2,…}来表示;然后对每一个目标词wordi,分别与PosWord和NegWord求互信息值然后做差;最后根据差值就可以得到目标词wordi的情感倾向,表示形式如公式(2)所示:
其中,PMI(wordi,wordj)表示两个词语的点间互信息,如公式(3)所示:
本文采用网易云音乐歌单中情感分类的13种情感类别作为音乐的情感特征向量,分别是“怀旧”、“清新”、“浪漫”、“性感”、“伤感”、“治愈”、“放松”、“孤独”、“感动”、“兴奋”、“快乐”、“安静”和“思念”,该特征向量用于度量音乐和每类情感的语义间相似关系。则每一首音乐的歌词情感特征向量表示为公式(4)所示:
其中,Ek表示情感向量中第k维的值;wordi表示一首歌词的第i个单词;Dwordk,j表示所构建情感词典中第k维情感子类中的第j个词汇;bool(wordi,Dwordk,j)为判定两个单词是否是同一类别词汇的函数,是则取值为1,否则取值为0;Pi,j表示两个词之间的相似程度,即3.2节中计算的得到的互信息值;S表示这篇歌词经过分词和去除停用词后得到的词语总数。通过对每首歌词计算特征情感向量,将歌词情感表达的语义信息进行量化,进一步进行歌词情感分析。
本文采用分级累加的方式计算歌词的情感倾向值。将文本表示为四元组O(W,P,F,E),其中W,P,F,E分别表示程度副词、情感倾向、情感词词性和增强因子,歌词的情感倾向值为每一分句歌词情感倾向值的和。对两个词语w1和w2,假设其分别有x1,x2,...,xn和y1,y2,...,ym个概念,则w1和w2的相似度为各个概念的相似度的最大值,公式(5)如下所示:
其中,Sim(xi,yj)表示两个概念义原的计算公式,其计算方法如公式所示:
其中,α为可调节参数变量,d表示xi和yj两个义原项在义原层次体系中的距离,可以根据词汇语义相似度计算得到。
对于一个词语W,分别将其与情感词典中的种子词进行比较,得到其情感倾向值,对比情感值之间的均差,就可以得到词语W的情感倾向值,计算公式(7)如下所示:
其中,pi和nj分别表情情感词典中的每个情感类别种子词,最终根据得到的情感倾向结果进行分类。
本文选取网易云音乐中情感类别中收听量和热度较高的193首中文歌曲作为情感分析的对象,每个类别标签下约15首歌。这些歌曲具有代表性情感表达较为鲜明,结合本文构建的音乐情感词典对每个标签类别下的歌词进行情感倾向性分析后,分别得到对应的分类结果,如表1所示。
表1 歌词情感倾向性分类结果
从情感分析结果的度量值可以看出,本文实验基于音乐情感词典的歌词情感分类的平均准确率为73.6%,召回率为77.6%,F值为75%,其中浪漫、伤感和快乐等类别的分类效果较好,一定程度上反映出本文所构建的针对音乐的领域情感词典具有较好的分类性能,能够比较准确地概括音乐词典情感子类的情感特征。同时可以看出怀念、孤独等类别的歌词判定结果不够理想,可能由以下两个原因:情感分类标签和歌词情感分析,情感分类标签是网易云音乐自设的情感分类标准,本文在进行分析时歌词所分析得到的结果并不与分类标签完全一致造成分类结果不理想;在进行歌词情感分析时,语义相似度由义原层次体系中的距离决定,对本文中歌词的分类效果存在一定影响。
本文针对中文歌词,提出一种音乐情感词典的构建模型,该模型借助点间互信息相似度的计算方法进行基础词汇的扩充、网易云音乐的分类标签构建歌词文本情感向量,对中文歌词进行情感分类,取得了较为理想的分类效果。同时,本文在进行文本的情感倾向性分析时对上下文的语义间的影响考虑并不完整,且只是单方面关注了歌曲的文本部分,今后还需要协同音频进行分析,从而更加全面地对歌曲情感进行分析和判定。