【導讀】如何評定一首歌的歌詞的創(chuàng)造性?有些歌詞是否真的套詞或假借他人之手?本文作者就嘗試用 NLP 技術(shù)分析了一位出名卻也具有爭議的嘻哈歌手 —— Drake 創(chuàng)作的歌詞,來看看他的歌詞中到底蘊藏著什么秘密。
背景
每隔幾年就會有一位藝術(shù)家風靡世界。甲殼蟲樂隊和邁克爾杰克遜的盛名不必多說。 這些藝術(shù)家用他們天才般的創(chuàng)造力感染著數(shù)百萬人。現(xiàn)在,許多藝人爭相想成為 Top 1。有些出乎意料的是,一位多倫多本地,藝名叫“Drake”的藝人,近年來聲勢頗盛。
Drake最初聲名鵲起的原因他參演了一部在21世紀初流行的青少年情景喜劇《德格拉西:下一代》中的角色。然而,當 Drake 想成為一名說唱歌手時,他便退出了演出。在與唱片公司簽約后,Drake 發(fā)行了他的第一張專輯《So Far Gone》。這張專輯獲得了 Platinum 認證,并讓Drake迅速登頂了嘻哈世界的頂峰。在接下來的八年里,他又連續(xù)出了多張專輯,其中專輯Scorpion 是他最近發(fā)行的新專輯。
為什么 Drake 的作品很受歡迎?這里面可能包含很多原因。然而,我選擇從他歌曲的歌詞方分析入手。獲取 Drake 歌曲的歌詞文本數(shù)據(jù)并不困難,難的是,如何分析它們?這就要感謝如今日益提升的 NLP(自然語言處理)技術(shù),使分析文本數(shù)據(jù)比以往容易很多。
今天,神經(jīng)網(wǎng)絡已經(jīng)成為無數(shù) NLP 算法的通用框架,有各種各樣的工具可供使用,因此開發(fā)者可以使用它們解決大量的 NLP 問題。這些工具讓我可以分析 Drake 的歌詞。
在進入實際分析之前,我需要先處理一下 Drake 的歌詞。雖然有幾個在線的歌詞資源可用,但我決定使用 Genius.com。Genius 是一個注釋歌詞的網(wǎng)站,并且有一個很棒并易于使用的API。
Drake 的哪一首歌有最獨特的歌詞?
大家似乎對 Drake 的創(chuàng)造力并不買賬,經(jīng)常批評他缺乏創(chuàng)造力。過去,他常被指控竊取其他說唱歌手的 flow 并且擁有幕后的作詞者。我打算去看看這些評論是否合理。
我從其他文章中提到的處理方法獲得靈感。不分析歌詞的總字數(shù),在我看來一首歌的歌詞總字數(shù)并不能作為衡量創(chuàng)造性的主參考,我改為分析歌詞中的獨特詞。
在完成清理文本數(shù)據(jù)后,我開始分析每首歌曲中獨特歌詞的數(shù)量。下面是 Drake 所有歌曲中獨特歌詞分布的直方圖。似乎他的大多數(shù)歌曲都有 100 到 200 個獨特詞。但是沒有其他藝術(shù)家歌曲的分布作參考,這個直方圖目前并不能說明 Drake 的創(chuàng)造力。
一個更好的方法是根據(jù)專輯的獨特詞來看他的創(chuàng)造力。下圖是在 Tableau 中完成的可視化結(jié)果。x 軸表示專輯的名稱,y軸表示獨特詞的數(shù)量。每個Bubble(氣泡)代表一首歌。就獨特的歌詞而言,似乎沒有任何一張專輯顯得更具創(chuàng)意。但是,每件作品在獨特歌詞數(shù)量方面至少有一個異常值。令人吃驚的是,盡管有如此龐大的作品數(shù)量(25首歌曲),他最近發(fā)行的專輯 Scorpion 上的歌曲在獨特歌詞的數(shù)量上幾乎沒有變化。
現(xiàn)在,再回答上面的問題,哪首歌具有最獨特的歌詞?答案似乎是 6PM in New York。 下表列出了排名前十的歌曲。
命名實體識別(NER)
命名實體識別屬于“信息提取”的子任務,旨在將文本中的命名實體定位和分類為預定義的類別,例如人員,組織,地點,時間表,數(shù)量,貨幣價值,百分比等等。”(維基百科)。 NER是一項特別棘手的任務。由于語言的復雜性,使得創(chuàng)建一個對所有文本都準確的 NER 算法非常困難。某個算法或許可以在一個語料庫(在我們的例子中就是 Drake 歌詞的集合)上效果很好,但是在另一個語料庫上表現(xiàn)就不好。這種不一致性使得有必要多嘗試幾種 NER 算法。我也嘗試了集中不同的算法,發(fā)現(xiàn)有些算法并不是非常不準確。下面簡要介紹一下我使用的兩個 NER 算法:NLTK 和 CRF-NER。
第一個是 NLTK 提供的命名實體算法。“Ne_chunk”使用了部分語音標簽(POS標簽)的單詞列表來推斷哪些單詞是命名實體。從下面的結(jié)果中可以看出,NLTK的算法本身并沒有做得很好。
我嘗試的第二個命名實體算法是由斯坦福提出的令人印象深刻的 NER 工具 —— CRF-NER。
與NLTK算法相比,它需要更長的運行時間,但會產(chǎn)生更準確的結(jié)果。雖然它并不完美,但有明顯的進步。
主題建模
NLP中最有趣的方向之一就是主題建模了。主題模型是一種統(tǒng)計模型,用于發(fā)現(xiàn)在文檔集合中的抽象主題。它是一種常用的文本挖掘工具,用于在文本中發(fā)現(xiàn)隱藏的語義結(jié)構(gòu)”。主題建模有幾種突出的算法。其中最突出的是顯式語義分析和非負矩陣分解。在這次的分析中我選擇用線性判別分析(LDA)。LDA是由 Andrew Ng,Michael I. Jordan和David Blei 開發(fā)的一種生成統(tǒng)計模型。首先通過學習給定語料庫中固定數(shù)量的主題表示,然后在給定的主題數(shù)量的情況下,LDA將學習語料庫中每個文檔的主題分布。
▌1.給所有Drake的歌詞進行主題建模
想要使用 LDA 的第一件事就是學習 Drake 所有歌曲中最突出的主題。為了實現(xiàn)這一點,我先將所有歌曲放入列表中。然后,使用 SciKitLearn 的 CountVectorizer 工具,創(chuàng)建了所有這些歌曲的詞袋表示。詞袋模型是一種通過矩陣表示單詞的簡單方法。 然后,使用SciKitLearn 版本的LDA,我訓練了一個可以在給定文本中找到8個主題的模型。
▌2.可視化主題
有兩種將 LDA 模型進行可視化的方法。第一個是通過寫一個函數(shù),輸出為每個主題中最突出的單詞。這個結(jié)果似乎很有意思,但它只能提供了少量的信息。例如下圖中的結(jié)果,能知道主題7與主題2不同,但無法得知更多它們之間不同程度的信息。
出于這個原因,我用了另一種可以在文本中顯示主題的方法。
在Python中,有一個很棒的庫叫做 pyLDAvis。它是一個專門使用 D3 來實現(xiàn) LDA 模型可視化的庫。D3可以說是目前最好的可視化工具。(但是,它主要為 Javascript 用戶準備的。因此擁有此插件但對JavaScript 不太了解的人非常有用。)這個庫通過降維來實現(xiàn)可視化。 降維將有許多變量的數(shù)據(jù)集壓縮為較少量的特征。降維技術(shù)對于數(shù)據(jù)可視化非常有用。基于我要解決的問題,我認為最好使用T-SNE(T分布的隨機鄰域嵌入)來降低維數(shù)。
從我訓練好的模型來看,Drake的大部分歌詞都可以分類到了 Topic 2,一個占據(jù)圖表大部分的大型主題。
▌Drake 所有主要專輯的主題又是什么樣的呢?
我按照與之前相同的步驟來嘗試處理這個問題,這次我沒有用 LDA 算法去找每個專輯間的主題。 而是使用了定義函數(shù)的方法來顯示他所有主要作品中最突出的單詞。
總結(jié)
每當 Drake 發(fā)布新歌或?qū)]嫊r,肯定會有不滿的聲音。但他的作品幾乎總是在人氣榜上排名靠前的位置。他的歌詞瞬間也成為 Instagram 和 Facebook 話題的主要內(nèi)容,還會霸占數(shù)星期。他的歌讓人很容易記住,大部分原因要歸功于他的歌詞。
通過主題建模和命名實體識別完成了一個簡單的 NLP 項目,也對文本內(nèi)容(Drake的歌詞)有了不同且更具體的理解。這只是一個起點,也建議大家在工作和生活中進行一些實踐,不斷嘗試,積累技能。
-
神經(jīng)網(wǎng)絡
+關(guān)注
關(guān)注
42文章
4771瀏覽量
100719 -
算法
+關(guān)注
關(guān)注
23文章
4607瀏覽量
92841 -
nlp
+關(guān)注
關(guān)注
1文章
488瀏覽量
22033
原文標題:如何評價創(chuàng)作歌手的業(yè)務能力?試試讓NLP幫你分析一下
文章出處:【微信號:rgznai100,微信公眾號:rgznai100】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
相關(guān)推薦
評論