提供淘寶天貓內部優惠券,每天千款優惠券秒殺,一折限時瘋搶! 提供淘寶天貓內部優惠券,每天千款優惠券秒殺,一折限時瘋搶! 一網時尚 - 關注當今創業領域的博客
你的位置:首頁 > 資訊 ? 正文

我用Python做了六百萬字的歌詞分析,告訴你中國Rapper都在唱些啥

2017-08-06 | 人圍觀

我用Python做了六百萬字的歌詞分析,告訴你中國Rapper都在唱些啥



《中國有嘻哈》火了,作為一名對中國HipHop毫無了解的吃瓜群眾,我開始好奇以下三個問題:


  • HipHop到底在唱些什么?


  • 各個國家和地區的 Rapper 們想要說的唱的都有哪些特色?


  • 如果想當一個Rapper,我應該怎樣寫詞才能緊跟潮流又不會離題太遠?



為了解答這個疑問,我用Python抓取了美英、臺灣、香港、中國大陸四個地區,總共六千萬的歌詞,其中包括大陸600萬的歌詞,做了一些數據分析的工作,目的就是給我以及像我一樣的吃瓜群眾們一個有理有據的答案。



我的數據源選了X米音樂,寫了好一會代碼,抓取歌詞的爬蟲開始蹭蹭工作了?



爬蟲一般會面對兩個問題——


1.代理問題


頻繁地抓取網站的頁面,IP很容易被封。于是寫了個抓免費代理的爬蟲,抓了八百多個代理IP,夠用了。


2.效率問題


10萬首歌,即使是1秒一個請求,那得27個小時,我可等不了27個小時。


于是我決定開10個線程,三小時程序就能跑完。

……


然后在三小時之后,我收獲一個約100M,49419首歌的數據庫。



接下來,就是一些數據清洗、處理、分析的工作。



蝦米的歌詞都是用戶編輯上傳的,格式不適用數據分析,所以我得把無用的符號、編曲、作詞之類的信息除去(格式統一有多么重要啊朋友們),然后中英文各自分詞。英文需要去停詞(對數據分析無用的詞,一般沒有實際含義,如is、on、at、which),大小寫變換,以及詞形變換。英語中詞匯有單復數、各種時態,為了易于分析,需要還原為詞干。另外不管是中文還是英文都需要詞性標注,一般來說分析也就分析名詞和形容詞,這些現成的開源庫使用(此處省去1000萬字)。


總之,我都搞定了,以下就是分析結果。我們先看看大陸地區的rapper歌詞里有都寫啥關鍵詞?




“世界”和“時間”占據首位,“老子”、“兄弟”、“baby”、“money”、“bitch”、“real”等詞倒是讓rapper的形象呼之欲出。rapper的詞里頻繁提到“音樂”、“歌詞”、“旋律”、“歌曲”,可見他們對自己的音樂非常在乎。嘻哈音樂由于有freestyle的文化,對親自寫詞有要求,否則就不“ real ”,從節目中他們對偶像rapper的diss也能看出來。


接著,我們來看看與其他幾個地區的關鍵詞對比↓



看起來rapper的生活差不多,無論大陸還是臺灣,都喜歡喊“baby”,身邊都有一群“兄弟”和“朋友”,有“夢想”,平時都在唱“hip hop”,有“煩惱”了就罵罵街。


亮點是美國的關鍵字top1是“nigga”,這個和帶有種族歧視意味的“nigger”還不是一個詞。關于這個Tupac有過一個有意思的定義。


nigger : a black man with a slavery chain around his neck.(黑奴)


nigga : a black man with a gold chain on his neck.(金鏈黑漢子)




接下來,為了了解rapper的生活狀況,我開始分析一些常見詞匯在歌詞中出現的頻率。饒舌歌手們的生活想必少不了豪車,出門騎摩拜可能有被開除rap籍的風險。


感謝維基提供汽車品牌頁面,并且很貼心的分了英語名稱、中國大陸譯名,于是我又寫了個爬蟲把品牌名稱抓下來,然后統計數據庫中每個品牌出現的頻率。




這是各汽車品牌在國內16284首嘻哈歌曲中出現的情況,在一首歌的歌詞中出現算一次,總共約有400多首歌中出現至少一次汽車的品牌名字。可以看出,饒舌歌手喜歡寶馬和奔馳的很多,特點只有一個,就是貴!其實夏利、桑塔納等車也有不少歌提到,但一般表達的是消極情緒。


然后我又統計了一下rapper們都喝什么?


*紅色是國內饒舌歌手的數據,黃色是總數據


看來饒舌歌手不那么喜歡喝威士忌,排在威士忌前面的還分別有龍舌蘭、白蘭地、朗姆酒,限于圖表大小我沒將這幾個列入圖表。香檳作為富有的象征,遙遙領先,不過國內的饒舌歌手似乎處于消費尚未升級的水平,啤酒排在首位。外國人比較喜歡金酒,國內的饒舌歌手幾乎沒提到,雖然金酒一般用來調雞尾酒,但是雞尾酒提到的次數也是少得可憐。



饒舌歌手喜歡互相diss(懟),所以他們diss時會罵些啥?讓我們來看看他們都罵了什么臟話。


這個統計有個小插曲,第一次統計發現一個中文臟話都沒有,還以為凈網運動成功了,結果發現分詞的詞庫里壓根就沒臟話的詞匯,重新手動加入詞庫后就好了。


(左邊是所有數據的出現次數,右邊是大陸說唱的出現次數)



大陸16284首歌有2496首出現臟話,臟話率約為15%,而非大陸的數據中,33134首歌有13217首出現臟話,臟話率約為40%。


總的來看,我國歌手比較符合社會主義核心價值觀。我試著把“damn”和“shit”這兩個不那么“臟”并且口語常見的詞在國外的統計中去掉,最后臟話率還有33%,比例遠遠高于大陸。一個推測是,英文臟話詞匯在歌詞中更容易押韻,或者唱起來flow更好把握。另一個可能是審查原因,早有“in3”這樣的樂隊因為歌詞原因被禁,國內的rapper創作起來可不能太奔放。



最后我們來探討一下rap里的押韻。



在《中國有嘻哈》中我們看到有單押、雙押、三押,各種層出不窮的押韻。旋律、押韻、節奏是說唱歌曲三個很重要的評判標準,一個好的押韻,能讓歌曲的flow更加流暢。


那么我們怎么才能唱出酷酷的押韻呢?我從歌詞庫中取出所有歌詞,分詞,然后根據韻母、聲調分類,然后得到了一個押韻詞匯文件。


韻腳的分布挺有趣的,我統計了一下出現前十的兩字詞語韻腳?


可以看出,i i這個韻腳是最容易押韻的。下圖的這個韻腳的部分詞匯。“勢利”,“世紀”,“日志”,“秘密”……


看著這些詞匯,我就情不自禁rap起來了,drop the beat!



雙押x9 達成!


以上應該能告訴你中國到底有什么樣的嘻哈了。

深圳风采期开奖结果