第五章 索引結構之建立與搜尋方法
5.2 物件標籤集索引結構
5.2.2 物件標籤集索引結構之建立
本小節將介紹物件標籤集索引結構之建立方法。圖 5.1 所示為本論文建立索 引結構之流程圖:首先,我們將依圖 5.1 建立第一層索引結構;接下來,依序檢查
第一層各群集所包含標籤集合,若群集的標籤集合數目超過門檻值
Cluster size
則對此群集中的標籤集合進行第二層索引結構的建立。
33
圖 5.1 建立索引結構之流程圖
以下依序介紹建立索引結構所使用的相關符號、第一層索引結構建立方法及 第二層索引結構建立方法:
索引結構的建立採用群集概念組成,相關符號定義如下:
1. D(DataSet):建立索引結構之資料集。
2. t(tagset):t
D,資料集中的一筆標籤資料集合。3. 每一個群集 C 會記錄下列資訊:
3.1 群集內各標籤集合的聯集(C CO )及交集( . . C CI )。
3.2 群集內各標籤集合及其物件編號,將群集內所有標籤集合的集合令為
.
C tags
。3.3 若此群集中有建立第二層索引結構則記錄其子群集( .C subclusters )
4. R(Index Structure):記錄所建立的索引結構,即各群集編號及其資訊。
34
<1>. 第一層索引結構建立方式
第一層索引結構建立方法如演算法 3,分成以下步驟:
步驟<1>: 逐一對物件
o
之標籤集合 . o tagset 進行新增,決定應該放置在那一個群 集中。針對所有已存在的群集,逐一進行檢查(Line 9)此標籤集合 o tagset 該擺放在哪一個群集中。我們要求在加入此標籤集合後,群集. 內聯集和交集的差集大小(C
o C
i )必頇小於MaxD
值且|C |i 必頇大於 或等於 1(Line 11),也就是群集內的物件至少要有一個共同的標籤。若 有多個群集皆滿足所設定的條件,則選擇差集大小最小者加入。步驟<2>: 若有適合擺放的群集則更新此群集的聯集和交集(Line 18),若加入的群 集 為
C
k, 則 群 集 的 聯集則 為C COk.
(CO
o tagset. ) , 而 交 集 則 是. ( . )
C CIk
CI
o t ags et。若沒有適合加入的群集,則另建一個新的群 CNEW加入 . tagseto (Line 23),而此新群集之聯集則為CNEW.CO
o. tagset, 而交集是CNEW.CI
o. tagset。步驟<3>: 輸出索引結構。
35
36
<2>. 第二層索引結構建立方法
為避免群集的標籤集合數量過多,故進行第二層索引結構之建立,本論文使
用一個門檻值進行設定,若群集標籤集合數目大於門檻值
Cluster size
則進行第二層索引結構的建立。
第二層索引的建立方法概念類似演算法 3,對第一層索引結構中各群集檢查
所屬標籤集合數量(Line 3),若此群集標籤集合數量大於
則對此群集中各標籤集合,再建立第二層索引結構。
以下簡述第二層索引結構之建立步驟,詳細演算法如演算法 4:
步驟<1>: 已知群集Ck內有共同包含的標籤,故建立索引的門檻值必頇跟著群集
Ck的交集個數(|C CI )進行調整(Line 4),調整算式如下算式十,也必k. |
頇對群集Ck中的各標籤集合扣除掉Ck的交集(Line 6) 並將調整後的標
籤集合加入C Dk. 中(Line 7)。
. ' .
k k
C
C CI (算式十)步驟<2>: 將經調整過的群集Ck中各標籤集合的集合C Dk. 及門檻值Ck. '
帶入演 算法 3 (Line 8)。步驟<3>: 更新群集第一層群集Ck的子群集(Line 9)。
步驟<4>: 輸出索引結構
37
Algorithm 4
2
nd LV
Index ConstructionInput: Index Structure R , MaxD
,Threshold
. 1: BEGIN2: FOR EACH Cluster C in k
R
3: IF(C .size() >k
)4: SET Ck. '
|C CIk. |5: FOR EACH tagset o. tagset in Ck.tags 6: SET . o tagset'
o tagset C CI.
k. ; 7: C D ADD o tagsetk. . ( . ');8: C subclustersk.
executeAlgorithm 3(Ck. , C . )D k
' 9: UPDATE C subclusters in k.R
;10: Output Index structure
R
; 11: END演算法 4 建立第二層索引結構之演算法
[範例5-1]
以表 5.1 為範例標籤資源資料庫,給定門檻值MaxD
=4 及Object size
=3。
38
表 5.1 範例標籤資源資料庫 TDB
標籤集合編號 標籤集合內容 標籤集合編號 標籤集合內容
T1 {A, B} T5 {C, D, E}
T2 {A, C} T6 {B, E}
T3 {A, B, C, D} T7 {C, D, E, F}
T4 {A, B, C, E} T8 {C, F}
依演算法 3 的處理步驟逐一新增物件 T1 至 T8 於索引結構中,建構完成的 第一層索引結構如圖 5. 2 所示:
圖 5. 2 範例資料庫 TDB 之第一層索引結構
檢查已建立之第一層索引結構中各群集標籤集合個數,若大於門檻值
Object size
,則建立第二層索引結構。本範例中將對群集C1、C2進行標籤集合 內容及門檻值的調整並建立第二層索引結構,如演算法 4 之處理步驟。建構完成39
之完整索引結構如圖 5. 3 所示:
圖 5. 3 範例資料庫 TDB 之完整索引結構