文字轉換成數值。傳統的 one-hot encoding 是一種將文字資料數值化的方法,對 於種類繁多的中文字會產生大維度的稀疏向量造成計算空間的浪費。詞嵌入 (Word Embedding)是取代傳統 one-hot encoding 的主流方法,使用神經網路基於 上下文將詞彙轉換成向量,比起 one-hot encoding 能以更低的維度表示文字且保 留其語義。詞嵌入將文字轉換成向量的單位是詞彙,然而中文不像英文詞彙跟 詞彙之間有空白分割,需要先經過斷詞系統,再將詞彙轉成向量。由於主流的 中文斷詞系統 Chinese Knowledge and Information Processing4(CKIP)及 Jieba5是
4 CKIP, http://ckipsvr.iis.sinica.edu.tw/
5 Jieba, https://github.com/fxsjy/jieba/
‧ 國
立 政 治 大 學
‧
N a tio na
l C h engchi U ni ve rs it y
針對白話文所設計,且尚未有可靠的文言文斷詞系統,因此本研究的斷詞方式 略過了二字詞、三字詞等多字詞彙的斷詞工作,僅以單字詞的方式對文字進行 斷詞。為了與詞彙為單位的詞嵌入概念區別,在本研究中將此步驟稱為字嵌入 (Character Embedding)方法,表 4-10 為以唐代墓誌銘語料片段進行字嵌入轉換 的結果範例,為了方便檢視範例中的小數點僅取到第三位。轉換的方式以參考 語料的句點作為分句單位,將句中的單字詞作為詞彙輸入,並額外增加「!」
作為文章開頭、結尾的標示。由於字嵌入只能轉換本身訓練資料的文字,本研 究增加「*」符號代替無法轉換的文字,也就是未知文字的標示。字嵌入產生 的文字向量維度越大,能提供的文字細節就越多,一般而言訓練模型的效果也 就越好。但是更大的維度需要更多的訓練時間,而且在字數不多的情況下,更 大的維度沒辦法更精確的表達一個字的向量。為了讓斷句模型的訓練時間以及 效果在合理的範圍,找出一個足夠表達不同文字的向量大小是一個必須的步 驟。
表 4-10 字嵌入轉換範例
語料 女子玉華,蓋洗馬蘇君之季女也…
字嵌入 女: 0.756, 0.296, 0.758 , … , 0.201 子: 2.066, 2.427, 1.599, … , 1.331 玉: 1.222, 1.229, 0.401, … , -1.961 華: -3.341, -1.418 , -0.385, … , -2.221
…
‧ 國
立 政 治 大 學
‧
N a tio na
l C h engchi U ni ve rs it y
4.7.2 數值轉字串
CRF 特徵必須是字串形態,因此在張開旭[4]等的研究中也提到需要將 PMI、t-diff 這類數值形態的特徵進行轉換,然而論文中並沒有提供詳細的轉換方法,
因此本節說明在本研究中的 CRF 數值特徵轉換成字串的方式。
在 python 中內建的數值轉字串的方法是直接將數值進行轉型,其方法是以 數值的十進位表示方式作為轉換的結果,例如十進位數值 3.14 的轉換為字串結 果是由字元「3」、「.」、「1」、「4」所組成的字串「3.14」。儘管這個方法能夠快 速的完成數值字串化,卻也造成了相近數值卻不能歸類為同一類的問題,例如 儘管數值 3.14 以及 3.2 的值相近,對於 CRF 來說字串「3.14」以及「3.2」僅是 兩類不同的字串,若是能將兩者轉換為同一字串「3」除了能減低計算複雜度,
同時也增加數值字串化後產生的每類字串的資訊量。在本研究中為了解決這樣 的問題,透過排序數值特徵,將之分割成十個不同的區間,並確保每一區間都 有相同數量且相近的值,如此一來便能夠達到上述的效果。
4.7.3 字串轉數值
LSTM 的模型除了在字嵌入的步驟中,將前後文以 word2vec 將文字進行向量轉 換,尚有聲韻特徵以及名詞表是字串形態,需要先行轉換成數值。word2vec 將 文字轉成向量的過程仰賴該文字的前後文資訊進行轉換,也就是只能是語句、
文章等形式的資料,然而聲韻及名詞表的資料並不屬於這類範疇,為了解決這 樣的問題,本研究改以 one-hot encoding 的方式進行轉換。在名詞表的特徵中,
每個名詞的開頭被標記為 B,中間被標記為 I,而結尾為 E,不屬於以上三類的 其他文字則標記為 O,能夠以長度為 3 的 one-hot encoding 向量進行轉換,如表 4-11 所示。而聲韻中的聲母、調、等、呼的種類較少,如表 4-12 所示,也能 夠以 one-hot encoding 進行轉換,轉換結果如表 4-13 所示;反切等種類較多的
‧ 國
立 政 治 大 學
‧
N a tio na
l C h engchi U ni ve rs it y
聲韻種類除了會造成維度過大,且資料過於離散的狀況下對斷句效果也會產生 負面影響,因此這類特徵並不納入 LSTM 模型的訓練測試中。
表 4-11 官職表特徵的數值轉換範例
來源語料 俄轉節度判官,提知之道,皎然明白,和而不柔,守而通。
文字 俄 轉 節 度 判 官 提
標記結果 O O B I I E O
轉換結果 0,0,0 0,0,0 1,0,0 0,1,0 0,1,0 0,0,1 0,0,0
表 4-12 各類聲韻總數
音韻表 反切上字 反切下字 聲母 韻目 調 等 呼 韻母 總數 466 1168 38 236 4 4 2 160
表 4-13 聲韻(等)特徵的數值轉換範例
來源語料 女子玉華,蓋洗馬蘇君之季女也,
文字 女 子 玉 華 蓋 洗 馬
聲韻(等) 三 三 三 二 一 四 二
轉換結果 0,0,1,0 0,0,1,0 0,0,1,0 0,1,0,0 1,0,0,0 0,0,0,1 0,1,0,0
‧
條件隨機場是馬可夫隨機場(Markov Random Fields, MRF)的一種形式。由於 CRF 同樣具有馬可夫性質(Markov Property),因此經常用於處理序列型資料分 類的問題。而斷句正是一個典型序列型分類的問題,以下以斷句為範例做 CRF
本研究使用的是 linear-chain CRF,為 CRF 參考 HMM(Hidden Markov Model, HMM)所產生的其中一種形式。給定序列狀態X,狀態序列Y的 CRF 機率