999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于TreeMiner算法的XML文檔結構相似度量方法

2009-01-01 00:00:00閻紅燦王淑芬朱曉亮李敏強劉保相
計算機應用研究 2009年5期

(1.天津大學 管理學院 天津 300072; 2.河北理工大學 a.理學院; b.計算中心 河北 唐山 063009)

摘 要:提出了一種基于TreeMiner算法挖掘頻繁子樹的文檔結構相似度量方法,解決了傳統的距離編輯法計算代價高而路徑匹配法無法處理重復標簽的問題。該方法架構了一個新的檢索模型—頻繁結構向量模型,給出了文檔的結構向量表示和權重函數,構造了XML文檔結構相似度量計算公式;同時從數據結構和挖掘程序上對TreeMiner 算法進行了改進,使其更適合大文檔數據集的結構挖掘。實驗結果表明,該方法具有很高的計算精度和準確率。

關鍵詞:頻繁結構向量模型; 嵌入子樹; 頻繁子樹; 結構挖掘

中圖分類號:TP311文獻標志碼:A

文章編號:1001-3695(2009)05-1706-04

Method of similarity measures for XML documents structure

based on TreeMiner algorithm

YAN Hongcan1,2a WANG Shufen2b ZHU Xiaoliang2b LI Minqiang1 LIU Baoxiang2a

(1.School of Management Tianjin University Tianjin 300072 China; 2. a.College of Sciences b.Computing Center Hebei Polytechnic University Tangshan Hebei 063009 China)

Abstract:This paper proposed a novel way of similarity measures for XML documents structure based on TreeMiner algorithm and resolved the high costs in distance editing and the problems of repetiition of labels in path matching designed. In this way a new research model:frequent structure vector model (FSVM) derived the expression of document structure vector and weight function and constructed the calculate formula to measure similarity of the two documents. In order to improve the efficiency of mining frequency subtrees in a forest reformed the algorithm TreeMiner from data structure and miner procedure to fit to minning structure in large documents.The testing results show that this method acquires very high precision and veracity.

Key words:frequent structure vector model; embedded subtree; frequency subtree; structure miner

0 引言

由于具有結構化、可擴展性、跨平臺性等特點,越來越多的數據標準采用XML,如MathML、NewsML、OWL、LOGML、ebXML、cnXML等。XML成為信息存儲與交換的主要形式,繼而從XML文檔結構中獲取所需的模式成為XML應用領域的研究熱點,如對XML文檔結構挖掘可以為生物信息學、網絡日志分析、Web結構分析和分類等提供重要知識。其中XML文檔的結構相似度量是XML結構分析的基礎核心問題。已有的XML文檔結構相似性度量主要包括距離編輯法[1~3]、路徑匹配法[4]和時序分析法[5],基本上都將XML文檔視為一棵標記樹,編輯距離的思想是將一個文檔轉換為另一個文檔所需操作(更名、刪除、插入)的最小代價作為度量標準,通過圖匹配算法計算相似性。當文檔很大時,計算代價太高;而路徑匹配法基于邊匹配,采用Jaccard系數來度量,但度量相似性的精度不高;時序分析法將XML文檔結構表示為一個時間序列,每個標簽的出現相應于一個脈沖,通過相應傅里葉變換來計算文檔間的相似性,但是這種方法無法排除標簽的多次重復出現對計算結構相似度的影響。

文獻[6,7]提出了一種高效挖掘頻繁子樹的迭代算法TreeMiner,能夠在用戶給定的最小支持度閾值內找出所有的頻繁子樹;文獻[8]給出了一種挖掘無序頻繁子樹的高效算法。本文在此算法基礎上結合文本分類的向量空間模型(vector space model)提出了XML文檔頻繁結構向量模型,通過頻繁結構單元在文檔中出現的頻度和權重定義了文檔結構相似度,同時對TreeMiner算法在兩個方面進行了改進:a)頻繁節點的數據結構增加了層次信息編碼,有利于范圍列表連接時快速判斷其祖先—后代關系,只有(y)中節點是(x)節點的后代節點時才有可能進行內聯和外聯的測試,這樣排除了大量冗余運算,提高了算法性能;b)本著“先預算支持度,后進行類擴展”的思想,將類擴展的節點連接和頻繁子樹支持度的范圍列表連接運算順序重新作了調整,這樣對不存在的子樹或者不頻繁的子樹不再進行類擴展運算,大大提高了挖掘效率。

實驗表明,TreeMiner+算法在時間復雜性上優于TreeMiner算法,特別是隨著支持度的增加性能優勢明顯提高,更適用于大文檔數據集。頻繁結構向量模型在度量XML文檔結構相似性方面具有很高的精確性,并且計算代價更小。

1 頻繁結構向量模型

文獻[9,10]均采用了向量空間模型來表示XML文檔,特別是文獻[9]提出結構鏈接向量模型,將XML文檔中的每個結構單元看做是一個向量,類似于VSM模型的一個文檔,但沒有就如何選擇結構單元給出具體方法,只簡單將每個節點作為基本結構單元,不能完備表示XML文檔結構信息。本文將給出頻繁結構向量模型FSVM的表示及XML文檔結構相似性度量方法,并對結構向量空間中的結構單元—頻繁子樹的挖掘給出高效算法。

1.1 頻繁子樹的相關概念

將每個XML文檔看做一棵帶有標簽的有序樹T=(r,V,B,L)。其中:r表示根節點;V表示樹中節點集合;B表示邊的集合;L表示所有節點標簽的集合。那么XML文檔集合D(又稱數據庫)視為有序樹的集合,D={t0,t1,t2,…},稱為文檔森林,每棵樹有惟一的標志tid tid∈{0,1,2,…},分別表示樹t0,t1,t2,…。

定義1 有序樹(ordered tree)。XML文檔有序樹T=(r,V,B,L)中 V={n0,n1,n2,…,n|T|-1},nid∈{0,1,2,…},按照深度優先根序列編號,|T|表示樹T的大小,即節點個數。節點不區分元素和屬性,均采用圓圈表示,每個節點的標簽用集合L={1,2,3,…,m}表示,不同的節點可以有相同的標簽。每個邊b=〈x,y〉∈B,是一個有序節點對。其中x是y的父節點。圖1即為一棵有序樹。圖中r=n0,V={n0,n1,n2,n3,n4,n5,n6},B={〈n0,n1〉,〈n1,n2〉,〈n2,n3〉,〈n2,n4〉,〈n1,n5〉,〈n0,n6〉},L={1,2,3,4}。

定義2 樹的拓撲編碼表示(topology encoding)。按照先根深度優先遍歷樹中所有節點的標簽序列稱為樹的拓撲編碼表示,用-1表示從一個節點回溯到父節點的序列,圖1所示有序樹的拓撲編碼為“1131121141121”。

定義3 三元組編碼(triple encoding)。有序樹中每個節點采用三元組(tid,scope,high)編碼。其中:tid∈D;scope為節點的轄區范圍,定義為[l,u]區間形式 l為拓撲編碼中本節點編號,u為右子樹最后節點的nid;high表示每個節點在樹中的層次。圖1是樹T中節點編碼的實例,如根節點n0的nid值為0,右子樹最后節點的nid值為6,所以scope為s=[0,6],根節點的high=0,其三元組編碼為(tid,[0,6],0)。

定義4 嵌入子樹(embedded subtree)。樹S=(rs,Vs,Bs,Ls)和T=(rt,Vt,St,Lt),如果同時滿足以下條件:a)LsLt;b)對于任意邊b=(x,y)∈Bs,在T中當且僅當x是y的祖先,即存在從x到y的路徑,稱為分支。稱S為T的嵌入子樹,用S≤T表示。圖2中,S1、S2均為樹T的嵌入子樹。這里需要強調的是在樹T中x不一定是y的父節點,只要是祖先節點即可,這是與傳統子樹定義的區別,正是這一點,保證了在大型文檔樹中挖掘頻繁子樹的完備性。

定義5 子樹的支持度(support of subtree)。嵌入子樹S在樹T中出現的次數,稱為樹T對子樹S的支持度,以δT(S1)表示,如δT(S1)=4,δT(S2)=1。

數據庫D對子樹S的支持度定義為

定義6 頻繁子樹(frequent subtree)。如果數據庫D對嵌入子樹S的支持度π(D,S)大于或等于用戶給定的最小閾值minsup,則稱子樹S為頻繁子樹。

π(D,S)=∑T∈DdT(S)/|D|

dT(S)=1 當δT(S)>00 當δT(S)=0

其中:|D|表示數據庫中有序樹的總數。

定義7 匹配標簽(match labels)。頻繁子樹S中所有節點對應樹T相應節點的標簽序列稱為S的匹配標簽。更一般的定義:設D為文檔集合對應的森林,{n1,n2,…,nn}是T中的節點,T∈D,{s1,s2,…,sm}是T的頻繁子樹S的節點集合,則S的匹配標簽為(ni1,ni2,…,nim)。其中:

L(Sk)=L(nik),k=1,2,…,m;對于S中每個邊(Sj,Sk),對應樹T中的分支(nij,nik)。如圖2中S1和S2的match labels。

1.2 XML文檔的結構向量表示

向量空間模型以特征詞構造一個高維空間,每個詞語為該空間的一個維,文檔被看做是這個空間的一個向量,dx=(dw1,dw2,…,dwn)T。其中n是文檔集合中不同詞語的個數。TFIDF(term frequency inverse document frequency)是向量空間模型中一種常用的文檔向量化方法,它綜合考慮了詞語在單個文檔中出現的頻度和該詞語在文檔集合中出現的頻度。 dwi=TF(wi,dx)×IDF(wi)。其中:TF(wi,dx)是詞wi在文檔dx中出現的次數;IDF(wi)=log(|D|/|DF(wi)),|D|是文檔集合中文檔總數,DF(wi)是包含詞語wi的文檔個數;IDF(wi)是詞語wi的全局特性,用來體現詞語wi區分文檔的能力。

向量空間模型能夠有效描述文檔內容,但不能體現文檔的結構信息,而XML文檔中含有豐富的結構信息,這些信息就蘊藏在文檔樹的頻繁子集中。基于此,筆者對傳統向量空間模型進行了演變,以文檔集的所有頻繁子樹構造一個結構特征空間,每個頻繁子樹為該空間的一個維,文檔(樹)dt被看做是這個結構空間的一個向量,dt=(ds1,ds2,…,dsn)T。其中:si是文檔集合中不同的頻繁子樹;dsi表示頻繁結構si在文檔樹dt中的權重,dsi=TF(si,dt)×IDF(si)。其中:TF(si,dt)=δt(si)×B(si),B(si)為頻繁子樹si的邊數;IDF(si)是結構si的全局特性,數值越小,說明該結構在文檔樹集合中的區分能力越強,定義為log(|D|/|DF(si)) DF(si)是含有子樹si結構的樹的個數,為了使每個頻繁結構有作用,修訂為log(|D|/|DF(si)+0.5)。這樣得到每個頻繁子樹的權重函數為

dsi=δt(si)×B(si)×log(|D|/|DF(si)+0.5)(1)

1.3 文檔相似性度量

與VSM模型類似,在FSVM模型中,同樣采用頻繁結構向量夾角的余弦來度量文檔結構的相似性:

sim(Tx,Ty)=cos(TX,Ty)=

∑ni=1(dx(si)×dy(si))/∑ni=1dx2(si)×∑ni=1dy2(si)(2)

其中:Tx、Ty表示兩個文檔樹;dx(si)和dy(si)分別表示頻繁結構si在文檔樹Tx、Ty中的權重。從式(2)可以看出,計算未知文檔與已知文檔集合中某個文檔的相似度問題可歸結為以下步驟:

a)在文檔集合中挖掘所有頻繁子樹;

b)對拓撲編碼表示的頻繁子樹排序,應用式(1)計算權重,構造結構特征空間;

c)計算未知文檔在結構特征空間的向量表示;

d)應用式(2)計算文檔結構相似性。

未知文檔與某個文檔的相似度越大,按結構分類分在同一類的可能性越大;反之可能性越小。這里的關鍵是a)b)。下面解決如何挖掘頻繁子樹問題。

2 頻繁子樹的挖掘算法TreeMiner+

挖掘頻繁子樹的算法是基于最右擴展遞增模式的,基本思路是:首先獲得1subtrees,即含有一個節點的子樹,通過計算每個標簽的支持度,選出候選頻繁節點;然后通過共享前綴的類節點右擴展生成2subtrees,通過類節點的范圍列表連接計算子樹支持度從而選擇候選類,為下一層的類擴展作數據輸入。依次遞歸由k頻繁子樹生成(k+1)頻繁子樹,直至產生所有頻繁子樹。

2.1 頻繁子樹擴展的相關技術及算法

由k頻繁子樹生成(k+1)頻繁子樹時,首先需要確定擴展類,即候選擴展節點集合。假定P指向k頻繁子樹前k-1個節點的前綴編碼(prefix),以[P]k表示其類節點集合。其中每個元素形如(x,i)形式,x表示擴展節點的標簽,i表示擴展節點的擴展位置。

性質1 類擴展(class extension)。(x,i)和(y,j)為[P]k類集合中的任意兩個節點元素,Px表示(x,i)的擴展類,兩個節點的連接運算定義為xy,運算具有以下性質:

a)當i=j時,如果前綴P不為空,在[Px]中添加節點(y,j)和(y,j+1),如果為空,只添加(y,j+1);

b)當i>j時,在[Px]中添加節點(y,j);

c)當i<j時,不作任何操作。

性質2 范圍列表連接(scopelist join)。[Px]類集合中每個元素都有自己的范圍列表,以(x)表示,集合中每個元素以三元組編碼,范圍列表的連接運算定義為(x)∩ (y),具有以下性質:

a)如果ty=tx=tid,則兩個節點x、y是在同一文檔樹T中;

b)如果high(x)≥high(y),則在樹T中x不是y的祖先節點;

c)如果lx≤ly且ux≥uy,即scope(y),scope(x),說明在樹T中y是x的后代節點,此時進行內部連接(inscope link)。在[Px]類擴展節點的范圍列表中添加節點(ty,{matchlabels lx},scope(y))(此時范圍列表與頻繁節點的范圍列表有些區別,沒有了層次信息,添加了匹配標簽)。

d)如果ux≤ly 即scope(y)<scope(x),說明在樹T中y是x的兄弟節點,此時進行外部連接(outscope link)。在[Px]類擴展節點的范圍列表中添加節點(ty,{match labels lx} ,scope(y))。

改進的TreeMiner算法

TreeMiner+(D minsup)

Input: triple code set D of document trees minimum support of frequent subtree

Output: prefix encoding of all frequent subtrees S and δT(S)

compute support of each label choose frequent labeled nodes F1; 

built candidate class extension set P0={(F1,-1)};

prefix[P0]={};encoding[P0,k]= (F1,-1);

for each element of [P0] do Enumerate-subtrees([P0]); 

Enumerate-subtrees([P])

{ For each element (x,i)∈[P] do

{ [Px]=; 

for each element (y,j)∈P do

if high(x)>high(y) then

{(S)=(x)∩ (y);

if S is frequent then

{ R=(x,i)(y,j)

[Px]= [Px]∪ {R};

k+=1;

build prefix[Px] and encoding[Px,k];

}

}

enumerate-subtrees([Px]);

}

}

2.2 TreeMiner+算法處理實例

圖3所示數據庫D有三個文檔,minsup=70%,挖掘頻繁子樹過程如下:

a)通過掃描數據庫(遍歷文檔樹)得到每個節點的三元編碼,具有相同標簽的節點構成鄰接表,稱為范圍列表(scopelist),采用圖3(b)的數據結構進行存儲,L={1,2,3,4,5}。通過范圍列表很容易計算出節點標簽1、2、3、4 的支持度均為100%,為頻繁節點,標簽5節點的支持度只有1/3,不是頻繁節點(對應算法的1~3行)。

b)遞歸調用enumeratesubtrees()過程,由ksubtrees構造(k+1)subtrees。以2subtrees為例,P0中四個節點任意兩個節點都有可能進行連接,構成含有兩個節點的子樹,所以算法中(第6、8行)對任意兩對元素都要枚舉,包括自身之間。但并不是任意兩個元素都能構成子樹,如(1,-1)和(4,-1)可以構成2subtrees;反之則不能構成2subtrees,因為標簽1是4的祖先節點。為了減少范圍列表的連接次數,算法通過節點的層次關系直接判斷出子樹的可能性(第9行),只有可能構成子樹的節點才進行連接,排除了冗余計算;同時對構成的子樹只有頻繁子樹才是所需結構,所以當11行條件滿足時才進行類擴展,通過這兩個條件的限制,大大減少了算法的時間開銷。見圖4中的2subtrees構造過程。

c)對每個頻繁子樹處理并存儲其前綴編碼prefix和拓撲編碼 encoding(第14、15行)。圖4給出了數據庫D的全部頻繁子樹的挖掘過程。按照節點數和支持度大小順序依次為

S1:12-134-1-1,S2:12-14-1,S3:12-13-1,S4:134-1-1,S5:12-1,S6:14-1,S7:13-1,S8:34-1

3 文檔結構的相似度計算處理實例

假定圖3數據庫D為已知文檔集合,圖1為未知文檔樹,頻繁子樹的頻度δt(si)如表1所示。

根據式(1)計算每個頻繁結構的權重如表2所示。

根據式(2)計算任意兩個文檔之間的相似度為

sim(t0,t1)= 0.322 521sim(t0,t2)= 0.985 432,

sim(t1,t2)= 0.328 011 sim(t,t0)= 0.549 918

sim(t,t1)= 0.446 359,sim(t,t2)= 0.574 932

數據結果表明,基于頻繁結構向量模型的XML文檔相似度量方法有很高的計算精度。下面的實驗通過大量數據集也證明了這一點。

表2 頻繁子樹在FSVM中的向量表示

權重S1S2S3S4S5S6S7S8

t00.903 10.352 20.602 10.602 10.176 10.176 10.176 10.176 1

t10.000 00.352 20.000 00.000 00.176 10.176 10.000 00.000 0

t22.709 31.056 51.806 21.204 10.528 30.352 20.528 30.176 1

t0.000 00.352 21.204 10.000 00.528 30.352 20.352 20.000 0

4 實驗

4.1 數據集與實驗設計

實驗使用AMD雙核Athlon 4000+ 2.10 GHz CPU,1 GM內存的個人計算機,所用操作系統為Windows 2000 server,所有算法均使用Java語言實現,所用JDK為Java 2 Platform Standard Edition 5.0標準版。

實驗數據采用ACMSIGMOD[11]數據集中的OrdinaryIssuePage 和IndexTermsPageXML文件,數據子集使用情況見表3。1999年的OrdinaryIssuePage和2002年的OrdinaryIssuePage文檔結構十分相近,文檔數量中的第一個數字作為頻繁子樹挖掘訓練使用,后一個數字作為相似度量測試使用。同一類中測試文檔與訓練文檔的相似度大于99%,認為結構相同。對三個數據集內部和相互之間分別作測試,ACMSIGMOD1和ACMSIGMOD2的結構相似度人工標定為0.85以上,IndexTermsPage和OrdinaryIssuePage文檔相似度人工標注為0.3,如果測試結果在此范圍內,說明測試準確,實驗結果的準確率(precision)采用式(3)進行評價。 

P=(相似度準確的文檔數)/(測試文檔總數) (3)

表3 實驗中使用的數據子集

datasetssourcestotal num of

ACMSIGMOD1OrdinaryIssuePage(1999)40+10

ACMSIGMOD2OrdinaryIssuePage(2002)20+10

ACMSIGMOD3IndexTermsPage(1999)40+20

實驗訓練階段,每個子數據集內部頻繁子樹挖掘時最小支持度minsup取值范圍1~0.5,結果如圖5所示;三個數據子集合并為一個數據庫進行挖掘時,minsup取0.7~0.1,并與TreeMiner算法進行了性能比較,結果如圖6所示。

4.2 實驗結果分析

圖5顯示了不同的數據集在不同支持度下文檔相似度計算的準確度。實驗表明,基于頻繁結構向量模型的XML文檔結構相似度量方法準確性很高,基本可以達到96%以上,而且頻繁子樹的最小支持度越低,頻繁結構越多,計算精度越準確。一般情況下,minsup閾值為0.7即可達到要求。圖5中三個數據集分別測試準確率較高,三個數據集混合測試準確率偏低的原因是數據結構偏差較大,此時需降低最小支持度minsup,以求得高準確率。

圖6顯示了改進的TreeMiner+算法和TreeMiner算法在挖掘頻繁子樹的時間開銷。圖示表明,支持度越高,優勢越明顯,在minsup閾值為0.7以上時,性能可以提高近三倍;特別是訓練文檔越多,優勢更為明顯.

主站蜘蛛池模板: 国产一区三区二区中文在线| 99久久精品美女高潮喷水| 青青久久91| 国产一级妓女av网站| A级全黄试看30分钟小视频| 无码免费视频| 久久这里只有精品66| 久久精品娱乐亚洲领先| 中国成人在线视频| 极品私人尤物在线精品首页| 精品视频一区在线观看| 美女无遮挡免费网站| 六月婷婷综合| 精品国产乱码久久久久久一区二区| 免费99精品国产自在现线| 国内精自线i品一区202| 国产探花在线视频| 啊嗯不日本网站| 草逼视频国产| 污污网站在线观看| 中文字幕 日韩 欧美| 亚洲午夜福利精品无码不卡| 中文一级毛片| 波多野结衣一级毛片| 国产女人18毛片水真多1| 青青青草国产| 精品国产网| 亚洲伊人电影| 在线观看免费国产| 亚洲一区网站| 免费人欧美成又黄又爽的视频| 大陆国产精品视频| 欧美日韩激情| 亚洲天堂日韩在线| 国产精品自在在线午夜| 精品91视频| 久久久91人妻无码精品蜜桃HD| 2021国产精品自拍| 91九色最新地址| 日韩免费视频播播| 国产产在线精品亚洲aavv| 午夜无码一区二区三区在线app| 国产福利影院在线观看| a毛片免费在线观看| 国内精品自在自线视频香蕉| 免费激情网站| 午夜老司机永久免费看片| 亚洲大尺码专区影院| 亚洲性日韩精品一区二区| 国产区在线看| 青青草国产在线视频| 国产成人精品一区二区免费看京| 国产日韩丝袜一二三区| 久久久久久国产精品mv| 欧美激情首页| 午夜a视频| 国产资源免费观看| 中文字幕在线观| 欧美不卡视频一区发布| 欧美午夜视频在线| 欧美五月婷婷| 国产精品视频猛进猛出| 色香蕉网站| 伊人久久精品无码麻豆精品 | 亚洲无线视频| 日韩一级毛一欧美一国产| 成人在线第一页| 国产精品视频系列专区| 日本三级欧美三级| 国产综合精品一区二区| 亚洲婷婷六月| 国产精品专区第一页在线观看| 在线不卡免费视频| 国产欧美综合在线观看第七页| 91蝌蚪视频在线观看| 久久久91人妻无码精品蜜桃HD| 日本草草视频在线观看| A级全黄试看30分钟小视频| 亚洲欧美日韩另类在线一| 亚洲毛片网站| 亚洲最新地址| 亚洲精品国产成人7777|