第三章 研究方法
3.3 維基百科內容前處理
3.3.4 斷句
國
立 政 治 大 學
‧
N a tio na
l C h engchi U ni ve rs it y
3.3.4 斷句
在研究中相關句是以例句為單位,因此擷取維基百科內容後,需將正文進行斷句 處理,以產生例句。斷句是以標點符號(逗號、句號、驚嘆號、分號)作為句子之 間的分割點,斷句後每句獨立的句子稱之為例句,經過斷句處理的中文維基百科 後總共有 26,815,431 個例句。例句長度為原始例句的字串長度(包含中英、數字 及標點),如例句 K1 例句長度為 27,例句 K2 例句長度為 15。
K1. 2003 年 3 月 14 日臺灣首例非典型肺炎引發 SARS 風波 K2. 不久就傳入日本、朝鮮、越南等國
圖 7 展示例句長度為 1 至例句長度為 100 數量之統計結果。例句平均長度 為15 個字元,例句長度眾數為 10 個字元。此外最長的例句達到 3,859 個字元,
內容為例述中國人民政治協商會議第五屆全國委員會委員名單;圖 8 示範中文 維基百科斷句後結果。
圖7 例句長度以及數量(部分結果,例句長度 1 至 100 之數量統計)
0 200,000 400,000 600,000 800,000 1,000,000 1,200,000 1,400,000 1,600,000
1 11 21 31 41 51 61 71 81 91 101 111 121 131 141 151
數量
例句長度
例句長度與數量線圖
‧ 國
立 政 治 大 學
‧
N a tio na
l C h engchi U ni ve rs it y
圖8 中文維基百科斷句後結果(部分結果) 3.3.5 維基百科內容基本數據統計
表 3 呈現維基百科內容基本數據。維基百科資料庫平均一至二個禮拜更新一次 內容,而本研究於 2018 年 11 月 1 日取得最新維基百科內容,其總條目數共有 1,029,447 篇條目。而在研究中是以相關句為基礎,因此須將維基百科內容進行 斷句,經標點符號進行斷句後共有26,815,431 個例句,例句平均長度為 15 個字 元,每個條目平均有26 個例句。
表3 維基百科內容基本數據統計
3.3.6 斷詞
在中文,詞彙為最小有意義的單位,然而中文並不像是英文詞彙之間有空白作分 隔。因此需要藉由斷詞器來作處理。在目前研究中,使用兩種斷詞器進行斷詞,
分別為CKIP 中文斷詞系統以及結巴(Jieba)斷詞器,以下分別介紹:
取得日期 2018 年 11 月 1 日 條目總數 1,092,447 篇 總例句數目 26,815,431 句 例句平均長度 15 字元 條目平均例句數 26 句
‧ 國
立 政 治 大 學
‧
N a tio na
l C h engchi U ni ve rs it y
1. CKIP 中文斷詞系統
[20
]CKIP 由中央研究院詞庫小組所開發,有單機版以及線上版。單機版允許 使用者自行更新字典,執行斷詞速度較線上版迅速。圖 9 示範維基百科內 容經 CKIP 斷詞後結果。
圖 9 CKIP 斷詞結果(部分結果) 2. Jieba 斷詞
[4
]Jieba 是一套由 python 所開發的中文開源斷詞程式,Jieba 採用隱藏式馬 可夫模型( hidden Markov model ) 搭配維特比算法( Viterbi algorithm) 找 出最佳的斷詞結果,同時支援自定義辭典以提升準確率。執行速度較單機 版 CKIP 快,在原始版 Jieba 是以簡體中文作為訓練語料,由於在研究中 實驗語料為繁體中文,因此在研究中使用繁體版 Jieba。繁體版 Jieba 採用 與原始版 Jieba 相同的演算法,不同的是繁體版 Jieba 替換原有的簡體中 文詞庫以及機率表做出針對繁體中文的斷詞器。圖 10 示範維基百科內容 經繁體版 Jieba 斷詞後結果。
‧ 國
立 政 治 大 學
‧
N a tio na
l C h engchi U ni ve rs it y
圖10 繁體版 Jieba 斷詞結果(部分結果) 3.3.7 斷詞器基本數據比較
表4 呈現 CKIP 和繁體版 Jieba 斷詞的結果統計。單機版 CKIP 處理整批中文維 基百科約需 50 個小時,而繁體版 Jieba 則約為 40 分鐘;斷詞後語料大小相差 10MB;總中文詞彙數兩者來到 1.9 億左右,而繁體版 Jieba 斷出多約 200 萬個詞 彙;相異中文詞彙數,CKIP 來到 230 萬左右,較繁體版 Jieba 多出約 50 萬;而 在CKIP 處理中每個詞彙的平均頻率為 82 次,繁體版 Jieba 處理中每個詞彙的平 均頻率為106 次;而二種斷詞器斷出的結果中,僅出現一次的詞彙 CKIP 有 120 萬左右,而繁體版Jieba 亦有 80 萬左右。
表4 CKIP 和 Jieba 斷詞結果統計
圖 11 呈現繁體版 Jieba 以及單機版 CKIP 斷詞器,將中文維基百科進行斷
斷詞器 CKIP 繁體版Jieba
所需時間 181,861(sec) 2,454 (sec) 斷詞後語料大小 1.22(G) 1.23(G)
總中文詞彙數 190,560,030(詞彙) 192,813,143(詞彙) 相異中文詞彙數 2,320,843(詞彙) 1,818,616(詞彙)
平均詞彙頻率 82(次) 106(次)
僅出現一次詞彙數 1,217,859(詞彙) 809,407(詞彙)
‧ 國
立 政 治 大 學
‧
N a tio na
l C h engchi U ni ve rs it y
斷詞器中所斷出的詞中,二字詞所佔比例最高,繁體版Jieba 所斷出的詞彙中,
有55.6%為二字詞;單機版 CKIP 斷詞器所斷出的詞彙中,有 49.6%為二字詞。
此外繁體版Jieba 所斷出單字、二字、三字以及四字詞佔所有繁體版 Jieba 斷出的 詞彙比例為99.9%;單機版 CKIP 斷詞器所斷出單字、二字、三字以及四字詞佔 所有單機版CKIP 斷詞器斷出的詞彙比例為 99.6%。
圖11 單字、二字、三字及四字詞所佔比例
表5 、表 6 呈現繁體版 Jieba 以及單機版 CKIP 斷詞器,將中文維基百科進行斷 詞後,頻率前100 名詞彙頻率以及所佔比例。於繁體版 Jieba 所斷出的詞彙中,
頻率前31 名詞彙皆為單字詞,頻率最高的二字詞為「中國」,於中文維基百科中 共出現461,653 次,所佔總中文詞彙比例為 0.2%;於單機版 CKIP 斷詞器所斷出 的詞彙中,頻率前30 名詞彙皆為單字詞,頻率最高的二字詞亦為「中國」,於中 文維基百科中共出現 458,742 次,所佔總中文詞彙比例為 0.2%。此外於繁體版 Jieba 中前 100 名詞彙佔總中文詞彙比例為 29.8%;單機版 CKIP 斷詞器前 100 名 詞彙佔總中文詞彙比例為30.0%。各斷詞器前 25 名所佔比例呈現在圖 12 。
‧
‧
‧ 國
立 政 治 大 學
‧
N a tio na
l C h engchi U ni ve rs it y
圖12 頻率前 25 名詞彙所佔比例
3.4 擷取相關句
在研究中,透過分群目標詞彙的相關句,將目標詞彙中義項相似的相關句集合成 一群,再透過每群之相關詞彙和代表句,對目標詞彙進行消歧。
首先,斷句後每句獨立的句子稱之為例句,而在本研究中定義相關句為具有 目標詞彙的例句。在此以目標詞彙「蘋果」為例,以下有三句例句
L1. 在日語語法學界。
L2. 內部設計為四人一間。
L3. 但並不會改變蘋果其他方面的特性。
因為例句L3 包含目標詞彙「蘋果」,例句L3 在研究中定義為相關句,而例句 L1 以及例句L2 因為未包含目標詞彙「蘋果」,因此不為相關句。
3.4.1 增加相關句語境
在實際情形中,僅將一句例句作為相關句,其提供的語境可能無法判斷目標詞彙 在此相關句的義項。在此以目標詞彙為「蘋果」例句M1 為例,蘋果代表的義項
0.00%
1.00%
2.00%
3.00%
4.00%
5.00%
6.00%
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25
比例
名次
頻率前25名詞彙所佔比例
繁體版Jieba 單機版CKIP
‧ 國
立 政 治 大 學
‧
N a tio na
l C h engchi U ni ve rs it y
可以為科技產品或者水果,其語義邏輯皆可以解釋,造成「蘋果」在此相關句下 仍為歧義。
在本研究中,提供參數「左右例句數量」,設置相關句左右例句的數量。透 過增加相關句「左右例句數量」,增加相關句更多語境,用以辨讀目標詞彙在此 相關句的義項。以例句M1 左右例句數量設置為 1 為例,增加例句 M1 語境後,
透過例句M2 可以得知。
M1. 但並不會改變蘋果其他方面的特性。
M2. 能夠將導致氧化褐變的多酚氧化酶的表達量顯著降低至原先的十分之 一不到,但並不會改變蘋果其他方面的特性,研究人員在蘋果中轉入能 夠抑制多酚氧化酶的基因序列已完成RNA 干擾的過程。
目標詞彙「蘋果」在此相關句中代表的義項為水果,而非科技產品,藉此解決相 關句過短,目標詞彙在相關句中仍可能會歧義的現象。
3.4.2 剔除過短相關句
而在增加相關句語境後,因為原始語料中,標點符號錯用的緣故,使得相關句仍 過短無法提供足夠的語境資訊。以目標詞彙為「蘋果」 並且將「左右例句數量」
設置為1 為例,在維基百科內容中,其中一相關句如例句 N1,原始條目在此條 列期貨商品的種類,因此棉紗與蘋果之間不應以逗號或分號進行分隔,應以頓號 分隔相關句。
N1. 棉紗,蘋果;動力煤
因此於本研究中設計二種方式剔除過短相關句,第一種,根據相關句中的例 句最小長度;第二種,根據相關句中的例句平均長度。若以目標詞彙「蘋果」, 左右例句數量設置為1 為例,相關句如例句 O1 所示。
O1. 瑞典著名乒乓球運動員10//暱稱"金蘋果"7//左手橫握球拍6
‧ 國
立 政 治 大 學
‧
N a tio na
l C h engchi U ni ve rs it y
其中於各個例句的右下角標記例句長度,於例句 O1 中,例句長度最小為 6,例 句平均長度為7.6,因此若設置「篩選長度」為 7 以第一種「篩選種類」進行篩 選,則剔除此相關句;反之,以第二種「篩選種類」進行篩選,則保留此相關句。
3.5 建立 K-means 分群模型
本研究,使用分群技術將相關句進行分群,使目標詞彙義項相似的相關句集合成 一群。
其中在本研究中使用K-means、聚合式階層分群法、BIRCH clustering、spectral clustering 為分群模型。由於而在 K-means 中起始點的選擇對於分群的結果有重 要影響。因此在研究中設計三種方式選擇K-means 的起始點。此外在研究中,將 分群數目設置為一個範圍,並透過purity 評估不同分群數目、embedding 架構、
embedding 模型、窗口大小及相關句維度的下分群的結果,並透過 purity 選取最 優之分群模型,作為擷取目標詞彙代表句之依據。
在K-means 分群中,起始點的設置會對於分群結果有重要影響,若起始點的 選擇與實際數據分布差異過大,會導致分群結果不佳。在本研究中,以三種方法 選擇起始點。以下分別列出此三種選擇起始點的方法,並實際說明此三種方式如 何選擇起始點。
方法1:以 K-means++選擇分群起始點。
方法2:先將參考句分群,並作為研究語料之分群起始點。
方法3:依據參考句的義項類別將參考句分群,並作為研究語料之分群 起始點。
方法1:以 K-means++選擇研究語料分群起始點。
在研究中,使用維基百科內容所擷取之目標詞彙相關句以及參考句作為研究語料,
透過embedding 技術將研究語料進行向量化,並使用 K-means++的方式,選擇研 究語料的起始點。
‧ 國
立 政 治 大 學
‧
N a tio na
l C h engchi U ni ve rs it y
其中在透過 Lloyd 演算法執行 K-means 時,一般透過隨機選取資料中的 K 個資料點作為起始點,Cheung 於[11]表示如果隨機選取的起始點與實際的數據分 布差異很大,會導致不好的分群結果。而 Arthur 等人於[9]提出的 K-means++提 出新的選取起始點的方式,該演算法的中心思想為欲使得每個群集的起始點,距 離盡可能的越遠,具體流程為以下5 個步驟:
步驟1:假設將資料劃分成 K 個群集。從原始群集中,隨機挑選一個資料 點作為群集起始點。
步驟2:計算原始群集中,其餘資料點與最近的起始點的距離
D x
。步驟3:選擇一個新的資料點作為新的群集起始點。其中選取原則為
D x
較大的資料點,有較高的機率被選取為群集起始點。
步驟4:重覆步驟 2 及步驟 3 直至選取 K 個起始點。
步驟4:重覆步驟 2 及步驟 3 直至選取 K 個起始點。