• 沒有找到結果。

第五章 可用性前 k 名擴展查詢字集探勘方法

5.1 UT- TREE 儲存結構

我 們 提 出 的 UT-tree 演 算 法 參 考 論 文 [20] 中 所 提 出 的 TD-FP-Growth

(Top-Down FP-Growth),儲存結構建立的過程主要分成三個部分處理:<1>以r 值 過濾標籤、<2>建立 UT-Tree 樹狀結構、<3> 建立 UT-Tree 中的 Header Table,我 們將在以下三小節中各別說明。

5.1.1 以r 值過濾標籤

根據上述定理,在建立 UT-tree 結構前,本方法會將Oq進行第一次掃描,計

5.1.2 UT-Tree 樹狀結構

UT-tree 樹狀結構如同 FP-tree 為一個 prefix tree,在物件資料中,若包含的標 籤集有相同的 prefix,則會共用樹中節點路徑。UT-tree 的根節點不代表任何一個 標籤,其他每一個節點,則代表從根節點到該節點所經過路徑上的所有標籤所形 成的標籤集。節點中除了儲存記錄標籤資訊及計數值,還記錄包含有該節點對應 標籤集的物件編號,以便在探勘過程形成一個擴展查詢字集QE時,可以快速取 得包含QE之物件中前 r 高的可用性分數,並且算出QE的可用性分數。

此外,建立 UT-tree 前,必須將Oq內的所有物件依照其可用性分數由高至低 排列,每個物件的標籤集中的標籤則先依字元順序由小而大排序。

5.1.3 UT-Tree 之 Header Table

建構 UT-tree 的同時還須建立一個資料標籤項目表 Header Table,將樹狀結構 上具相同標籤的節點以橫向連結的方式串聯起來,可助於探勘走訪 UT-tree 時較 有效率。Header Table 有以下三個欄位:第一個欄位是標籤欄,用來存放物件資 料中的標籤;第二個欄位為計數欄,記錄標籤欄中計數該標籤在 UT-tree 上累計 出現的次數;第三個欄位為節點連結欄,用來存放一個節點指標(pointer),指向 UT-tree 中所有儲存該標籤的節點所形成的串列。

5.1.4 UT-tree 建構方法

綜合以上三小節的處理概念介紹,將Oq中物件之標籤集o.tagset加入 UT-tree 的步驟如下:

步驟<1>: 先針對Oq中的物件根據其可用性分數進行由大而小的排序。同時 計算每一個標籤在Oq的出現次數。

步驟<2>: 對每一個物件o 進行以下處理。 i

<步驟2-1>: 對物件o .tagset 中的標籤 t ,檢查i countq({ })t 是否大於等於 r ,count t( )r則從o .tagset 中篩除。令i { , ,..., }t t1 2 tm 表示步驟 2-1 檢查後o .tagset 留下的標籤, j 設為 1。 i

<步驟2-2>: 當 j =1 從根節點開始,否則從tj1的對應節點開始,搜尋下 一子節點中是否有與標籤tj相同的標籤。若存在相同的標籤,

需將對應節點的計數值加 1 並存入物件標號 .o id ;若此i tj對 應節點尚未存在,則在根節點下建立一個對應此標籤tj的新 子節點,並將節點中的計數值設為 1 且存入物件編號 .o id 。 i

<步驟2-3>: 建立 Header Table。若是 Header Table 不存在標籤tj,則在 Header Table 建立標籤tj對應的標籤欄、計數欄及可用性值 欄,且將該標籤對應到的節點加入到該標籤的連結欄;如果 節點已經存在,在建立樹狀結構同時,則只要更新連結欄的

節點資訊,而計數欄會累加個數,可用性值欄則加總可用性 值高的前 r 個物件。

<步驟2-4>: 若(j m 1)則將 j 設為 j1並重複執行步驟<2-2>到<2-4>,

直到 jm結束。

【範例5-2】

延續【範例 5-1】的處理,建構 UT-tree 樹狀結構,Header Table 會隨著建立

UT-tree 而同時產生,其結果如圖 5.1 所示,Header Table 的欄位標示簡寫如下,T 表示標籤欄;C 表示計數欄;U 表示可用性值欄;L 表示連結欄。其中虛線表示 具相同標籤間的橫向鏈結。

圖 5.1 UT-tree 結構與 Header Table