• 沒有找到結果。

3.3. 自相似度矩陣(SELF-SIMILARITY MATRIX)建立

3.3.1. 詞行結構排比演算法

立 政 治 大 學

N a tio na

l C h engchi U ni ve rs it y

23

圖 3.5 自相似度矩陣示意圖

接下來我們定義詞行的 Sim(li

, l

j

)(或是距離)函數,我們利用了兩種方法:(1)

詞行結構排比演算法;(2)DTW(Dynamic Time Warping)演算法。方法一是用來計 算其中三種詞行特徵值:(1)句字數結構序列;(2)拼音結構序列;(3)詞性結構序 列。方法二是用來計算詞行的聲調音高序列特徵值。

3.3.1. 詞行結構排比演算法

我們將兩行歌詞利用序列排比(Sequence Alignment)為基礎的方式尋找最佳的特 徵序列對應分數,來當做兩行歌詞間的相似度。我們希望仍素較少的詞行特徵序 列,其所有仍素都能夠與仍素較多的詞行特徵序列做對應,因此特徵序列仍素較 多的詞行必定會對應到 Gap 因而產生懲罰分數(Penalty),如此可以突顯出兩詞行 結構上的差異。例如兩行歌詞,以拼音結構序列特徵為例分別是序列 Pinyin1 = <A, B, C, D, E> 總字數 5,序列 Pinyin2 = <F, G, H>總字數 3,因為兩行歌詞差了 2 個 字,所以 Pinyin1中的某兩個仍素必定會對應到 Gap。在排比的過程中,我們希 望考量到詞行與詞行之間 Gap 分佈與空白結構的特性,這兩種特性的相似度的 高低關係,我們以下分別來探討。

‧ 國

立 政 治 大 學

N a tio na

l C h engchi U ni ve rs it y

24

[特性 1] 連續 Gap 與非連續 Gap

某些歌曲為求變化,即使相同是主歌的片段,在音樂上會以增加音符的變化,因 此歌詞也會跟著增加。例如五月天《突然好想你》中的兩句歌詞分別如下:

主歌 1 第一行第一句: 最怕空氣突然安靜

主歌 2 第一行第一句: 我們像一首最美麗的歌曲

可以發現主歌 2 第一行第一句比主歌 1 第一行第一句總字數多了三個字,我 們去聽音樂的旋律可以知道隨著音符增加的字詞是「最美麗」這三個字,而這三 個字也就是一個詞彙,因此我們認為ㄧ般增加的音符往往都會群聚在一起。根據 這樣的想法,我們參考生物資訊裡的同盟線性評分法(Affine Gap Penalty)的概念,

讓行與行之間排比時,連續 Gap 的情況要比非連續 Gap 的情況相似度來的高。

例如現在有兩行歌詞特徵序列,分別是序列 seq1=<A, B, C>仍素各數為 3,序列

seq

2 = <1, 2, 3, 4, 5>仍素各數為 5。圖 3.6 為兩序列排比時兩種 Gap 分佈的示意 圖。圖 3.6(a)為非連續 Gap 的情況,序列 seq2的仍素 2, 4 對應到 Gap。圖 3.6(b) 為連續 Gap 的情況,序列 seq2 的仍素 2, 3 對應到 Gap。則圖 3.6(b)排比方式的 相似度要比圖 3.6 (a)排比方式的相似度高。

圖 3.6 序列排比的兩種 Gap 分佈示意圖 (a) 為非連續 Gap 情況,(b)連續 Gap 情況

‧ 國

立 政 治 大 學

N a tio na

l C h engchi U ni ve rs it y

25

[特性 2] 空白對應 Gap 與非空白對應 Gap

一行歌詞中會有包含數個句子,每個句子是用空白符號做區隔。一般來說主歌與 副歌的歌詞的空白數目會有明顯的差異,所以我們認為空白 Gap 的懲罰分數要 比非空白 Gap 的懲罰分數高。例如有兩行歌詞特徵序列,分別是序列 seq1=<A, B, C>總仍素為 3,序列 seq2=<1, 2, _, 3> 特徵仍素為 3(不包含空白),如圖 3.7(a) 為空白對應 Gap 的排比情況。現在將序列 seq1改成<A, B, _, C>,將 seq2改成<1, 2, _, 3, 4>,最後排比的情況為圖 3.7(b),seq2 的仍素 4 對應 Gap。則我們預期圖 3.7(b)排比情況的相似度要比圖 3.7(a)排比情況的相似度高。

圖 3.7 空白對應 Gap 的排比情況

(a)空白對應 Gap 的排比情況 (b)特徵仍素對應 Gap 的排比情況

為了要符合上述的兩個特性,我們將仍素之間可能互相對應的關係整理成表 3.2。為了一般性,假定 Seq1 的特徵仍素個數(不包含空白符號)比 Seq2 的特徵仍 素個數少,表格中打勾表示在排比過程中此兩種類型的仍素可能會互相對應到,

而打叉表示此兩種類型的仍素完全不可能對應。例如為了要符合特性二,空白符 號只可能對應到 Gap 或是另一個序列的空白符號,而空白符號不可能對應到特 徵仍素,因為沒有對應上的意義存在。

表 3.2 特徵仍素對應關係表

Gap _ 特徵仍素

Gap 

 

_

 

特徵仍素  

Seq1 Seq2

‧ 國

立 政 治 大 學

N a tio na

l C h engchi U ni ve rs it y

27

其中(3.7)的 c 表示在特徵序列 Fj中所有出現空白的位置索引。若演算法中的懲罰 分數滿足|P s| >| Po| >| Pe|,則這樣的參數設定就已經將之前探討的特性 1 與特性 2 考慮到詞行結構排比演算法中。因為特徵序列其中的特徵仍素有三種可能,接 下來我們針對不同的特徵仍素定義(3.2)中特徵仍素之間的成本函數 c。

 句字數特徵仍素

輸入兩個句字數特徵仍素 si,sj∈N+,則兩個句字數仍素的成本為:

𝑐(𝑠𝑖, 𝑠𝑗) = 𝑠𝑖− 𝑠𝑗 (3.8) 由於(3.8)的成本是屬於距離的計算方式,因此最後計算完成的矩陣會是一個 自距離矩陣(Self-Distance Matrix),為了ㄧ致性我們將 SDM 經由轉換成一個 SSM,

轉換方法如(3.9):

𝑆𝑆𝑀 𝑖, 𝑗 = 1 − 𝑆𝐷𝑀 𝑖, 𝑗

𝑚𝑎𝑥 𝑆𝐷𝑀 , ∀𝑖, 𝑗 ∈ {1,2, … , 𝑁} (3.9) 其中 max(SDM)表示在 SDM 中的最大值。

 拼音特徵仍素

輸入兩個拼音特徵仍素 pi

,p

j∈{拼音},關於拼音之間相似度的定義,我們參 考學者張嘉惠[38]等人有請語言學家定義了拼音之間的相似度,我們為了考慮歌 詞通押的特性,因此有將原本定義的相似度做調整,將有通押的韻母,相似度設 定為 0.1。聲母與韻母相似度都介於 0 到 1 之間。兩個拼音特徵的成本為(3.10):

𝑐 𝑝𝑖,𝑝𝑗 =聲母相似度 + 韻母相似度 2

(3.10)

如果 pi與 pj剛好位於句子的最後一個拼音,則 c(pi, pj) = 1,如此是為了加重韻腳 考量的權重。

Method)求解的累積成本矩陣(Accumulated Cost Matrix) SM。表 3.3(b)為式(3.3)中 G 函數的累積成本矩陣 GM (此矩陣為的意義為特徵仍素較多之序列結尾對應

Algorithm Optimal Alignment Path Input: Table S, Table G

Output: Path P /* 序列 Path 儲存 li與 lj的仍素對應序號 Tuple */

Procedure PathBackTracking() A|li

|, B|l

j

|

PTrackingS(A, B) return P

Procedure TrackTableS(A, B) if A = 0 and B = 0 then TrackTableG(A, B)

else

P TrackTableS(A – 1, B – 1) return P.append( (A, B) ) Procedure TrackTableG(A, B)

if TableG[A, B] = TableS[A, B – 1] + Po then P TrackTableS(A, B – 1)

else

P TrackTableG(A, B – 1) return P.append( (-1, B) )

‧ 國

立 政 治 大 學

N a tio na

l C h engchi U ni ve rs it y

30

圖 3.8 最佳化的排比路徑回朔演算法

相關文件