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