智昕,周日貴
(上海海事大學(xué)信息工程學(xué)院,上海 201306)
隨著互聯(lián)網(wǎng)在生活中的普及,人們的生活方式也發(fā)生了很大的變化。在閑暇時(shí)聽音樂是大部分人的選擇之一?,F(xiàn)在人們的音樂體驗(yàn)逐步從之前的錄音磁帶和光盤唱片發(fā)展為數(shù)字音樂,數(shù)字音樂壓縮技術(shù)等多媒體技術(shù)得到了迅速發(fā)展,人們也因此可以獲得比傳統(tǒng)技術(shù)更加方便的途徑。到2017年,網(wǎng)絡(luò)音樂的用戶規(guī)模已經(jīng)突破3億,其應(yīng)用技術(shù)已經(jīng)成為互聯(lián)網(wǎng)的一個(gè)研究熱點(diǎn)。音樂是情感的一種表達(dá)載體,很多詞曲作者通過音樂表達(dá)和抒發(fā)自己的情感,可以說情感是音樂的本質(zhì)特征和內(nèi)涵。
傳統(tǒng)的音樂情感分析都是基于音頻的,通過音頻對音樂的情感傾向性進(jìn)行分析的研究已經(jīng)有接近30年的歷史,很多專家學(xué)者已經(jīng)在這方面取得了很多卓越的成就。本文將對音樂的另一重要載體——歌詞進(jìn)行分析研究。歌詞本質(zhì)上屬于文本,因此對歌詞進(jìn)行情感傾向性分析研究本質(zhì)上是對文本進(jìn)行情感傾向的分類。文本的最小構(gòu)成單位是詞語,對詞語的情感判別是對歌詞進(jìn)行情感分析的基礎(chǔ)。本文針對一些傳播較廣的中文歌曲,構(gòu)建一部歌詞的領(lǐng)域情感詞典,來更好的對音樂進(jìn)行情感分析。
目前關(guān)于構(gòu)建情感詞典的研究工作已經(jīng)取得了一定的成果。要構(gòu)建一個(gè)相關(guān)領(lǐng)域的情感詞典,一方面需要對現(xiàn)有的相關(guān)資源進(jìn)行整理與總結(jié),另一方面要選取合適的算法進(jìn)行相關(guān)領(lǐng)域的擴(kuò)充。文本傾向性分析始于20世紀(jì)90年代,Mitchell P.Marcus和Beatrice Santorini[1]等構(gòu)建了一個(gè)基于手動標(biāo)記的半自動構(gòu)建的Penn Treebank語料庫,其在速度、一致性和準(zhǔn)確性上都優(yōu)于當(dāng)時(shí)完全手動標(biāo)記的語料庫;Hatzivassiloglou和McKeown[2]在收集了大規(guī)模語料集的基礎(chǔ)上,分析了形容詞的語義情感傾向受連詞的影響,來對詞語做情感傾向性的判斷,該方法用聚類的方法將詞匯聚成褒義或貶義,精確率最低的一組實(shí)驗(yàn)也達(dá)到78%,得到了較為理想的分類效果。
國內(nèi)方面,目前比較權(quán)威的情感詞典有董振東開整理的知網(wǎng)HowNet情感詞典、臺灣大學(xué)NTUSD簡體中文情感詞典、情感詞匯本體庫以及清華大學(xué)李軍中文褒貶義詞典。近些年來隨著相關(guān)研究的深入,在對音樂歌詞和音樂評論的數(shù)據(jù)挖掘方面去取得了一定進(jìn)展。蔣勝益、陽垚[3]等人在文獻(xiàn)提出一種基于改進(jìn)后的Hevner情感模型環(huán)模型為基礎(chǔ)構(gòu)建的音樂領(lǐng)域的中文情感詞典,實(shí)現(xiàn)了歌詞的情感分類;夏云慶、楊瑩[4]等人采用基于情感單元的情感向量空間模型進(jìn)行歌詞情感分析,實(shí)驗(yàn)在表示效率、歧義、情感方面取得了較好的分析結(jié)果;Yunjing An[5]等人用樸素貝葉斯分類器對歌詞進(jìn)行情感傾向分析,來實(shí)現(xiàn)歌詞情感傾向的分類;佘莉、夏虎[6]等人在文獻(xiàn)中根據(jù)Hevner情感環(huán)對Web文本信息中得到的音樂評論的情感傾向進(jìn)行挖掘,進(jìn)行情感詞的提取和識別。
本文提出一個(gè)通過兩階段構(gòu)建領(lǐng)域情感詞典的構(gòu)建方法。第一階段利用現(xiàn)有的一些詞典資源包括知網(wǎng)HowNet情感詞典、情感詞匯本體庫以及清華大學(xué)李軍中文褒貶義詞典進(jìn)行整理、去重,同時(shí)加入手動的標(biāo)記的歌詞詞匯,構(gòu)建出一個(gè)針對歌詞的基準(zhǔn)詞匯庫。第二階段通過計(jì)算情感詞間的點(diǎn)間互信息值(Semantic Orientation Pointwise Mutual Information,S0-PMI)的方法建立情感詞間的相似性矩陣,來得到語義間的相似度。然后根據(jù)情感詞出現(xiàn)的頻率來識別相關(guān)領(lǐng)域情感詞,從而確定目標(biāo)詞的情感傾向來進(jìn)行中文音樂情感詞典的擴(kuò)充。本文實(shí)驗(yàn)的整體過程如圖1所示。
圖1 情感詞典構(gòu)建流程
歌詞通過網(wǎng)易云音樂的爬蟲程序?qū)⒅付↖D歌曲歌詞網(wǎng)頁數(shù)據(jù)進(jìn)行抓取。目前很多網(wǎng)站都采取了反爬蟲機(jī)制如增加驗(yàn)證碼、驗(yàn)證滑塊等,為爬蟲程序獲取評論數(shù)據(jù)增加了難度。本文在爬取過程中對網(wǎng)易云音樂網(wǎng)站中的JavaScript請求數(shù)據(jù)進(jìn)行解密,通過破解參數(shù)的加密方式來獲取請求的數(shù)據(jù)。
對爬取到的文本數(shù)據(jù)開始進(jìn)行預(yù)處理工作,包括去除時(shí)間標(biāo)注、去除非歌詞句子、對文本進(jìn)行分詞、去除停用詞以及進(jìn)行詞頻統(tǒng)計(jì)等。首先,使用正則表達(dá)式可以達(dá)到篩選歌詞去除噪音信息的目的。接著進(jìn)行分詞操作,詞匯是語言中能夠獨(dú)立運(yùn)用的最小的語言單位,是語言中的原子結(jié)構(gòu),因此在提取出歌詞文本后,對歌詞進(jìn)行分詞是情感傾向性分析的重要預(yù)處理步驟。本文采用Python的中文分詞組件jieba進(jìn)行分詞,組件工具支持三種分詞模式:精確模式、全模式和搜索引擎模式。用jieba分詞組件可以將句子切分成分詞,也可以添加用戶自定義的詞庫加入分詞系統(tǒng)來達(dá)到更理想的分詞效果。將句子劃分成獨(dú)立的詞語后,最后對其中的停用詞進(jìn)行過濾,停用詞通常是沒有實(shí)際含義的,一般是指在文本內(nèi)容中出現(xiàn)頻率較高的介詞、代詞、虛詞等一些與情感無關(guān)的字符。本文針對歌詞構(gòu)建了一個(gè)停用詞表,然后采用基于詞頻的方法將出現(xiàn)在文本中的停用詞去除,減少文本數(shù)據(jù)的冗余。最后將詞頻進(jìn)行統(tǒng)計(jì),提取高頻實(shí)詞構(gòu)成歌詞詞匯的語料庫。
對2.1節(jié)中的歌詞詞匯語料庫與手動整理得到的基準(zhǔn)詞匯庫之間的語義相似度可以采用互信息的方法計(jì)算得到,它是用來度量兩個(gè)隨機(jī)變量之間的關(guān)聯(lián)性,對任意兩個(gè)變量,它們之間的互信息的定義如公式(1)所示,從而確定目標(biāo)詞的情感傾向來進(jìn)行情感詞典的擴(kuò)充。
其中,P(x)表示變量 x出現(xiàn)的概率,P(x│y)表示在變量y出現(xiàn)的情況下出現(xiàn)變量x的概率。當(dāng)MI(x,y)的結(jié)果越小,表明變量x和變量y越不相關(guān),當(dāng)值取0時(shí),兩者之間是相互獨(dú)立的;反之,MI(x,y)的結(jié)果越大,表明兩者之間的關(guān)聯(lián)程度越高。
在本文中,情感詞典的擴(kuò)充采用點(diǎn)間互信息(S0-PMI)來計(jì)算語義的相似度從而確定目標(biāo)詞的情感傾向。分為以下幾個(gè)步驟:首先選取基準(zhǔn)詞中一組傾向性非常明顯的褒義詞與貶義詞,分別用{PosWords1,PosWords2,…}與{NegWords1,NegWords 2,…}來表示;然后對每一個(gè)目標(biāo)詞wordi,分別與PosWord和NegWord求互信息值然后做差;最后根據(jù)差值就可以得到目標(biāo)詞wordi的情感傾向,表示形式如公式(2)所示:
其中,PMI(wordi,wordj)表示兩個(gè)詞語的點(diǎn)間互信息,如公式(3)所示:
本文采用網(wǎng)易云音樂歌單中情感分類的13種情感類別作為音樂的情感特征向量,分別是“懷舊”、“清新”、“浪漫”、“性感”、“傷感”、“治愈”、“放松”、“孤獨(dú)”、“感動”、“興奮”、“快樂”、“安靜”和“思念”,該特征向量用于度量音樂和每類情感的語義間相似關(guān)系。則每一首音樂的歌詞情感特征向量表示為公式(4)所示:
其中,Ek表示情感向量中第k維的值;wordi表示一首歌詞的第i個(gè)單詞;Dwordk,j表示所構(gòu)建情感詞典中第k維情感子類中的第j個(gè)詞匯;bool(wordi,Dwordk,j)為判定兩個(gè)單詞是否是同一類別詞匯的函數(shù),是則取值為1,否則取值為0;Pi,j表示兩個(gè)詞之間的相似程度,即3.2節(jié)中計(jì)算的得到的互信息值;S表示這篇歌詞經(jīng)過分詞和去除停用詞后得到的詞語總數(shù)。通過對每首歌詞計(jì)算特征情感向量,將歌詞情感表達(dá)的語義信息進(jìn)行量化,進(jìn)一步進(jìn)行歌詞情感分析。
本文采用分級累加的方式計(jì)算歌詞的情感傾向值。將文本表示為四元組O(W,P,F,E),其中W,P,F,E分別表示程度副詞、情感傾向、情感詞詞性和增強(qiáng)因子,歌詞的情感傾向值為每一分句歌詞情感傾向值的和。對兩個(gè)詞語w1和w2,假設(shè)其分別有x1,x2,...,xn和y1,y2,...,ym個(gè)概念,則w1和w2的相似度為各個(gè)概念的相似度的最大值,公式(5)如下所示:
其中,Sim(xi,yj)表示兩個(gè)概念義原的計(jì)算公式,其計(jì)算方法如公式所示:
其中,α為可調(diào)節(jié)參數(shù)變量,d表示xi和yj兩個(gè)義原項(xiàng)在義原層次體系中的距離,可以根據(jù)詞匯語義相似度計(jì)算得到。
對于一個(gè)詞語W,分別將其與情感詞典中的種子詞進(jìn)行比較,得到其情感傾向值,對比情感值之間的均差,就可以得到詞語W的情感傾向值,計(jì)算公式(7)如下所示:
其中,pi和nj分別表情情感詞典中的每個(gè)情感類別種子詞,最終根據(jù)得到的情感傾向結(jié)果進(jìn)行分類。
本文選取網(wǎng)易云音樂中情感類別中收聽量和熱度較高的193首中文歌曲作為情感分析的對象,每個(gè)類別標(biāo)簽下約15首歌。這些歌曲具有代表性情感表達(dá)較為鮮明,結(jié)合本文構(gòu)建的音樂情感詞典對每個(gè)標(biāo)簽類別下的歌詞進(jìn)行情感傾向性分析后,分別得到對應(yīng)的分類結(jié)果,如表1所示。
表1 歌詞情感傾向性分類結(jié)果
從情感分析結(jié)果的度量值可以看出,本文實(shí)驗(yàn)基于音樂情感詞典的歌詞情感分類的平均準(zhǔn)確率為73.6%,召回率為77.6%,F(xiàn)值為75%,其中浪漫、傷感和快樂等類別的分類效果較好,一定程度上反映出本文所構(gòu)建的針對音樂的領(lǐng)域情感詞典具有較好的分類性能,能夠比較準(zhǔn)確地概括音樂詞典情感子類的情感特征。同時(shí)可以看出懷念、孤獨(dú)等類別的歌詞判定結(jié)果不夠理想,可能由以下兩個(gè)原因:情感分類標(biāo)簽和歌詞情感分析,情感分類標(biāo)簽是網(wǎng)易云音樂自設(shè)的情感分類標(biāo)準(zhǔn),本文在進(jìn)行分析時(shí)歌詞所分析得到的結(jié)果并不與分類標(biāo)簽完全一致造成分類結(jié)果不理想;在進(jìn)行歌詞情感分析時(shí),語義相似度由義原層次體系中的距離決定,對本文中歌詞的分類效果存在一定影響。
本文針對中文歌詞,提出一種音樂情感詞典的構(gòu)建模型,該模型借助點(diǎn)間互信息相似度的計(jì)算方法進(jìn)行基礎(chǔ)詞匯的擴(kuò)充、網(wǎng)易云音樂的分類標(biāo)簽構(gòu)建歌詞文本情感向量,對中文歌詞進(jìn)行情感分類,取得了較為理想的分類效果。同時(shí),本文在進(jìn)行文本的情感傾向性分析時(shí)對上下文的語義間的影響考慮并不完整,且只是單方面關(guān)注了歌曲的文本部分,今后還需要協(xié)同音頻進(jìn)行分析,從而更加全面地對歌曲情感進(jìn)行分析和判定。