我用python抓取了10,000+條歌詞,看看鄧紫棋都在歌里唱了些什么?

作者:阿儂

公眾號(hào):阿儂呀(shannonhole),如需轉(zhuǎn)載,請(qǐng)標(biāo)注轉(zhuǎn)載來源。



2019年9月5日「再見」在YouTube突破1億次的觀看次數(shù),使鄧紫棋成為首位擁有二支MV在YouTube超過一億點(diǎn)擊的華語女歌手。

2019年9月10日,「光年之外」在YouTube 上僅用了985天突破2億次的觀看次數(shù),使鄧紫棋成為首位MV在YouTube超過二億點(diǎn)擊率,是華語點(diǎn)擊量第一的歌手。

G.E.M.?-?MySecret

記憶中,鄧紫棋還是那個(gè)唱著“睡公主”的小女生,那個(gè)學(xué)生時(shí)代校園里放著的“where did you go?”里的磁性女聲。

不知不覺她已經(jīng)迎來了自己的第六張個(gè)人專輯《摩天動(dòng)物園》,向眾人展示著自己不一樣的色彩與蛻變。


在學(xué)習(xí)爬蟲的過程中,我一直在想找個(gè)什么主題來實(shí)踐練練手,最后還是非常不能免俗的選擇了“歌詞分析”。

在眾多歌手里,我找到了最近新發(fā)了專輯,同時(shí)也是我從學(xué)生時(shí)代就非常熟悉的華語女歌手“鄧紫棋”。


歌詞里都唱了些什么?

鄧紫棋于2008年出道,到今年已經(jīng)是第12個(gè)年頭了。我翻閱網(wǎng)易云的專輯列表,看到居然有43張專輯之多。

我在其中挑選了6張 ≥10首歌的具有代表性的專輯,分別進(jìn)行了歌詞分析。

《18 Plus》是鄧紫棋于2009年發(fā)布的第二章專輯,專輯共收錄了10首歌,其中包括了《where did you go》、《All About U》等代表歌曲。

從詞云里可以看出,高頻詞中英語的占比很高,其中“give up”, "go", "game over"等詞匯的頻率最高。因?yàn)閷]嬛型瑫r(shí)收錄了粵語歌,高頻詞中包含了“點(diǎn)解”(粵語:為什么?)這一類的粵語詞匯。

其他詞匯如“離開”、“放棄”、“飲酒”、“何時(shí)”等,整體給人一種青春期的迷茫、煩惱等切合青少年心境的主題,也反映了剛過18歲的鄧紫棋的心境。

《My Secret》發(fā)布于2010年,專輯共收錄了10首歌,翻唱Christina Aguilera名曲「The Voice Within」成最新主打歌。

顯而易見,“heart”是這張專輯的關(guān)鍵詞,英文單詞“wanna”, “over”, “one”, “button”, “now”都是位列專輯前十關(guān)鍵詞?!懊倒濉崩^上張專輯后,依然位列本張專輯關(guān)鍵詞。

從整體來看,《my secret》這張專輯更加表達(dá)出了一種積極向上的色彩。

鄧紫棋于2011年發(fā)表的專輯《A.I.N.Y. 愛你》是她的首本個(gè)人琴書,里面收錄了三張專輯共21首歌曲,其中包括我們熟悉的《回憶的沙漏》、專輯同名歌曲《A.I.N.Y.》等等。

我們可以看到,“沒有”、“玫瑰”再次作為關(guān)鍵詞出現(xiàn)在了詞云中。這和這張專輯收錄很多之前發(fā)布的歌曲不無關(guān)系。

此外,“不要”、“想要”、“wanna”這類表示訴求的詞語也多次出現(xiàn)。“現(xiàn)在”、“now”作為最常出現(xiàn)的時(shí)間副詞,也許是想表達(dá)立于當(dāng)下的意愿。

《Xposed》是香港唱作歌手鄧紫棋(G.E.M.)的第四張音樂專輯,于2012年7月5日正式發(fā)行,收錄了10首歌曲。

鄧紫棋包攬全部10首歌曲的作詞并參與其中6首歌曲的作曲,專輯囊括了搖滾、電音、舞曲等多元化音樂風(fēng)格。

“離開”、“go”在本專輯再次成為了高頻詞,“離別”成了本專輯收錄曲的一大主題。在湖南衛(wèi)視《我是歌手》上唱紅的那首《泡沫》,也收錄在本張專輯中,講述了凄美而又脆弱的愛情。

21歲的鄧紫棋逐漸褪去了少女的青澀,歌聲里的情感也更加的深刻。

《新的心跳》是鄧紫棋的第五張專輯,蘊(yùn)釀三年的制作過程,十首新作,所有詞曲由G.E.M.個(gè)人創(chuàng)作。收錄曲包括《再見》、《來自天堂的魔鬼》等。

“away”是這張專輯當(dāng)之無愧的關(guān)鍵詞,總計(jì)出現(xiàn)了66次,成為了例張專輯之最。其次,“我們”、“再見”、“心跳”、“世界”緊跟其后,這些詞語意向都表現(xiàn)出了一種新的姿態(tài),對(duì)過去說“再見”。

《摩天動(dòng)物園》是鄧紫棋宣布自立門戶后的第一張個(gè)人創(chuàng)作專輯,共收錄13首歌曲,由鄧紫棋擔(dān)任制作人。

一首《差不多姑娘》讓“差不多”榮升本專最高頻詞,總計(jì)出現(xiàn)了93次。其次包括“自己”、“我們”、“好想你”、“美麗”等詞匯。對(duì)比早期的專輯,英文詞的比例明顯下降,這也許也折射了鄧紫棋更加轉(zhuǎn)向大陸市場。

其次“美麗”、“透明”、“fly away”這些向來的高頻詞,依然是鄧紫棋的風(fēng)格,是她常使用的形容和意向。

比起前幾張專輯所用的或消極或積極的形容詞,這張專輯似乎顯的更加的中性,前十位的關(guān)鍵詞都沒有特別強(qiáng)的情感,反而有一種成長后的穩(wěn)重和釋然(anyway也有可能是我想多了)。

這也可能反映了鄧紫棋經(jīng)歷了和前公司的糾紛、娛樂圈的起起伏伏后變的更加的沉穩(wěn),但歌詞中依然不失對(duì)世界的美好期望。

除了抓取了6張專輯的所有歌詞外,我還在網(wǎng)易云音樂“鄧紫棋”頁面下,抓取了top50熱門歌曲的歌詞,綜合分析這50首歌的關(guān)鍵詞。

“差不多”依然位列所有詞匯之最,其次是“away”、“我們”、“一個(gè)”、“沒有”,雖然top50歌曲和所選取的6張專輯歌曲不完全交叉,但高頻詞基本類似。

除此之外,如“世界”、“快樂”、“心跳”、“永遠(yuǎn)”、“回憶”都是有著鄧紫棋風(fēng)格的高頻詞匯。


歌曲里都表達(dá)了什么情緒?

我對(duì)抓取的top50歌曲歌詞進(jìn)行了簡單的情緒分析,把詞匯類型分為了積極的、消極的、中性的三類。

可以看出,鄧紫棋的歌曲中,積極的詞匯占了接近3/4,消極詞匯占比最小。這和我們總體對(duì)鄧紫棋歌曲的印象也實(shí)相符的,歌詞中常用“愛”、“魅力”、“快樂”等給人積極印象的詞匯。

同時(shí),我也分別對(duì)6張專輯歌曲的歌詞做了情緒分析,圖標(biāo)中可以看出,專輯《A.I.N.Y.》中的積極詞匯是最多的,這與主題“愛”也相互應(yīng)和(不過也受到了歌曲數(shù)量的影響)。專輯《摩天動(dòng)物園》和《Xposed》緊跟其后。

在歌曲數(shù)量相近的前提下,《摩天動(dòng)物園》的積極詞匯幾乎是《新的心跳》的兩倍,可見在這兩張專輯中間鄧紫棋也經(jīng)歷了某種轉(zhuǎn)變。

消極和中性的詞匯總體還是占比較少,相互之間差異并不是很大??傮w各專輯詞性差異成比例。


從詞性分析“鄧紫棋”風(fēng)格的詞匯

在所有top50熱門歌曲詞匯中,我分別選出了人稱代詞、名詞、形容詞進(jìn)行分析。

有圖表可見,“我”的頻率略高于“你”,占了近半數(shù)??梢娙藗兛傮w上更在意自己的感受大于他人。

人稱代詞“你”的數(shù)量緊跟其后,占比42%,“你”和“我”之間的關(guān)系果然還是一個(gè)永久主題。其次“他/她”、“我們”、“自己”占比相對(duì)較小。

“世界”以壓倒性趨勢占據(jù)第一位,其次是“心跳”、“回憶”、“童話”、“夢想”、“愛情”?。

這些詞匯也反映了鄧紫棋很多歌曲以青春、愛情、夢想為主題。

在常用的形容詞中,“快樂”遠(yuǎn)高于其他詞匯排在第一。這也符合情緒分析中,鄧紫棋的歌曲以積極情緒為主。

緊跟其后的高頻形容詞有,“溫柔”、“年輕”、“瘋狂”、“顫抖”等?!澳贻p”、“瘋狂”等詞匯都給人一種年少輕狂、青春的氣息。


永恒的主題——愛

通過統(tǒng)計(jì)6張專輯中“愛”or“l(fā)ove”出現(xiàn)的頻率,并除以專輯歌曲數(shù)量,得出上述圖表??梢姴徽撌悄囊粡垖]?,“愛情”都是經(jīng)典且永恒不斷的主題。

從頻率上看,專輯《Xposed》歌唱愛情的比例是最高的,專輯《18+》緊隨其后。專輯《my secret》則比例最少,平均一首歌只出現(xiàn)一次。


代碼實(shí)現(xiàn)

首先,選取的資源(url)是網(wǎng)易云音樂網(wǎng)頁版鄧紫棋頁面下的top50歌曲,以及單張專輯頁面的所有歌曲。???

抓取思路是:歌曲url →?歌曲詳情頁?→ 抓取歌詞。

原本的想法是用Beautiful Soup和Request進(jìn)行抓取再清洗數(shù)據(jù),但是試過之后發(fā)現(xiàn)返回的是空值。

重新查看網(wǎng)頁代碼,發(fā)現(xiàn)目標(biāo)內(nèi)容都在iframe標(biāo)簽內(nèi),需要用到selenium啟動(dòng)webdriver進(jìn)行抓取。

廢話不說,直接上代碼。

需要注意一下的是webdriver,如果沒有安裝過的話,需要根據(jù)瀏覽器版本安裝到對(duì)應(yīng)文件夾內(nèi)。這里用的是chromedriver,具體地址可以度娘。

獲取網(wǎng)頁代碼之后,就可以根據(jù)標(biāo)簽獲取有效信息。

查看代碼可以發(fā)現(xiàn),歌曲詳情鏈接和歌名都在<span class="txt">標(biāo)簽里,用.find()可以直接進(jìn)行抓取。

抓取歌詞思路也是類似的,這里就不詳細(xì)說明了。最后用pandas進(jìn)行整理,得出來的表格是這樣的。

分詞部分我用的是jieba,因?yàn)槲覒械谜覄e的,如果有別的比較好的中文分詞包,歡迎大家推薦給我。

在排除無效內(nèi)容部分很多人和我說可以用正則表達(dá)式(but萌新一枚我還不是很懂,歡迎大神指導(dǎo)),最后我就偷懶直接用了excel篩選。

情緒分析我也是找了現(xiàn)成的SnowNLP包,但我其實(shí)感覺不是非常準(zhǔn)確,如果有更好的求推薦。下面是官方說明。


數(shù)據(jù)可視化

向大家推薦一個(gè)在線詞云生成網(wǎng)站W(wǎng)ordArt,真的非常的方便,but缺點(diǎn)是要翻墻。

python的可視化功能也非常強(qiáng)大,我現(xiàn)階段還在摸索中,希望以后能有更多應(yīng)用。

圖表的話就是老大哥Excel了,之前有朋友說可以用AI或者PPT直接畫,會(huì)漂亮一點(diǎn),我嫌麻煩就算了。

Excel的缺點(diǎn)是導(dǎo)出畫質(zhì)低(也有可能是我沒有解鎖正確打開方式),優(yōu)點(diǎn)是極其方便。找了一些國內(nèi)的在線圖表生成軟件都不是很合心意,求大佬推薦。


結(jié)語

在實(shí)操的過程中,我再次感嘆爬蟲對(duì)于學(xué)習(xí)、工作帶來的極大便利,如果升級(jí)打怪獸能夠熟練操作的話,可以節(jié)省不少花在簡單重復(fù)操作上的時(shí)間。

以及,無project無干勁,學(xué)習(xí)爬蟲的最好方式是定一個(gè)具體的目標(biāo),在應(yīng)用的過程中不斷學(xué)習(xí)加深。

Das is?alles. Tschüss!?

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

友情鏈接更多精彩內(nèi)容