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