第三章 從史料中產生職官任職資訊
3.2 以資料探勘識別擔任職官之候選人名
3.2.2 以Twain探勘候選人名及頻繁區間
國
立 政 治 大 學
‧
Na tiona
l Ch engchi University
避免包含到與該事件非相關之多餘字句,另外並考量句子長度之因素,一來擔任職官的 人名不會離職官名稱太遠,再者《清聖祖實錄》裡有些記載事件的句子當中,會沒有註 記上標點符號,因此限制擷取的左、右句子長度不超過十六個字,總句子長度不超過三 十二個字,以減少句子中包含其他非相關事件之內容,維持擷取句子所記載事件為相同 者,且擔任該職官的人名也會被保留下來。所有包含指定職官名稱的句子從史料文本中 擷取完畢之後,接著便針對擷取的每一句子進行 bi-gram 切割,將句子轉變成 bi-gram 集合的形態,可得到一資料庫裡面存放數筆的 bi-gram 集合,最後建置成屬於該職官的 bi-gram 資料庫做為我們探勘的資料來源。
3.2.2 以 Twain 探勘候選人名及頻繁區間
頻繁項目集探勘演算法當中,最為常見的是 R. Agrawal 在 1994 年提出的 Apriori 演算法 [13],傳統 Apriori 處理的資料庫並無時間順序,在支持度計算是以整個資料庫的總資料 數量當作支持度計算之分母,也就是考慮項目集在整體資料庫當中是否為頻繁,但卻忽 略了某些短期間頻繁的項目集。而 J. W. Huang[20]提出的 Twain 演算法法可以解決上述 問題,能夠找出僅在資料庫中某些區間 (Period)為頻繁,但以整個資料庫的角度來看卻 是不夠頻繁的項目集,換句話說,能夠找出短期間頻繁的項目集,同時允許項目集有多 個頻繁區段,也能夠將多個頻繁區段找出,並且處理存在時間順序關係的資料庫。這些 性質適用在本研究欲處理的史料探勘問題上,因此我們採用 J. W. Huang 的 Twain 演算 法在職官資料庫中探勘頻繁的候選人名,兩者主要的作法差異在於支持度計算上。
職官資料庫中記錄了該職官在康熙期間的所有事件,所以擔任該職官的歷屆人名會 各別在某段期間頻繁出現,或者因為曾經調任其他職官之後又回鍋,因此也有可能頻繁 出現在多個區段。上述情況表示那段期間由該人名擔任該職官,但若以整個職官資料庫 的總資料筆數來看,該人名極有可能只在短期內為頻繁,但長期來看卻不夠頻繁,而且 職官資料庫中存在多位擔任過該職官的人名,這些人名可能都只在某幾段為頻繁,探勘
‧ 國
立 政 治 大 學
‧
Na tiona
l Ch engchi University
頻繁項目集時會造成漏網之疑慮,故本研究採用 Twain 演算法探勘區間頻繁項目集的方 式,能夠探勘出在短期區間為頻繁的項目集,也就是擔任該期間的任職官員。
Twain 演算法的基本精神是根據時間單位,例如年、季、月份…等,將資料庫分成 數個分割 (Partition),每個分割由數筆相同時間單位的資料組成,像是同一個星期、月、
季或者年的數筆資料為一個分割,最後藉由分割資料進行區間頻繁項目集之探勘。
演算法的流程步驟是從第一個分割開始探勘,找出符合最小支持度之區間頻繁項目 集,並且延續至下一回合繼續探勘,每回合增加一個分割,下一回合將前一回合符合最 小支持度之項目集與本回合增加之分割的項目集,一同判斷符合最小支持度與否,符合 者繼續延續至下一個回合,若不符合則該項目集便停止在目前分割不再延續至下一回 合,最後終止條件為直到沒有可延續至下一回合之項目集為止。
另外並定義兩種類型的候選項目集,第一型是在上一回合中不為區間頻繁項目集,
在目前回合為頻繁的項目集,第二型是延續上一回合為頻繁的候選項目集,在先前分割 中就已經是頻繁,而且延續至目前回合所新增的分割。這兩類型之候選項目集在支持度 計算上的方式並不同,第一型為最小支持度乘上目前回合分割之交易筆數,第二型為最 小支持度乘上所累積之分割的總交易筆數。
藉由最小支持度和項目集最大共同範圍做為門檻決定區間頻繁項目集是否延續到 下個分割,最大共同範圍 (Maximal common exhibition period, MCP)定義為項目集中所有 項目的共同最晚出現的分割,到共同最早結束的分割,例如項目{A}在資料庫中出現範 圍從分割 2 到分割 4,項目{B}的範圍從分割 1 到分割 3,那麼項目集{A,B}的最大共同 範圍是分割 2 到分割 3。所以在 Twain 中能延續到下個分割必須要超過門檻值,同時項 目集的最大共同範圍要超過目前的分割範圍,代表接下來仍然有頻繁的可能性,再將符 合條件的候選項目集延續至下個分割,否則該項目集的頻繁區間便停止在目前分割。
接著定義開始頻繁時間與結束頻繁時間,以記錄區間頻繁項目集在資料庫中的頻繁 區間,以圖 3.6 的交易資料庫說明 Twain 演算法。圖 3.6 左邊的交易資料庫包含八筆交
‧ 國
立 政 治 大 學
‧
Na tiona
l Ch engchi University
易資料,前四筆與後四筆各別為一月份與二月份的交易資料,例子中以月份為單位將資 料庫切割成 P1 分割與 P2 分割。右邊為探勘的過程與結果,假設最小支持度為 50%做為 門檻值,從 P1 分割開始探勘並得到{A}和{B}為區間頻繁項目集,其中{A}的支持度為 3/4 也就是 75%大於目前的門檻值,因此項目{A}的開始與結束之頻繁時間分別為 P1 和 P1,屬於第一型候選項目集,項目{B}亦然,因此第一回合得到區間頻繁項目集為{A}
和{B};第二回合探勘 P1 分割與 P2 分割之聯集,由於項目{A}在 P1 分割為區間頻繁項 目集且延續至 P2 分割,在此回合屬於第二型候選項目集,所以其支持度為 6/8 也就是 75%大於門檻值,因此項目{A}的結束頻繁時間延續至 P2,反觀項目{B}在此回合的支 持度為 3/8,其 0.375%低於門檻值,因此項目{B}之結束頻繁區間保持在 P1 分割,無法 延續至 P2 分割,而項目{C}和項目{D}為大於門檻值的第一型候選項目集,此回合中得 到區間頻繁項目集為{A}、{C}和{D},最終得到長度為一的區間頻繁項目集以及其頻繁 區間分別如下:{A}[P1,P2]、{B}[P1,P1]、{C}[P2,P2]、{D}[P2,P2]。上述是 Twain 探勘 長度為一的區間頻繁項目集,接著以傳統 Apriori 中 join 的方式產生長度為二的候選項 目集,持續探勘執行直到沒有可延續至下一回合之項目集為止。
‧
‧ 國
立 政 治 大 學
‧
Na tiona
l Ch engchi University
另外針對支持度計算中決定是否延續頻繁區間的判斷,先前 Twain 在候選項目集延 續至下個分割的條件當中,除了最小支持度計算門檻值,有一項是考慮項目集的最大共 同範圍(MCP)是否有超過目前分割,此條件之目的在於即使目前分割為區間頻繁項目 集,若接下來項目集不會再出現,就不需再延續項目集的頻繁區間。然而,本研究中修 改 Twain 演算法,刪去這項判斷條件,不需事先知道各項目集在資料庫中出現的分割範 圍,只需針對最小支持度門檻值判斷候選項目集即可,更重要的是當單一項目出現的分 割範圍是多段區間,例如項目{A}分別出現在分割 1 至分割 2 以及分割 4 至分割 5,假 設項目{B}出現在分割 1 至分割 5,那麼項目集{A,B}的最大共同範圍在定義之下會是分 割 1 至分割 2,在此以最大共同範圍條件探勘項目集{A,B},在處理到分割 3 會因為最 大共同範圍的誤差,導致項目集{A,B}在分割 3 即使為區間頻繁項目集,卻因為最大共 同範圍判斷條件而無法延續頻繁區間,且接下來的分割中便不再考慮項目集{A,B},造 成項目集在頻繁區間判斷有誤。官員人名在史料當中任職也會有此情況,舉例來說,某 甲先擔任 A 職官接著轉任 B 職官,之後又調回 A 職官,在 A 職官資料庫當中某甲出現 的任期範圍會形成兩個區段,因此我們針對 Twain 在候選項目集延續頻繁區間的判斷做 了修正,自動產生職官年表的過程中,只需要針對是否符合最小支持度計算即可,因此 沒有再加上最大共同範圍之限制條件,避免造成職官任職人名的頻繁區間判斷影響。
‧
Partion n = number of total transactions; min_sup;
PS=∅ ; CL= ∅ ;
‧ 國
立 政 治 大 學
‧
Na tiona
l Ch engchi University
值結果做判斷,如此一來確保頻繁區間判斷較為嚴謹,減少頻繁區間判斷範圍過大的機 會。關於本研究的支持度計算方式如圖 3.7 演算法所示,其中 PS 代表有出現在上個分 割的候選項目集,CL 代表延續至下個分割的候選項目集。
關於候選項目集產生的方式,我們主要以 Apriori 的 join 方法並且從中做些調整來 產生候選項目集,以 Ck表示長度為 k 的候選項目集,作法上一樣將 Ck和 Ck進行 join 產生 Ck+1,但是在 join 過程中另外加入 bi-gram 名詞是否有字元重疊 (string overlap)以 及頻繁區間重疊 (frequent period overlap)的判斷。字元重疊定義為第一個項目最後一字 元和第二個項目最前一個字元相同,則稱之為字元重疊,而頻繁區間重疊是兩個項目的 頻繁區間必須要有重疊的情況,換句話說,bi-gram 要曾經一起出現在同一句子中才能 夠進行 join。除此之外,項目每次在 join 時皆要與其他每個項目進行 join,同時兩者頻 繁區段也要有重疊的 join 條件,代表同樣在某區間頻繁。經由此方式產生 Ck+1的候選項 目集之名詞才是正確的候選人名。
舉例來說,假設項目名稱以及其項目編號如下所示,將軍:1、綏遠:2、遠將:3,
C1={1,2,3},產生 C2的時依序 join 得到{1,2}、{1,3}、{2,1}、{2,3}、{3,1}、{3,2}這六組 候選項目集,經由字元重疊判斷後只剩下{2,3}與{3,1},前後項目集分別在“遠”與
“將”有字元重疊,透過此判斷條件才能夠組出有義意的候選名詞,得到“綏遠將”和
“遠將軍”,接著從 C2={{2,3},{3,1}}產生 C3時,若不與其他每個項目進行 join,則會 發生無法產生 C3的情況,原因在於項目集{2,3}無法和編號較小的{1}進行 join,而{3,1}
也不能夠與沒有字元重疊的{2}進行 join,但事實上應該要再產生 C3={{1,2,3}},因此與
也不能夠與沒有字元重疊的{2}進行 join,但事實上應該要再產生 C3={{1,2,3}},因此與