• 沒有找到結果。

詞綴構詞單元之演算法

第三章 破音字前處理及詞綴構詞單元之設計

3.2 詞綴構詞單元之設計

3.2.2 詞綴構詞單元之演算法

303 老,大,小,高,

低,… {老,大,小,…}(VH) +{Na,DE,Di} 老賊,老士官店

… … … …

330 變 變(VH) + {VH} 變酸,變黑 401 們 {Nab,Naea} + 們{Neqb,Naea} 大人們,情侶們

… … … …

437 賽,會,式,制 {Na,VA,…} + {賽,會,…}{Na} 邀請賽,季級賽

… … … …

至於新構出的詞其詞類,大部分的後詞綴多為名詞所以給予其詞類為「Na 普通 名詞」,剩餘的如「Nc 地方詞」給予新詞類仍為「Nc 地方詞」,「Nb 專有名詞」

給予「Nb 專有名詞」的詞類,其餘的新詞,暫定給予原本相同的詞類。前詞綴 的部份,如詞綴本身是「Na 普通名詞」,新詞也保留同樣的詞類。而前詞綴含有 許多的副詞以及狀態不及物動詞,這兩類的詞綴,我們給予的詞類暫設定為前詞 綴的後接詞其詞類,例如:【老】的詞類為「VH 狀態不及物動詞」,後接詞【士 官】為「Na 普通名詞」,兩個詞構成一新詞【老士官】我們給予「Na 普通名詞」

的詞類;【很】的詞類為「Dfa 前程度副詞」,後接詞【高興】為「VH 狀態不及 物動詞」,兩個詞構成一新詞【很高興】我們給予「VH 狀態不及物動詞」的詞類。

3.2.2 詞綴構詞單元之演算法

由圖 3-2-1 可以看出,江振宇的斷詞器[1]已經達到我們分詞標準的第一 級,之後我們加入後置構詞單元之詞綴構詞單元。對於已經被斷詞的詞串,我們 應將那些詞綴找出,並利用詞綴構詞規則將短詞合併為長詞。整個詞綴構詞單元

的工作流程,表示在下圖 3-2-2:

圖 3-2-2:詞綴構詞單元流程圖

以下我們皆以文句「老先生與大人們在討論事情」作為例子說明,首先,此文句 經過前端的斷詞器會被斷為如下圖的詞串

圖 3-2-3:Linked-list Output Words

這些詞串會送往後級的詞綴構詞單元,經過以下幾個詞綴處理步驟:

(1)搜尋輸入詞串對應的詞綴規則標記:

這一步驟的目的就是要將詞串當中,符合詞綴的詞找出來,並給予詞串對應 的詞綴規則標記。

類似於查詞典的方式,我們 建立的 綴列 。因為詞綴 單音節的一字詞,所以我們於搜尋之前建立一簡單的判斷機制,就是判定輸入

合一字詞的條件則進行比對前、後詞綴表的工作。如此一來,詞串當中符合詞 並給予詞綴規則標記,由例句說明可得到下表 3-2-3

對已 前、後詞 表進行搜尋

的詞串其詞長是否為一字詞,如並非一字詞,則進行下一個詞的比對工作。如果 符

綴的一字詞將會被搜尋出來

表 3-2-3:「老先生與大人們在討論事情」之詞綴規則標記集合表 詞串 規則標記 詞類

老 303 37(VH)

們 401 12(Na) 21(Neqb)

找到所有的詞綴以及給予規則標記之後,便可以進行比對詞綴構詞規則的動作。

(2)詞綴構詞規則比對

找出符合的詞綴文字,經由與詞綴構詞規則的比對,

為新的衍生詞。而構詞規則是以樹狀結構表示,一個樹代表一個構詞

個詞的詞類。如符合規則,則將兩個詞合併 一新詞輸出。詞綴構詞規則比對步驟如下:

此步驟的目的,是將已 進而合併成

規則,且規則標記為 301~330 的屬於前詞綴,401~443 和 458 的屬於後詞綴,

因此我們只需針對規則標記尋找構詞規則,前詞綴則依據構詞規則比對下一個詞 的詞類;後詞綴則依據規則比對上一

圖 3-2-4:詞綴構詞規則比對流程圖

(2.a)建立初始樹集合:

由於是承襲著斷詞單元的結果,每一個詞皆視為一棵樹,而且詞綴構詞規則是參 考定量複合詞構詞規則,所以我們必須將輸入的規則標記集合,轉為以樹狀結構 表示的資料結構,如下圖 3-2-5:

詞串 規則標記 詞類 老 303 37(VH)

們 401 12(Na) 21(Neqb)

圖 3-2-5:建立初始樹集合

(2.b)比對規則且建立樹:

此步驟是詞綴構詞規則比對的核心,目的是將所有可能的樹狀結構組合找出來 (可能的構詞組合),若樹集合中的前詞綴與其在詞串中的下一棵樹或是後詞綴與 其在詞串中的前一顆樹可以某構詞規則結合,我們便建立一棵新的樹(新的詞),

並給予新的樹「規則標記」(代表符合哪項規則)及詞類(一條規則對應到一個特 定的詞類)。

如果符合詞綴的特性而存在於樹集合當中,但卻不存在符合的規則,則新建 之樹必為一個空集合。如果此情形發生,我們則將新建的樹刪除,避免浪費過多 不必要的記憶體空間。整個比對流程如下圖 3-2-6

規則標記 樹集合

比對規則 構詞規則表

(Chomsky Normal Form)

建立樹

新建之樹

=Null Set?

輸出構出詞

刪除並跳至 下一個規則

標記樹

Yes

No

圖 3-2-6:詞綴構詞規則比對流程圖

為了增加規則比對的速度,我們將詞綴構詞規則依照詞典樹的作法,將規則 存成樹狀結構,整個規則樹為一個 general tree,同一層的節點依照規則標記 的數字大小排序好,是一個記憶體動態改變大小的陣列,往後如有新增規則,便 會將新規則插入這樹狀結構當中。如下圖 3-2-7

圖 3-2-7:詞綴構詞規則樹

深色底的代表規則的終點,代表從根節點走到終點經過的節點為一個構詞規 的規則資訊(規則標記、詞類),若無法走到終點 表示沒有對應的規則。以「老(303) 先生」為例,由根節點 303 出發,「老(VH)」

符合

Na(12)」。

(3)更新詞鏈結:

經由上面兩步驟之後,所有能夠更進一步結合成長詞的皆已構出。但為了能 夠使後級的單元使用,我們必須更新舊的詞串鏈結。此步驟不僅更新了舊的詞串 鏈結,也將舊詞的樹狀結構保留,經由圖 3-2-8 便可一目了然。

則,在終點記錄這個規則所對應 則

下一個節點詞類代碼 37,「先生(Na)」符合終端點詞類代碼 12,如此便符合 一項規則,建立一個新的樹「老先生」並給予規則標記 303 及詞類「普通名詞

圖 3-2-8:更新詞串鏈結圖

由上圖,上層為新的詞串鏈結,下層為舊的詞串鏈結。

(4)

「老先生 與 大人們 在 討論 事情」。

步驟,詞綴構詞單元便算完成,而所有的規則標記與詞類資訊 皆完

相關文件