如何用Python探究你喜爱的歌手?大数据还是很厉害的
2019年5月, Tones and I發行了她的第二張單曲《Dance Monkey》,這首歌一直在世界各地流行,你肯定曾經隨著這首歌的節奏搖擺過!
我第一次知道這首歌是在某節課上,我朋友一直唱著它。一開始,筆者感覺他好像一遍又一遍地重復同樣的歌詞:“dance for me, dance for me, dancefor me”。聽了原曲后,我注意到它確實有一些重復的歌詞。筆者接著聽了她的另一首熱門歌曲《Never Seen The Rain》,也發現了類似的模式。
?
筆者決定以這個小項目為基礎,探究藝術家在選擇歌詞措辭時有自己的風格。
我將使用基本的python技能來分析Tones and I的兩首熱門歌曲:《Dance Monkey》和《Never Seen The Rain》,查看它們之間是否存在任何相似之處,以及她如何通過歌詞的重復創建自己的音樂風格,比如使用語音單詞(例如“oh”和“ah”)等。
1. 收集和清理數據
筆者從Metro Lyrics獲得了這兩首歌的歌詞并對其進行了編輯,確保歌詞之間沒有逗號或多余的空格,還將諸如“You’ve”改為“You have”以保持一致性。之后,筆者將其作為字符串上傳到JupyterNotebook上,并為其分配了一個變量(dm&nstr)。
dm.lower()函數更改了單詞以確保它們全部為小寫。如果不這樣做,程序會認為“You”與“you”有所區別,認為它們是不同的詞。打印后,結果將如下所示:
?
由于目的之一是找出歌詞中總共有多少個單詞,所以當所有單詞都在一個字符串中時,就無法做到這一點。為了分隔它們,筆者使用了以下代碼:
?
我對Never Seen The Rain的歌詞也進行了同樣的處理。
2. 分類數據
下一步是計算單詞和唯一單詞的總數。為了計算單詞總數,筆者在初始變量上使用了LEN()函數:
總共453個單詞。然后,為了計算用于創作歌曲的單個詞的數量,筆者在split_dm變量上使用了SET()函數。
此函數確保列出至少使用一次的單詞,因此結果如下所示:
?
為了計算新列表中的單詞數,筆者使用了LEN()函數:
總共有72個唯一單詞,指的是是只有這些單詞才被用于這首歌的創作。
3. 最常用的詞
在要使用的單詞中,筆者想確定前10個單詞(重復最多的單詞)以及僅使用一次的單詞。下面使用的代碼顯示了每個單詞及其用法計數:
?
為了更易于閱讀,筆者使用以下代碼將單詞和值綁定在一起:
?
然后,使用此代碼檢索前10個最常用的單詞:
合并后的數據如下所示:
?
筆者可以肯定地說,“Tones and I”的獨特風格(在她的所有歌曲中都絕對可以聽到)就是在歌曲中使用“oh”和“ay”之類的原聲單詞,這兩個詞的數量在她的兩首歌曲中均排在前10位。
4. 只使用了一次的單詞
?
圖源:unsplash
使用類似于上面的代碼,筆者還發現只使用了一次的單詞:
只有23個只使用了一次的單詞。另一首歌曲也運用了相同的函數。
5. 重復字數
下一個目標是找出不止被重復一次的單詞數:
這首歌里重復了49個單詞。為了找到重復的次數,筆者使用了以下代碼:
這49個單詞共被重復了430次!同樣,在另一首歌里也執行相同的代碼。
6. 可視化
筆者將兩首歌曲中的數據合并到excel的表格中,然后在筆記本上讀取。
?
比較數據的最有效方法是使用條形圖:
?
查看圖表,我們可以得出以下結論:
- 兩首歌曲在歌詞中使用一次的單詞和重復一次以上的單詞數量相對一致,盡管“Dance Monkey”中的單詞數略微多一些。
- 盡管如此,“Dance Monkey”中重復單詞的次數要比“Never Seen The Rain”的重復次數高得多。
- 在構成歌詞的單詞中,只有不到一半的單詞僅使用過一次。
7. 最后的想法
在進一步處理數據時,筆者發現一個非常有趣的現象,即標題中的兩個單詞是如何頻繁使用的:“Dance”使用了19次,而“Monkey”在整首歌曲中僅使用了一次。如果大家對Python感興趣的話,可以加一下我的微信哦:abb436574,免費領取一套學習資料和視頻課程喲~
令人驚訝的是,用于創作歌詞的單個單詞的數量非常少(大約占15%-20%),其中約85%的單個詞被重復使用以組成歌曲。
總結
以上是生活随笔為你收集整理的如何用Python探究你喜爱的歌手?大数据还是很厉害的的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: wdpc V3 phpmyadmin打不
- 下一篇: 任务二 用户注册界面设计