• 沒有找到結果。

節奏斷詞模組

在文檔中 宋詞斷詞與本體論之建置 (頁 39-44)

第三章 宋詞斷詞器與本體論設計

3.2. 宋詞斷詞器

3.2.7. 節奏斷詞模組

節奏是音樂旋律中必備的條件,指語言上的停頓,也稱之為頓。而宋詞為長 短句,配合音樂依聲填詞,為了讓詞句吟詠時能有高低起伏、優美悅耳,填詞時 非常注重節奏。節奏約分為兩大類:聲律節奏與意義節奏。舉例來說,4 字句的詞 句,常切分為(2,2),或(1,3)[28]:

28

29 未知詞(Unknown Word)的問題。

詞中三字句至九字句佔的數量最多,我們整理出表 2詞的常用節奏[13]。四字

八字句 (3,5)(5,3)(1,7)(2,6)(4,4)(6,2)

九字句 (3,6)(5,4)(6,3)(7,2)(1,8)(2,7)(4,5)(6,3)

十字句 (3,7)(7,3)(4,6)(6,4)(5,5 詞譜標豆)

30 (3) 規則 3:六字句或讀,(2,2,2)

(4) 規則 4:七字句或讀,(2,2,3)

(5) 規則 5:三字句或讀,(1,2)或(2,1)

節奏斷詞模組針對常用的節奏進行斷詞。不過以五字為例,可能切為(2,3)、

(3,2)、(2,2,1)、(1,4)、(1,2,2)這幾種組合,如果直接切成(2,3)

難免有以偏概全之疑慮,此時就有賴於其它模組的輔助。如:

念武陵春晚

–李清照《鳳凰臺上憶吹簫》

「念」是領字,若領字模組正確切割出此字,那麼這個五字句就可能就是 (1,

4) 或(1,2,2) 的組合;而「武陵」是專有名詞,同樣地,若專有名詞模組 正確地切分出此字組,那麼五字句的組合就為(1,2,2)。如果其它模組都無法 輔助進行切分的動作,就參考四字讀斷為(1,2,2)。

針對三字句或讀沒有一定的切分準則,切分的方式首先根據詞庫進行比對,

找尋(2,1)或 (1,2) 之中的二字詞在詞庫的詞頻較高者為優先。若無法從 詞庫進行比對,則參考詞句是否對仗,再進行切割。

綜合以上所述,參考圖 7是節奏斷詞模組的比對流程。首先輸入詞句,判斷 詞句中每個詞彙的長度。若為一或二個句或讀,直接斷出不必再行處理,因為所 有詞的詞句中僅有一個字的只有陸游《釵頭鳳》一闕,此外都是以兩個音節為一 個單位。若為四、六字句或讀,則按常用規則切為雙字詞。五字句或讀則切為(2,

3);七字句或讀則切為(2,2,3)。而三、五、七字句或讀中可能會包含三字 詞,其解法是將三字詞先切為(2,1)與(1,2),再查詢兩個二字詞的詞頻,

以詞頻較高者為斷字原則。若無法取得詞頻,則留待對仗模組處理。

圖 7:節奏斷詞模組流程

根據圖 7的流程,定義出節奏斷詞模組的斷字演算法,參考演算法 3。

演算法 3節奏斷詞模組斷字演算法 (針對一首詞)

Symbol Definition:

Ci:a Ci object

Sentence:a sentence object

SentenceCollection:a sentence collection of a Ci object instance Segment:a segment object representing a segmented word

SegmentCollection :a collection of all Segment object in a Sentence instance t1:temp variable

31

32

t2:temp variable Input:

Ci: a Ci object instance for segmenting Output:

newCi: a Ci object, contains all segmented words collection ,and tags with particular parser Algorithm :

Begin:

33

step 3: create a new SegmentCollection for the Sentencei ,

step 4: create one to many Segment objects representing a word in Sentencei add all Segment object into SegmentCollection

} else {

step 1:extract last two words Segmentj into Segmentk

step 2: tag Segmentk with WordParser / / WordParser代表節奏斷詞模組

step 3:create a new SegmentCollection for the Sentencei ,

step 4:create one to many Segment objects representing a word in Sentencei add all Segment object into SegmentCollection

}

} } End:

在文檔中 宋詞斷詞與本體論之建置 (頁 39-44)

相關文件