三、 系統設計
3.3 古漢語斷句模型
3.3.3 Markov Model Tagger
相較於訓練階段,上線階段的工作比較單純,可以概分為資料準備和解碼
(decoding)這兩個步驟。由於訓練的工作已經完成,上線階段不再需要 dataset,
而以使用者輸入的資料作為處理對象。使用者輸入的資料,預設是一段沒有斷句 符號的古漢語字串,由於在運算時,一概以整數來表示中文字元,所以資料準備 的工作,就是將輸入的中文字元,置換為一列整數陣列,這個整數陣列,就是斷 句模型的observation sequence。
而所謂解碼,就是利用斷句模型,對observation sequence 找出最符合的對 應label sequence,也就是對使用者所輸入古漢語字串中每一個漢字,標上斷句 標籤(在此,漢字都已經轉成整數來表示)。
得到label sequence 之後,還不能直接輸出,因為使用者預期看到的 output,
是經過斷句的古漢語字串。所以,此時要利用label sequence 的資訊,將輸入的 古漢語字串加上斷句符號。這個部份並不困難,所有被標上LR 或 RR 的漢字,
就是子句或短句的最後一個字,所以只要在這些漢字後面,插入斷句符號,就得 到了斷句完成的古漢語字串。
3.3.3 Markov Model Tagger
Hidden Markov models 有相當多年的歷史,原理簡單,實作不難,訓練的 速度很快,同時往往有不錯的表現。所以,在本研究裡,我把Markov model taggers 當作 baseline,不方面作為斷句研究的基礎方法,同時也和新的主流技 術conditional random fields 比較印證。
因為dataset 裡已經有預先標記好的 training data,Markov model tagger 不 必透過迭代法訓練,直接從training data 中統計,就可以得到 model 所須要的
所有的特徵和參數 , , 。
解碼的部份,使用傳統的Viterbi 演算法。Viterbi 是 dynamic programming 演算法,在很有效率的時間內,找出最符合observation sequence 的 label sequence。但此時得到的 sequence,是以斷句標籤組成的串列,必須再經過一 次處理,將標籤轉為斷好句的文本,才能輸出。
3.3.4 Conditional Random Fields
儘管conditional random fields 在理論上有相當優秀的條件,但要有效率地 實作,並充份發揮其威力,卻不是容易的事情。而決定其威力和效率的關鍵,在 於特徵粹取和參數評估這兩個環節。
表格 4 搭配 conditional random fields 使用的特徵模版
樣版 說明
, 前一個label 與目前的 label
, 目前的字
x , y 上兩個字
x , y 上一個字
x , y 下一個字
x , y 下兩個字
, , 過去的兩個字
, , 上一個字和目前的字
, , 目前的字和下一個字
, , 未來的兩個字
Conditional random fields 提供了非常自由的特徵函數介面,讓用家各憑需 求和專業領域知識去設計特徵函數。徵特函數或者由人類手動編排,或者從
雙方之長。在本研究的範圍裡,並不打算使用人工制訂的方式來設計特徵函數,
而以完全以empiricist 的方法,直接從 training data 中粹取。由於特徵函數的介 面有很大的自由度,所以我設計10 種特徵模版(feature templates),在training data 中找尋相符的 patterns,再從中取出現次數較多,較為顯著的,作為斷句模 型的特徵函數。我所使用的10 種特徵模版,羅列於表格 4。
傳統的conditional random fields,以 maximum log‐likelihood estimation 來 評估參數,目前實作的主流是quasi‐Newton (BFGS)法。但是,在本研究中,我 改以Collins [32] 提出的 averaged perceptron 作參數評估。相較於傳統的訓練方 法,averaged perceptron 流程簡潔,效率也高,只要迭代幾個回合,就能找到不 錯的參數組合。唯一的缺點是,averaged perceptron 不能如其他 maximum log‐likelihood estimation 方法,保證收斂到 global maximum。即使如此,averaged perceptron 的效能已經非常接近目前最佳的評估方法 limited‐memory
quasi‐Newton (L‐BFGS) [28], [41]。權衡訓練的效率,averaged perceptron 的 缺點是可以接受的。Averaged perceptron 的原理和作法,已經在第二章介紹,
本研究中的實作演算法,如圖10。
解碼的部份,conditional random fields 和 Markov model tagger 幾乎完全一 樣,先用Viterbi 演算法,找出最佳的 label sequence arg max | ,再將 此label sequence 轉為斷句後的文本即可 [8], [22], [23]。
圖 10 Averaged Perceptron 學習演算法
Inputs:
The training data , for 1, 2, … . A parameter T being the number of iterations.
The feature functions , , … Initialization:
Set initial parameters , , … to 0 Procedure:
for 1 … do for 1 … do
arg max if then
for 1 … do
, ,
,
for k = 1 …m do
∑ … , … , Return:
The parameters