專利名稱:一種xml文檔結(jié)構(gòu)概要間的相似性度量方法
技術(shù)領(lǐng)域:
本發(fā)明涉及數(shù)據(jù)挖掘技術(shù)領(lǐng)域,具體涉及ー種適用于對內(nèi)存和時間有較高要求的XML文檔流或集的結(jié)構(gòu)概要間的相似性度量方法。
背景技術(shù):
XML是ー種用于數(shù)據(jù)交換和共享的自描述語言,于1998年2月成為W3C的推薦標(biāo)準(zhǔn)后,得到了廣泛的應(yīng)用。遵循這一標(biāo)準(zhǔn)的Web應(yīng)用和服務(wù),在實時數(shù)據(jù)傳輸及交換過程中將產(chǎn)生隨時間而不斷變化的海量流式XML數(shù)據(jù)。例如醫(yī)療機構(gòu)的各種病歷和檢查數(shù)據(jù),航空機構(gòu)的各種旅客信息,捜索服務(wù)面對的用戶請求,網(wǎng)絡(luò)監(jiān)控需要處理的各種網(wǎng)絡(luò)資源等等。為了有效分析這些數(shù)據(jù),ー個可能的解決辦法就是根據(jù)文檔結(jié)構(gòu),內(nèi)容和語義聚類相似數(shù)據(jù)?,F(xiàn)有的XML數(shù)據(jù)聚類技術(shù)只支持靜態(tài)的XML數(shù)據(jù)集,其核心思想是將XML文檔看作是數(shù)據(jù)點,通過選定的XML文檔相似性度量方法計算出聚類所需的文檔間距離或相異矩陣,利用傳統(tǒng)的聚類技術(shù)如k-meanS或?qū)哟畏绞降韧瓿删垲惾蝿?wù)。聚類中所用XML文檔相似性度量方法是聚類效果的關(guān)鍵?,F(xiàn)有的XML文檔相似性度量方法大致可以分為兩類基于樹編輯距離的方法和基于文檔特征集的方法?;跇渚庉嬀嚯x的方法通常將ー個XML文檔模型化為ー棵樹或ー個圖,兩個XML文檔間的相似度可以用這兩棵樹或圖間的編輯距離來度量。編輯距離的基本思想是將兩棵樹間的距離定義為利用編輯操作,比如刪除、插入、修剪等,將ー棵樹轉(zhuǎn)化為另ー棵樹所需的最小代價。這類方法只考慮了節(jié)點不同,并沒有區(qū)分不同層的節(jié)點對相似性的影響也不一祥?;谖臋n特征集的方法更直接,首先提出各種方式用于表示XML文檔特征然后通過直接計算這些特征間的距離來度量XML文檔間的相似性。具體特征多種多樣,涉及用位圖索引技術(shù)表示XML文檔特征,用向量空間模型VSM表示XML文檔特征,用時間序列表示XML文檔結(jié)構(gòu),用簡化標(biāo)記樹對應(yīng)的層結(jié)構(gòu)LevelStructure表示文檔結(jié)構(gòu)特征等。這類方法主要用于處理靜態(tài)數(shù)據(jù),一般需要多次反復(fù)的文檔讀取和解析,而XML數(shù)據(jù)流的特點是僅允許I次并按照數(shù)據(jù)到達(dá)的順序進(jìn)行存取和解析。最近對XML數(shù)據(jù)的研究也擴展到了 XML數(shù)據(jù)流方面,但是現(xiàn)有技術(shù)對這類數(shù)據(jù)流的處理大多集中于直接查詢領(lǐng)域,例如Christoph Koch和Stefanie Scherzinger介紹了一種用于 XML 流查詢的語言 XML Stream Attribute Grammars (XSAGs), Koch 等人提出了一個優(yōu)化XQuery引擎的FluXQuery引擎,很少涉及更進(jìn)ー步的知識挖掘比如在線分類,在線
聚類等。
發(fā)明內(nèi)容
本發(fā)明的目的是為了從結(jié)構(gòu)角度在線快速聚類XML數(shù)據(jù)流,滿足這類算法對內(nèi)存和時間的較高要求,提供ー種XML文檔的結(jié)構(gòu)概要以及這種結(jié)構(gòu)概要間的相似性度量方法。該算法將XML文檔以SAX格式解析后,借助全局名稱-代碼索引表和進(jìn)行式棧技術(shù)將該文檔形式化成一個可增量表示的概要數(shù)據(jù)結(jié)構(gòu)——元素鏈(NodeList),然后通過ー個自定義公式計算兩元素鏈間的相似性。 本發(fā)明提供的建立XML文檔的結(jié)構(gòu)概要技術(shù),具體步驟如下I)為待處理的XML文檔流(或文檔集)定義全局元素名稱-代碼索引表,并將該表置空。該表中每個節(jié)點包括兩部分內(nèi)容一部分是字符串格式用于存放待處理XML文檔流(或文檔集)包含的相異元素的名稱;另一部分是整數(shù)格式用于存放該元素對應(yīng)的整數(shù)編碼。編碼規(guī)則如下當(dāng)XML文檔以SAX格式解析時,這個整數(shù)表示該元素開始事件在全部相異元素開始事件流(只記錄元素開始事件)中第一次出現(xiàn)的順序。2)依據(jù)SAX格式解析XML文檔,獲取每個元素的開始事件,查找全局元素名稱-代碼索引表,如果元素名稱已在鏈表中,則該元素的編碼就是元素名稱對應(yīng)的整數(shù);如果元素名稱不在鏈表中,則該元素的編碼值等于鏈表中現(xiàn)有最大整數(shù)加一,且該元素名稱和對應(yīng)整數(shù)編碼作為新節(jié)點插入全局元素名稱-代碼索引表。3)基于進(jìn)行式棧技術(shù)獲取特定元素的層值。具體操作如下依據(jù)SAX格式解析XML文檔,文檔開始事件激活ー個空棧結(jié)構(gòu),隨著XML文檔中元素數(shù)據(jù)元組的動態(tài)變化進(jìn)行入棧和出棧操作,即元素開始事件和結(jié)束事件分別對應(yīng)元素入棧和出棧兩種操作,元素的層數(shù)值等同于所在棧的指針標(biāo)記,指針從O開始每次遞增一。4)利用獲取到的相異元素整數(shù)編碼和其對應(yīng)層值創(chuàng)建XML文檔結(jié)構(gòu)概要成為可增量表示的偏序元素鏈。5)元素鏈以元素的編碼整數(shù)為索引,具有可組合性,只是組合結(jié)果要滿足同層同名重復(fù)元素只保留ー個副本。具體組合過程如下給定兩個元素鏈a和b,從鏈表頭部開始比較兩個元素鏈中第一個節(jié)點的編碼,如果a = b,則繼續(xù)比較第一個節(jié)點的層值,如果層值也相等,則將a中第一個節(jié)點插入到結(jié)果元素鏈,否則將a和b中第一個節(jié)點都插入到結(jié)果元素鏈,繼續(xù)比較兩鏈表的下一個節(jié)點;如果第一個節(jié)點編碼比較結(jié)果為a > b,則將b元素鏈中第一個節(jié)點插入到結(jié)果元素鏈,繼續(xù)比較a中第一個節(jié)點和b中下一個節(jié)點;如果第一個節(jié)點編碼比較結(jié)果為a < b,則將a元素鏈中第一個節(jié)點插入到結(jié)果元素鏈,繼續(xù)比較b中第一個節(jié)點和a中下ー個節(jié)點。6)比較兩個偏序元素鏈獲取公有元素及其對應(yīng)層值,比較過程如下給定兩個元素鏈a和b,從鏈表頭部開始比較且節(jié)點是基本的移動單位,如果a中元素編碼小于等于b中元素編碼,則a移動到下一個節(jié)點;否則b移動到下ー個節(jié)點,比較過程繼續(xù)。比較過程中記錄相等元素編碼及其對應(yīng)層值用于計算元素鏈間的相似性。本發(fā)明自定義的加權(quán)公式用于計算兩元素鏈間相似性(NodeSim)
權(quán)利要求
1.一種XML文檔結(jié)構(gòu)概要間的相似性度量方法,其特征在于步驟如下 1)為待處理的XML文檔流或文檔集定義全局元素名稱-代碼索引表,并將該表置空;該表中每個節(jié)點包括兩部分內(nèi)容一部分是字符串格式用于存放待處理XML文檔流或文檔集包含的相異元素的名稱;另一部分是整數(shù)格式用于存放該元素對應(yīng)的整數(shù)編碼;編碼規(guī)則如下當(dāng)XML文檔以SAX格式解析時,這個整數(shù)表示該元素開始事件在全部相異元素開始事件流中第一次出現(xiàn)的順序; 2)依據(jù)SAX格式解析XML文檔,獲取每個元素的開始事件,查找全局元素名稱-代碼索引表,如果元素名稱已在鏈表中,則該元素的編碼就是元素名稱對應(yīng)的整數(shù);如果元素名稱不在鏈表中,則該元素的編碼值等于鏈表中現(xiàn)有最大整數(shù)加一,且該元素名稱和對應(yīng)整數(shù)編碼作為新節(jié)點插入全局元素名稱-代碼索引表; 3)基于進(jìn)行式棧技術(shù)獲取特定元素的層值,具體操作如下依據(jù)SAX格式解析XML文檔,文檔開始事件激活一個空棧結(jié)構(gòu),隨著XML文檔中元素數(shù)據(jù)元組的動態(tài)變化進(jìn)行入棧和出棧操作,即元素開始事件和結(jié)束事件分別對應(yīng)元素入棧和出棧兩種操作,元素的層數(shù)值等同于所在棧的指針標(biāo)記; 4)利用獲取到的相異元素整數(shù)編碼和其層值創(chuàng)建XML文檔結(jié)構(gòu)概要成為可增量表示的偏序元素鏈; 5)元素鏈以元素的編碼整數(shù)為索引,具有可組合性,只是組合結(jié)果要滿足同層同名重復(fù)元素只保留一個副本,具體組合過程如下給定兩個元素鏈a和b,從鏈表頭部開始比較兩個元素鏈中第一個節(jié)點的編碼,如果a = b,則繼續(xù)比較第一個節(jié)點的層值,如果層值也相等,則將a中第一個節(jié)點插入到結(jié)果元素鏈,否則將a和b中第一個節(jié)點都插入到結(jié)果元素鏈,繼續(xù)比較兩鏈表的下一個節(jié)點;如果第一個節(jié)點編碼比較結(jié)果為a > b,則將b元素鏈中第一個節(jié)點插入到結(jié)果元素鏈,繼續(xù)比較a中第一個節(jié)點和b中下一個節(jié)點;如果第一個節(jié)點編碼比較結(jié)果為a < b,則將a元素鏈中第一個節(jié)點插入到結(jié)果元素鏈,繼續(xù)比較b中第一個節(jié)點和a中下一個節(jié)點; 比較兩個偏序元素鏈獲取公有元素及其對應(yīng)層值,比較過程如下給定兩個元素鏈a和b,從鏈表頭部開始比較且節(jié)點是基本的移動單位,如果a中元素編碼小于等于b中元素編碼,則a移動到下一個節(jié)點,否則b移動到下一個節(jié)點,比較過程繼續(xù);比較過程中記錄相等元素編碼及其對應(yīng)層值用于計算元素鏈間的相似性;
全文摘要
本發(fā)明涉及數(shù)據(jù)挖掘技術(shù)領(lǐng)域,具體涉及一種XML文檔結(jié)構(gòu)概要間的相似性度量方法。為了從結(jié)構(gòu)角度在線快速聚類XML數(shù)據(jù)流,滿足這類算法對內(nèi)存和時間的較高要求,提供一種XML文檔的結(jié)構(gòu)概要以及這種結(jié)構(gòu)概要間的相似性度量方法。該算法將XML文檔以SAX格式解析后,借助全局名稱-代碼索引表和進(jìn)行式棧技術(shù)將該文檔形式化成一個可增量表示的概要數(shù)據(jù)結(jié)構(gòu)——元素鏈(NodeList),然后通過一個自定義公式計算兩元素鏈間的相似性。本發(fā)明使用SAX解析XML文檔,并利用了進(jìn)行式棧技術(shù)獲取層值,使得建立結(jié)構(gòu)概要的過程中,內(nèi)存消耗很小。整個內(nèi)存消耗基本花費在保存元素鏈?zhǔn)降木垲惤Y(jié)果和全局名稱-索引表上。
文檔編號G06F17/30GK102622432SQ20121004844
公開日2012年8月1日 申請日期2012年2月27日 優(yōu)先權(quán)日2012年2月27日
發(fā)明者高明霞 申請人:北京工業(yè)大學(xué)