用Python分析了歌神張學友近16萬歌詞,發現了幾個祕密


用Python分析了歌神張學友近16萬歌詞,發現了幾個祕密


可兒可是張學友的鐵桿粉絲,聽了他的很多很多歌曲,比如“吻別”,“餓狼傳說”,“等你等到我心痛”,“祝福”,“她來聽我的演唱會”等等。學友的歌伴我走過了很多很多歲月,從大學生到研究生,從學生到碼農。都是歌神是情歌王子,那學友的歌裡的情感到底如何,既然玩Python,不如動手分析一下。我們爬取了近16萬的歌詞並分析,並用機器學習分析了一下,哇發現幾個亮點。

01

歌詞的收集


首先是對於歌詞素材的收集,我對比了各大音樂平臺的歌詞爬取難易程度,決定採用百度音樂作為爬取對象,爬取張學友的歌曲,由於其歌詞是採用lrc文件保存,


用Python分析了歌神張學友近16萬歌詞,發現了幾個祕密


爬蟲這塊非常簡單,一共才幾十行代碼,我把核心的代碼貼了一下,大家可以動手敲一下看看,不是很難的。爬取結束之後將所有的歌詞文件爬取到了本地。如下圖所示:

用Python分析了歌神張學友近16萬歌詞,發現了幾個祕密


但是在讀取歌詞的時候,歌詞中存在缺失,亂碼等問題,所以需要對於歌詞進行耐心的清洗,然後將歌詞以及歌曲名稱以及歌手信息保存到Excel表中,清洗好的數據如下圖所示,去表格開頭一部分的數據:

用Python分析了歌神張學友近16萬歌詞,發現了幾個祕密


取表格後10行的數據:


用Python分析了歌神張學友近16萬歌詞,發現了幾個祕密


02

歌詞情感分析


接下來便是進行對於歌詞的情感分析,對於歌詞的情感分析,依託的是BosonNLP平臺,該平臺對於中文,提供了許多使用簡單、功能強大、性能可靠的自然語言分析服務。我們這裡是用到他的情感分析的功能。

首先大家得去它的平臺註冊,得到我們個人的API密鑰,如下圖所示:

用Python分析了歌神張學友近16萬歌詞,發現了幾個祕密


得到API密鑰後,就按照它的教程進行了對於歌詞的情感分析,該平臺提供的情感分析,每天只有500次的免費使用機會。而且它對於語句的情感分析返回的是兩個值:

  • 第一個值是指該語句是非負面的概率
  • 第二個值是指的負面的概率,兩個值的和加起來等於1

這裡的負面可以理解為一些消極的態度,例如生氣、焦慮、憂傷等等。代碼如下圖所示:


用Python分析了歌神張學友近16萬歌詞,發現了幾個祕密


上述的代碼非常的簡單,主要做了下面幾步:

1).先將歌詞讀入到list_lyrics這個列表中

2).然後調用requests.post函數,將語句送至BosonNLP平臺

3).最後就會返回該歌詞的情感分析值。

小編分析了497首歌,最終得到了張天王的十大悲傷歌曲排行榜,和十大積極歌曲排行榜,如下圖所示:


用Python分析了歌神張學友近16萬歌詞,發現了幾個祕密


>>

十大悲傷曲目為: 0 1

0 我不明白 0.996758

1 不想失去你 0.996119

2 燥狂 0.989038

3 I Don T Wanna Be 0.986872

4 你冷得像風 0.977820

5 認床 0.977314

6 葬月 0.977087

7 問月 0.974448

8 當愛變成習慣 0.974190

9 算命 0.973292

十大積極曲目為: 0 1

0 讓奇妙飛翔 0.996168

1 花與琴的流星 0.995877

2 祝願 0.992565

3 溫馨 0.991497

4 仍是會喜歡你 0.990432

5 仍是喜歡你 0.990432

6 流星下的願 0.988126

7 留住這時光 (Full Version) 0.986213

8 簡簡單單就是愛 0.986053

9 飛機師的風衣 0.981768

由上圖可以看出,學友哥的最悲傷的歌曲為《我不明白》,負面指數達到了0.996758,可謂是悲傷至極。小編特地去聽了一下,真的很悲傷,歌曲緩慢展開,充滿了離別的憂傷,是一首典型的悲傷情歌。

03

高頻詞分析


做到這些就完了嗎?顯然不夠,作為情歌王,張學友的各種必然充斥著複雜的“情感關係”,小編分析了歌詞中“他”、“她”、“我”、“你”的數量,最終得到了一下的結果:


用Python分析了歌神張學友近16萬歌詞,發現了幾個祕密


讀取文件,然後遍列每一行大歌詞,用count統計每一行的關鍵字.

用Python分析了歌神張學友近16萬歌詞,發現了幾個祕密


從圖上我們可以看出,學友哥的歌曲人物關係大部分還是圍繞兩人的情感展開,很少有摻雜“第三者”的問題。

既然是情歌,怎麼能少得了“愛”,小編又為大家分析了這497首歌曲中哪五首歌曲中“愛”字出現的頻率最高,如下圖所示:

用Python分析了歌神張學友近16萬歌詞,發現了幾個祕密


從上圖可以看出,《命運舞會》這首歌中“愛”出現的次數最高。

最後小編為大家制作了歌詞的詞雲分析,讓大家清楚的看到,在學友哥的歌曲中,究竟哪些關鍵詞出現的頻率最高,如下圖所示:

用Python分析了歌神張學友近16萬歌詞,發現了幾個祕密


發現永遠,自己,沒有,一個,不會,一生,什麼,一切這些詞是高頻出現的。想想確實是的,你試著回憶幾首學友的歌,都忽多忽少的出現這些詞。以上就是小編為大家帶來的基於歌詞的情感分析和統計,Python就是這麼有趣,只要你想玩的趣味練習,Python大部分都能實現。

現在加關注小編有機會獲取高手進階必讀的Python設計模式,機不可失。

用Python分析了歌神張學友近16萬歌詞,發現了幾個祕密

最後,關注可兒不迷路。每日都會分享一些學習小技巧。

需要學習教程資料的私信可兒“資料”就可以領取啦。

相關推薦

推薦中...