• 沒有找到結果。

Markov Model Tagger

三、  系統設計

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