• 沒有找到結果。

立 政 治 大 學

N a tio na

l C h engchi U ni ve rs it y

理。在 KKBOX-Song-Mood-Dataset 與 NJU-Music-Mood V1.0-Dataset 中,「重複 詞只計算一次」的處理皆讓模型的準確率有所提升。

本論文分成以下流程:第一章緒論介紹研究動機與目的;第二章為文獻回 顧;第三章是研究方法的介紹,包括了三種 TF-IDF 相關的歌詞特徵擷取方法,

並且介紹了本研究使用的三個分類方法;第四章為資料說明;第五章為建模分 析,比較「Zaanen 等人 [1]」、「Laurier 等人 [8]」與我們提出歌詞特徵擷取 方法,在 KKBOX-Song-Mood-Dataset 上的優劣,以及探討放入「歌詞特徵」、

「旋律特徵」與「歌詞特徵加上旋律特徵」,三種不同特徵組合對於模型效果 好壞的比較。最後以第六章結論與建議做為結束。

使用的 Mel-Frequency Cepstral Coefficients (梅爾倒頻譜係數)等等做為變 數,再使用機器學習的模型做預測。雖然預測的效果不錯,但是沒將歌詞的資

像是節奏、音準、Mel-Frequency Cepstral Coefficients(梅爾倒頻譜)等等特 徵;歌詞特徵擷取方面,則視一首歌為一個文本,使用 TF-IDF 方法擷取歌詞特 徵。作者發現由於 TF-IDF 方法擷取的歌詞特徵維度過大,並且為稀疏的,因此 分類結果雖然比起隨機猜的準確率來的高,但還是有進步空間,作者為了解決 維度過高的問題,使用了 Latent Semantic Analysis 的方法以及提出 Language Model Differences 的方法,在模型的預測能力中有顯著的提升。最後作者同時 加入歌詞特徵與旋律特徵,更加提升了模型的預測能力,因此也顯示同時加入 歌詞特徵和旋律特徵是對模型有顯著幫助的。

Yang 等人 [9] 則是在 2008 年利用 Probability Latent Semantic Analysis 對歌 詞抽取出潛在向量,並搭配一元(unigram)與二元語法(bigram)的 TF-IDF 做 為歌詞特徵,雖然分類效果不比使用旋律特徵,但是卻也發現再結合其他的特

‧ 國

立 政 治 大 學

N a tio na

l C h engchi U ni ve rs it y

情緒的問題幫助不大,但是作者提出的「視一個種類情緒中的所有歌詞為一個 文本」的 TF-IDF 方法擷取出的歌詞特徵讓模型在四分類的分類準確率可以到七 成以上,也確立 TF-IDF 方法優於歌詞的基本特徵。

Wang 等人 [10] 在 2011 年時,使用 Zaanen 等人 [1] 在 2010 年時的 TF-IDF 方法,並綜合了「詞性」的考量與「韻腳」的資訊,在該論文使用的資料 集中的表現有所提升,其中值得注意的是,[10] 研究中使用的資料為 500 首 中文流行歌,是在先前歌曲情緒研究中較少見的。

IDF 為逆向檔案頻率(Inverse Document Frequency),用來衡量詞在所有文 本中的普遍性,計算方式為第 i 個詞的逆向檔案頻率為 D(總文件數)除以 𝑡

‧ 國

立 政 治 大 學

N a tio na

l C h engchi U ni ve rs it y

(第 i 個詞在所有文本中出現的文本數)取對數,當一個詞出現在越多個文本 中,逆向檔案頻率越小(當一個詞出現在每個文本中時,逆向檔案頻率則為 0),反之一個詞出現在越少文本中,逆向檔案頻率會越大,其公式如

(3.1.2):

idfi = log 𝐷

|{𝑑𝑗: 𝑡𝑖 ∈ 𝑑𝑗}| (3.1.2)

TF-IDF 為 tfi,j 乘以 idfi ,如式子(3.1.3),

(𝑡𝑓 ∗ 𝑖𝑑𝑓)𝑖,𝑗 = 𝑡𝑓𝑖,𝑗 × 𝑖𝑑𝑓𝑖 (3.1.3)

然而,當一個詞出現在每個文本時,逆向檔案頻率則為 0,使得詞頻(TF)不 管多大, TF-IDF 亦為 0,在顧慮會有損失資訊的情形之下,可以使用平滑處 理的逆向檔案頻率(IDF),其公式如(3.1.4):

idfi = log 𝐷 + 1

|{𝑑𝑗: 𝑡𝑖 ∈ 𝑑𝑗}| (3.1.4)

綜合 TF(詞頻)以及 IDF(逆向檔案頻率)的特性,使得 TF-IDF 可以適當衡 量一個詞在該文本當中的重要性,假如文件集裡總共有 D 個文本,且所有文 件中總共有 W 個詞,此 TF-IDF 矩陣將為一個 𝐷 × 𝑊 的矩陣。

‧ 國

立 政 治 大 學

N a tio na

l C h engchi U ni ve rs it y

3.2 基於 TF-IDF 的歌詞特徵擷取方法

3.2.1 方法一 視一首歌的歌詞為一個文本 [1]

此方法視一首歌的歌詞為一個文本,計算出每一首歌的 TF-IDF 值來代表該首 歌的歌詞特徵,假如我們的資料中有 D 首歌,且在資料中所有的歌詞總共有 W 種詞彙,此 TF-IDF 矩陣將為一個 𝐷 × 𝑊 的矩陣,因此一首歌將以 W 個 元素的向量表示。

此方法的優點為較直觀,與資料檢索中常使用的 TF-IDF 方法思路相同,只是 將資料檢索中的文本,以一首歌的歌詞做替換而已;然而,此方法會有一些缺 點,像是一首歌的歌詞特徵將以 W 個元素的向量表示,通常 W 是一個非常 大的數值,在此研究中主要使用的資料集中,總共有大約 7000 個詞彙,因此 一首歌的歌詞特徵將會以 7000 個元素表示,其維度是非常大的,除了維度爆 炸的問題之外,並且不是每個詞彙都對預測目標有幫助,要從 7000 個詞彙選 出重要的詞彙並不容易。

3.2.2 方法二 視一種情緒標籤的所有歌詞為一個文本 [7]

方法二與方法一不同,方法一是直接計算 TF-IDF 值做為每首歌的特徵,此方 法則是利用 TF-IDF 的方法計算出每個詞在各個情緒標籤中的代表性。

在介紹此方法之前,先定義幾個數學符號,假如訓練資料集中有 D 首歌,

情緒標籤種類 M 個,出現的詞彙有 W 個。

此方法的步驟為先將訓練資料中同個情緒標籤(em)的歌詞集合起來成為一 個文本(docm),如此一來將會有一個新的文本集(C),

C = {𝑑𝑜𝑐𝑚| 𝑗 = 1 … 𝑀} (3.2.2.1)

‧ 國

立 政 治 大 學

N a tio na

l C h engchi U ni ve rs it y

每個文本都對應一個情緒標籤,再利用新的文本集(C)計算出 TF-IDF 值,會 計算出一個 M × W 的矩陣,矩陣的列為情緒標籤,矩陣的行為字詞, TF-IDF 值為該字在各個情緒標籤的代表程度。

使用 TF-IDF 的計算方法能適當的找出代表各個情緒標籤中的關鍵字,TF(詞 頻)能衡量一個詞出現在該情緒標籤的頻率,IDF(逆向檔案頻率)則能過濾掉 那些很常出現在不同情緒標籤中的詞彙,例如 「我們」、「大家」、「非常」

等等(當一個詞有出現在每個情緒標籤的歌詞中,IDF 值為 0),然而,由於 此方法的文本數量即為情緒標籤的種類數,因此通常文本數量是不多的(在本 文中,文本數量為二到三個),因此為了防止太多詞彙的 IDF 值為零,造成資 訊上的損失,我們採用平滑的 TF-IDF 來替代,其 IDF 計算方式如式子

(3.1.4)。

接著會利用此 TF-IDF 矩陣計算出每首歌的特徵。第 d 首歌的歌詞(𝑙𝑟𝑑)將 會被表示為一個特徵向量(feature vectors): (f1, … , fM)。其特徵向量的每個元 素計算方式如式子(3.2.2.2),舉例來說,訓練資料中情緒標籤有快樂、悲傷 與平靜,一首歌的特徵向量則會以三個元素表示(分別為快樂特徵、悲傷特徵 與平靜特徵),快樂特徵的計算方式為該首歌的歌詞中所有的詞對應到 TF-IDF 矩陣中快樂的那列,並加總起來,其他特徵的計算方式以此類推。計算測試資 料中的歌詞特徵時,假如遇到測試資料集的詞不在訓練資料集歌詞中,我們則 視該字在各個情緒標籤的 TF-IDF 值為 0。

fm = ∑ (𝑡𝑓 ∗ 𝑖𝑑𝑓)𝑤𝑘 ,𝑚 (3.2.2.2)

{𝑘|𝑤𝑘∈𝑙𝑟𝑑}

(3.2.3.3)中,重複詞的 TF-IDF 會相對變小;第二,在式子(3.2.3.4)計算一 首歌的歌詞特徵時,「沒對重複詞做處理」的情形,重複詞的 TF-IDF 值是會被

3.3.1 最近鄰居法(k-Nearest-Neighbor)

最近鄰居法採用向量空間模型來分類,主要的想法為相同類別的資料點,彼

3.3.2 支持向量機(Support Vector Machine)

支持向量機,透過解出式子 3.3.2.1 的最佳化問題,找出在該空間中的決策分

‧ 國

立 政 治 大 學

N a tio na

l C h engchi U ni ve rs it y

3.3.3 隨機森林(Random Forest)

隨機森林是一個代表性的引導聚集學習(Bootstrapping Aggregating,簡稱 Bagging)算法,簡單來說,就是使用多個弱學習器來做表決,以下我們簡單的 介紹引導聚集的算法概念。給定弱學習器數量為 M,弱學習器為 h,訓練資料 集為 D, Dbs𝑡 為第 t 次拔靴法後的資料集,(𝐱bst, ybst) 為 Dbst 中對應的特 徵與標籤,我們同時訓練了所有弱學習器,如式子 3.3.3.1,

ht(𝐱) = 𝑎𝑟𝑔𝑚𝑖𝑛 𝐸𝑦𝑏𝑠𝑡 ,𝒙𝑏𝑠𝑡(𝐿 (𝑦𝑏𝑠𝑡 , ℎ(𝒙𝑏𝑠𝑡))) ,

∀𝑡 = 1, … 𝑀 (3.3.3.1)

訓練完所有的弱學習器之後,再利用所有的弱學習器進行多數決的投票,假設 資料中的標籤為集合 V,𝑓̂ 為學習出來的函數,投票過程如式子 3.3.3.2。

𝑓̂(x) = 𝑎𝑟𝑔𝑚𝑎𝑥𝑣∈𝑉∑ 𝐼(ℎ𝑡(𝒙) = 𝑣)

𝑀

𝑡=1

(3.3.3.2)

隨機森林為引導聚集學習中的一份子,顧名思義由許多決策樹組成,並且為 了讓每個決策樹之間的變異變大,使用了許多方法讓每個決策樹有所不同,像 是利用拔靴法,讓每個決策樹的訓練資料有所差異,並且每個決策樹使用的特 徵為所有特徵中隨機抽出的子集等等,最後再將所有決策樹的預測結果做投 票,票數最多的則為隨機森林的預測結果。隨機森林的特色為使用了許多隨機 的概念,讓每個決策樹之間的變異變大,如此一來,每個決策樹在投票的過程 中,達到去除雜訊的效果,並且在許多分類問題中,表現也非常的出色。

‧ 國

立 政 治 大 學

N a tio na

l C h engchi U ni ve rs it y

第四章 資料介紹

在與歌曲相關的資料集中,相較有曲風標籤的資料,有標記情緒標籤的資料 少之又少,因此本實驗在取得有標記情緒標籤的歌曲資料集上非常不易。本論 文使用兩個資料集,分別為 KKBOX 提供的中文歌曲資料「 KKBOX-Song-Mood-Dataset」與南京大學所整理的 「 NJU-MusicMood-V1.0 」 資料集 [2],兩份 資料集的資料量都在千筆之內,並且分別為中文與英文的歌曲資料集。

4.1 KKBOX 中文歌曲情緒標籤資料

此資料集中總共有 593 首中文歌,提供的資訊有情緒標籤、歌詞與 188 個 音訊的特徵。

4.1.1 情緒標籤

此標籤為 KKBOX Data Center 人工標注所產生,每一首歌的情緒分為兩個面 向,一種為單以歌詞的資訊判斷的情緒,另一種為單以旋律的資訊判斷的情 緒,一首歌的兩種情緒是可以不同的。歌詞、旋律標記的情緒準則分別如表格 6,其可以發現有許多歌曲旋律的情緒標籤與歌詞的情緒標籤並不相同,旋律情 緒標籤與歌詞情緒標籤不同的情形中,旋律情緒為悲傷且歌詞情緒為平靜的歌 曲最多,旋律情緒與歌詞情緒的分佈情形如表格 5。

以歌詞標記的情緒標籤中,有 241 首為悲傷, 170 首為平靜, 164 首為快 樂, 18 首為憤怒(歌詞情緒標籤中並無標記成激昂的歌曲);以旋律標記的 情緒標籤中,則有 349 首為悲傷, 117 首為快樂, 64 首為平靜, 48 首為 激昂,15 首為憤怒。

‧ 國

立 政 治 大 學

N a tio na

l C h engchi U ni ve rs it y

4.2 NJU-Music-Mood V1.0 資料集 [2]

在 NJU-Music-Mood V1.0 [2]中,總共有 777 首英文歌曲,提供的資訊有情緒 標籤與歌詞的資訊。

4.2.1 情緒標籤

此情緒標籤的來源為知名音樂網站 last.fm 上使用者對歌曲的標注 (tag),

該資料集作者蒐集在 last.fm 網站上與情緒相關的標註(tag)的歌,並且一首

該資料集作者蒐集在 last.fm 網站上與情緒相關的標註(tag)的歌,並且一首

相關文件