專(zhuān)利名稱(chēng):一種計(jì)算xml文檔相似度的方法
一種計(jì)算XML文檔相似度的方法
技術(shù)領(lǐng)域:
本發(fā)明屬于數(shù)據(jù)庫(kù)技術(shù)領(lǐng)域,具體涉及一種計(jì)算XML文檔相似度的方法。背景技術(shù):
可擴(kuò)展標(biāo)記語(yǔ)言XML已成為Web上表示和交換數(shù)據(jù)的標(biāo)準(zhǔn)格式。隨著XML相關(guān)標(biāo) 準(zhǔn)的推廣和應(yīng)用,各行各業(yè)都以XML作為元語(yǔ)言,制定各自領(lǐng)域特定的子語(yǔ)言,用于存儲(chǔ)和 共享本領(lǐng)域所涉及的數(shù)據(jù)。在這種背景下,各個(gè)領(lǐng)域都會(huì)不斷涌現(xiàn)出大量的XML文檔。如 何從大量文檔中挖掘知識(shí)成為了當(dāng)前急需解決的問(wèn)題。XML數(shù)據(jù)挖掘是知識(shí)發(fā)現(xiàn)技術(shù)里一 個(gè)重要的應(yīng)用,而相似度計(jì)算在XML數(shù)據(jù)挖掘中起基礎(chǔ)性的作用。XML文檔挖掘分為內(nèi)容挖掘和結(jié)構(gòu)挖掘,它可以用于XML數(shù)據(jù)的提取、整合以及其 他一些應(yīng)用。XML文檔是半結(jié)構(gòu)化數(shù)據(jù),因而結(jié)構(gòu)挖掘尤為重要。分類(lèi)、聚類(lèi)是數(shù)據(jù)挖掘普 遍采用的方法,而XML文檔相似度是分類(lèi)、聚類(lèi)的基礎(chǔ),是影響挖掘結(jié)果的一個(gè)重要因素。目前XML文檔相似度計(jì)算主要有兩類(lèi)方法,基于樹(shù)編輯距離的方法和基于頻繁路 徑的方法。其中基于樹(shù)編輯距離的方法得到了普遍應(yīng)用,它首先把一篇XML文檔表示為一 棵有序標(biāo)簽樹(shù),例如DOM樹(shù)。進(jìn)而通過(guò)樹(shù)編輯距離來(lái)衡量XML文檔樹(shù)的相似度?;跇?shù)編 輯距離有三種經(jīng)典算法SelkoW、Chawathe和Dalamagas,但樹(shù)編輯距離算法時(shí)間復(fù)雜度普 遍較高。基于頻繁路徑的方法可以快速計(jì)算文檔相似度,但丟失所有的非頻繁路徑,從而丟 失大量的結(jié)構(gòu)信息,正確率相對(duì)較低。
發(fā)明內(nèi)容本發(fā)明的目的是彌補(bǔ)現(xiàn)有技術(shù)存在的上述不足,提出一種新的計(jì)算XML文檔相似 度的方法。該方法使用BPC模型提取出XML文檔的結(jié)構(gòu)信息,引入各種權(quán)重體現(xiàn)結(jié)構(gòu)層次, 基于N-Gram劃分方式,通過(guò)一次掃描降低了 XML文檔相似性計(jì)算的時(shí)間復(fù)雜度。本發(fā)明提供的計(jì)算XML文檔相似度的方法包括如下步驟步驟1、將XML文檔定義為一棵XML文檔樹(shù);步驟2、建立雙向路徑約束(Bidirectional path constraints, BPC)模型在步 驟1文檔樹(shù)的基礎(chǔ)上定義節(jié)點(diǎn)的BPC,一篇XML文檔包含的所有節(jié)點(diǎn)的BPC集合稱(chēng)為雙向路 徑約束模型;步驟3、使用基于N-Gram的劃分方式計(jì)算兩個(gè)祖先路徑約束(或孩子路徑約束) 之間的相似度,統(tǒng)稱(chēng)為路徑約束相似度;步驟4、根據(jù)步驟3得出的路徑約束相似度計(jì)算兩個(gè)節(jié)點(diǎn)的BPC相似度,進(jìn)而把這 個(gè)BPC相似度作為這兩個(gè)節(jié)點(diǎn)的相似度;步驟5、最后文檔中所有節(jié)點(diǎn)相似度按照節(jié)點(diǎn)的結(jié)構(gòu)層次加權(quán)求和作為兩篇文檔 的相似度。本發(fā)明的具體計(jì)算過(guò)程如下1.XML 文檔樹(shù)
將XML文檔定義為一棵XML文檔樹(shù),具體如下定義1. XML文檔樹(shù)將一棵XML文檔樹(shù)表示為一個(gè)6元組T = (V,v0,E, E,P,lab), 其中1)、V是文檔樹(shù)中所有節(jié)點(diǎn)的集合;2)、V(1是文檔樹(shù)的根節(jié)點(diǎn);3)、Ea定義了父子約束集合,Ea = {(u,v) | u G V八v G V,并且u是v的父親節(jié) 點(diǎn)},ES定義了兄弟約束集合,ES= {(u,v) |uG VAvG V,并且的右兄弟節(jié)點(diǎn)};用 E表示約束集合,即E = Ea U Es ;4)、E是文檔樹(shù)中節(jié)點(diǎn)標(biāo)簽的集合;5)、PA 定義了祖先路徑約束,PA = {(v0, Vl, ... , vn) | (Vi,vi+1) G Ea,0 彡 i < n} U {v0},Ps 定義了孩子路徑約束,Ps = {(Vl, . . . , vn) | (Vi,vi+1) G Es,0 < i < n,Vl, vn分別是它們父親節(jié)點(diǎn)的第一個(gè)和最后一個(gè)孩子節(jié)點(diǎn)} U {Vl|Vl是其父親節(jié)點(diǎn)的唯一孩子 節(jié)點(diǎn)};用P表示路徑約束集合,即P = PA U PS,PC VU V2U... U ^;6)、函數(shù)lab返回節(jié)點(diǎn)的標(biāo)簽,即當(dāng)v G V,lab (v) GE。需要說(shuō)明的是,我們關(guān)注的是結(jié)構(gòu)相似度,傳統(tǒng)的信息檢索技術(shù)已經(jīng)很好的處理 了內(nèi)容相似度,所以文本節(jié)點(diǎn)統(tǒng)一當(dāng)做標(biāo)簽值為#text的節(jié)點(diǎn)。另外將屬性節(jié)點(diǎn)看成一種 特殊的元素節(jié)點(diǎn)。文檔樹(shù)示例如圖1。2.節(jié)點(diǎn)的 BPC定義2.節(jié)點(diǎn)的BPC。PA(e)定義了節(jié)點(diǎn)e的祖先路徑約束,PA(e) = (v0, Vl, , e) G PA,Ps(e)定義了節(jié)點(diǎn) e 的孩子路徑約束,Ps(e) = (Ul,. . .,un) G Ps, (e, Ui) G Ea, cons(e)定義了節(jié)點(diǎn)的BPC,cons (e) = (PA(e), Ps (e)), e G V。對(duì)于文檔樹(shù)的葉節(jié)點(diǎn),它的 Ps(e)為空,用e表示。通?;跇?shù)編輯距離的方法只提取祖先路徑約束。本發(fā)明使用的BPC在原有的祖 先路徑約束的基礎(chǔ)上增加了孩子路徑約束。這樣更全面的獲取了 XML文檔的結(jié)構(gòu)信息,可 以提高依據(jù)文檔相似度聚類(lèi)結(jié)果的正確率。3.基于N-Gram思想計(jì)算兩個(gè)路徑約束之間的相似度設(shè)k為待比較的兩個(gè)路徑約束中出現(xiàn)的不同節(jié)點(diǎn)標(biāo)簽的數(shù)量,將這k個(gè)節(jié)點(diǎn)標(biāo)簽 按照字典序排列,則每個(gè)節(jié)點(diǎn)標(biāo)簽可以依次映射為[1,k]內(nèi)的一個(gè)正整數(shù)。這樣用字符串 表示的節(jié)點(diǎn)標(biāo)簽被轉(zhuǎn)換為一個(gè)數(shù)字,相同的標(biāo)簽名有相同的數(shù)字編號(hào)。那么路徑約束最后 的表現(xiàn)形式是一個(gè)有順序的整數(shù)數(shù)組。定義3.基于N-Gram思想的劃分方式。它將長(zhǎng)為n的整數(shù)數(shù)組劃分為n個(gè)子數(shù)組, 其中第i(0 < i彡n)個(gè)子數(shù)組存儲(chǔ)的是提取的i-Gram項(xiàng),該子數(shù)組簡(jiǎn)稱(chēng)為i-Gram數(shù)組, 含有n-i+1項(xiàng),其中每一項(xiàng)均為原整數(shù)數(shù)組中i個(gè)連續(xù)項(xiàng)(ai,a2,……,%)生成的結(jié)果,生 成方法如下 引入k+1是為了保證各個(gè)子數(shù)組的項(xiàng)的唯一性,可見(jiàn),1-Gram數(shù)組有n項(xiàng),2-Gram 數(shù)組有n-1項(xiàng),……,(n-1)-Gram數(shù)組有2項(xiàng),n-Gram數(shù)組有1項(xiàng);因而所有子數(shù)組共有
項(xiàng);為了簡(jiǎn)化后面的處理,將n個(gè)子數(shù)組依次存儲(chǔ)在一個(gè)長(zhǎng)為
的數(shù)組中;
待比較的兩個(gè)路徑約束,通過(guò)使用符號(hào)映射轉(zhuǎn)化為整數(shù)數(shù)組,長(zhǎng)度分別為n和m, 它們是某兩個(gè)節(jié)點(diǎn)的祖先路徑約束(或同是孩子路徑約束),根據(jù)定義3將他們依次分解成 1-Gram 數(shù)組,2-Gram 數(shù)組,......,min (n,m) -Gram 數(shù)組。定義4.兩個(gè)一維數(shù)組的相同項(xiàng)個(gè)數(shù)C。把數(shù)組看成集合,用兩個(gè)集合的交集表示 相同項(xiàng)個(gè)數(shù)C。用q表示兩個(gè)路徑約束分解后兩個(gè)i-Gram數(shù)組的相同項(xiàng)個(gè)數(shù)。如果在i-Gram數(shù) 組中有完全匹配項(xiàng)時(shí),該項(xiàng)的所有子項(xiàng)都會(huì)匹配,這部分匹配的子項(xiàng)個(gè)數(shù)無(wú)形中體現(xiàn)了 的權(quán)重,c=UG;因此用C表示兩個(gè)路徑約束分解后的相同項(xiàng)個(gè)數(shù)。 1=1定義5.路徑約束相似度。根據(jù)上面的定義,路徑約束相似度公式如下所示 4. BPC 相似度為了保持原有的結(jié)構(gòu)信息,本發(fā)明對(duì)XML文檔的每個(gè)節(jié)點(diǎn)提取了 BPC,但是祖先路 徑相似度和孩子路徑相似度對(duì)BPC的影響程度可能不一樣。引入影響因子來(lái)描述祖先約束 對(duì)BPC的影響程度。這個(gè)影響因子由程序員設(shè)定。一般認(rèn)為祖先路徑約束對(duì)BPC有更大的影響。定義6.BPC相似度。設(shè)a為祖先路徑約束的影響因子,自然為孩子路徑約 束的影響因子,0彡a彡1,BPC相似度公式如下所示 5.文檔相似度定義7.文檔相似度。兩篇XML文檔Di和D2,節(jié)點(diǎn)個(gè)數(shù)分別為n和m,根據(jù)定義6 計(jì)算出Di每個(gè)節(jié)點(diǎn)的BPC和D2每個(gè)節(jié)點(diǎn)的BPC相似度形成相似矩陣后,選出Di各個(gè)節(jié)點(diǎn) 和D2相似度最大的節(jié)點(diǎn)的相似值,則文檔相似度公式如下 在XML文檔標(biāo)簽樹(shù)中,節(jié)點(diǎn)越靠近根節(jié)點(diǎn),它對(duì)文檔結(jié)構(gòu)的影響就越大。引入
來(lái)描述不同節(jié)點(diǎn)深度的不同影響,lev(vi)為節(jié)點(diǎn)義的層數(shù),根節(jié)點(diǎn)的層數(shù)是
0o本發(fā)明的優(yōu)點(diǎn)和積極效果本發(fā)明提出一種新的比較XML文檔相似度的方法。該方法使用BPC模型,更全面 的提取XML文檔的結(jié)構(gòu)信息,為精確計(jì)算XML文檔相似度打下了基礎(chǔ)。引入各種權(quán)重體現(xiàn) 結(jié)構(gòu)層次。創(chuàng)新的用N-Gram思想簡(jiǎn)化路徑相似度的度量,精確效率高。作為分類(lèi)、聚類(lèi)的 基礎(chǔ),可以提高分類(lèi)、聚類(lèi)的正確率。
圖1為一篇XML文檔和它對(duì)應(yīng)的XML文檔樹(shù)。圖2為使用N-Gram思想提取路徑約束6 — 3 — 4 — 5 — 3中的N-Gram信息,此圖包括由a到e的五個(gè)過(guò)程,因?yàn)槌霈F(xiàn)的最大整數(shù)為6,提取過(guò)程中使用的是七進(jìn)制。其中,(a)為掃描路徑的第一個(gè)元素后填充第一個(gè)1-Gram的示意圖。(b)為掃描路徑的第二個(gè)元素后填充第二個(gè)1-Gram,第一個(gè)2-Gram的示意圖。(c)為掃描路徑的第三個(gè)元素后填充第三個(gè)1-Gram,第二個(gè)2-Gram,第一個(gè) 3-Gram的示意圖。(d)為掃描路徑的第四個(gè)元素后填充第四個(gè)1-Gram,第三個(gè)2-Gram,第二個(gè) 3-Gram,第一個(gè)4-Gram的示意圖。(e)為掃描路徑的第三個(gè)元素后填充第五個(gè)1-Gram,第四個(gè)2-Gram,第三個(gè) 3-Gram,第二個(gè)4-Gram,第一個(gè)5-Gram的示意圖。圖3為文檔相似度算法流程圖。
具體實(shí)施方式N-Gram(N是元數(shù))是大詞匯連續(xù)語(yǔ)音識(shí)別中常用的一種語(yǔ)言模型。該模型基于 這樣一種假設(shè),第N個(gè)詞的出現(xiàn)只與前面N-1個(gè)詞相關(guān),而與其它任何詞都不相關(guān),整句的 概率就是各個(gè)詞出現(xiàn)概率的乘積。這些概率可以通過(guò)直接從語(yǔ)料中統(tǒng)計(jì)N個(gè)詞同時(shí)出現(xiàn)的 次數(shù)得到。常用的是二元的Bi-Gram和三元的Tri-Gram,已經(jīng)廣泛應(yīng)用于自然語(yǔ)言處理。 N-Gram的意思可以理解為N個(gè)詞構(gòu)成的序列。實(shí)施例1 基于XML文檔樹(shù)構(gòu)建BPC模型的具體方法,描述如下1.根據(jù)本發(fā)明提出的將XML文檔定義為一棵XML文檔樹(shù),并在此文檔樹(shù)基礎(chǔ)上對(duì) 每個(gè)節(jié)點(diǎn)建立BPC模型。圖1顯示了一篇XML文檔和它對(duì)應(yīng)的XML文檔樹(shù),表1以圖1文 檔樹(shù)為例列舉各個(gè)節(jié)點(diǎn)的BPC模型。實(shí)施例2 基于N-Gram思想計(jì)算文檔相似度的具體方法,描述如下算法1.根據(jù)兩個(gè)相鄰i-Gram項(xiàng)生成i+1-Gram項(xiàng)的方法CreateGram輸入itemi,item2 /*用正整數(shù)表示的兩個(gè)相鄰i_Gram項(xiàng)*/t /* 進(jìn)制 t*/輸出item /*用正整數(shù)表示的(i+1)-Gram項(xiàng)*/① item: = item! X t+item2% t ;②.RETURN item ;③.算法結(jié)束該算法是根據(jù)兩個(gè)相鄰i-Gram項(xiàng)生成(i+l)-Gram項(xiàng)。算法中的進(jìn)制t為待比較 的兩個(gè)路徑約束中不同標(biāo)簽數(shù)目總數(shù)加1。對(duì)于同一個(gè)路徑約束,引入進(jìn)制t,當(dāng)i卓j時(shí), 可以保證i-Gram項(xiàng)所在的整數(shù)域和j-Gram所在的整數(shù)域沒(méi)有交集。算法2.路徑約束中N-Gram信息的提取方法PathDecomposition輸入Path[l,2, ,!!] /*映射為正整數(shù)數(shù)組后的路徑約束*/t/*進(jìn)制t,意義同算法1*/ /*需要提取的最大的N-Gram項(xiàng),即提取的k-Gram 子數(shù)組中,k ( n0*/輸出
提取的 N-Gram信息 */①.pos[l,2,…,n];
/*pos [i]記錄路徑約束Path的每個(gè)i-Gram數(shù)組在NGram數(shù)組(i = 1,2,……,Path. Length)中的起始位置 */
「…「1r.i 2ni - 2n + 3i _ i2② ③.FOREACH member IN Path④.i : = member 在 Path 中的下標(biāo);⑤.NGram[i] = member /* 填充第 i 個(gè) 1-Gram 項(xiàng) * /⑥.j = 2 ;/*j表示待填充的j-Gram項(xiàng)*/⑦.IF j 彡 i&&j 彡 n0THEN⑧.item!: = NGram[pos[j-l]+i-j+l];(9).item2: = NGram[pos[j-l]+i_j+2];⑩.NGram[pos[j]+i-j+l] : = CreateGram(item1, item2, t);/* 根據(jù)(j-1) -Gram 項(xiàng)填充第 i_j+l 個(gè) j-Gram 項(xiàng) */ .j++ ; .GOTO ⑦ .END IF .END FOREACH .RETURN NGram ; .算法結(jié)束該算法的主要目的是通過(guò)掃描一次數(shù)組Path,提取出該數(shù)組包含的所有的 i-Gram項(xiàng),并填充到NGram數(shù)組的相應(yīng)位置里。每個(gè)i-Gram的長(zhǎng)度確定,用pos數(shù)組存儲(chǔ) 每個(gè)i-Gram在NGram的起始位置。根據(jù)i,填充方式如下i = 1 填充第 1 個(gè) 1-Grami = 2 填充第 2 個(gè) 1-Gram,第 1 個(gè) 2-Grami = 3 填充第 3 個(gè) 1-Gram,第 2 個(gè) 2-Gram,第 1 個(gè) 3-Gram............i = n 填充第 n 個(gè) 1-Gram,第 n_l 個(gè) 2-Gram,......,第 1 個(gè) n-Gram由此發(fā)現(xiàn),當(dāng)已知Path的當(dāng)前掃描位置i和待填充項(xiàng)屬于j-Gram,結(jié)合數(shù)組 pos可以計(jì)算出待填充項(xiàng)在NGram中的存儲(chǔ)位置。算法的第⑧至⑩步調(diào)用了算法1,利用 (j-1)-Gram的第i_j+l和i_j+2項(xiàng),生成j-Gram的第i_j+l項(xiàng)。路徑數(shù)組Path掃描結(jié) 束,它對(duì)應(yīng)的N-Gram信息數(shù)組NGram填充完整。如圖2為使用N-Gram思想提取路徑約束 6 — 3 — 4 — 5 — 3 填充的 N-Gram 信息。算法3.路徑約束之間相似度計(jì)算PathSimilarity輸入StringPathJl,〗,…,n],StringPath2[1,2,…,m]/* 字符串形式的路徑 約束*/輸出pathSim /*路徑相似度*/ . Dictionary [1,2,…,k];/*數(shù)組Dictionary為輸入的兩個(gè)路徑約束中包含的所有標(biāo)簽按照字典序排好的詞典,相同的字符串只占詞典中的一項(xiàng);IiSstringPathdnstringPath2中不同節(jié)點(diǎn)標(biāo)簽的數(shù)量*/②.Path1: = Mapping (StringPath1, Dictionary); /*函數(shù)Mapping返回將字符串?dāng)?shù)組StringPath1中的字符串都轉(zhuǎn)化為 在Dictionary中該字符串的下標(biāo)而形成的一個(gè)整形數(shù)組*/③.Path2: = Mapping(StringPath2, Dictionary);(4). minLength: = min (StringPath1. Length, StringPath2. Length);(5). DecPath1 = PathDecomposition (Path1, k+1, minLength);/*根據(jù)算法2,提取路徑約束中的N-Gram信息*/(6). DecPath2 = PathDecomposition (Path2, k+1, minLength);(7). pathSim: = !DecPath1 Π DecPath2I ;⑧.RETURNpathSim ;⑨.算法結(jié)束算法的目的是計(jì)算兩個(gè)路徑約束的相似度。k為待比較的兩個(gè)路徑約束中出現(xiàn) 的不同節(jié)點(diǎn)標(biāo)簽的數(shù)量,將這k個(gè)節(jié)點(diǎn)標(biāo)簽按照字典序排列,則每個(gè)節(jié)點(diǎn)標(biāo)簽可以依次映 射為[1,k]內(nèi)的一個(gè)正整數(shù)。這樣用字符串表示的節(jié)點(diǎn)標(biāo)簽被轉(zhuǎn)換為一個(gè)數(shù)字,相同的標(biāo) 簽名有相同的數(shù)字編號(hào)。那么路徑約束最后的表現(xiàn)形式是一個(gè)有順序的整數(shù)數(shù)組。采用t =k+Ι作為進(jìn)制,從而達(dá)到算法1引入該參數(shù)的目的。表2示例說(shuō)明待比較的兩個(gè)約束 BOOK — SECTION — TITLE, BOOK — SECTION — FIGURE — CAPTION 各個(gè)字符串的映射信息。算法4. BPC 相似度 BPCSimilarity輸入節(jié)點(diǎn)θι的BPC,節(jié)點(diǎn)e2的BPC輸出BPCsim /*BPC相似度,也即節(jié)點(diǎn)相似度*/①.α = 0.6 ;/*參數(shù)α是祖先路徑約束在BPC約束中所占的比重,α越大,祖先路徑約束對(duì)BPC相似度的影響越大,孩子路徑約束對(duì)BPC相似度的影響越??;反之,α越小,孩子路徑約束對(duì)BPC相似度的影響越大,祖先路徑約束對(duì)BPC相似度的影響越小*/②.BPCsim: = α XPathSimilarity (P^e1), PA(e2)) +(1-α ) XPathSimilarity ( Ps(ei),Ps(e2))③.RETURNBPCsim ;④.算法結(jié)束算法的目的是計(jì)算兩個(gè)節(jié)點(diǎn)的BPC相似度。引入影響因子來(lái)描述祖先路徑約束對(duì) BPC相似度的影響程度。這個(gè)影響因子需要根據(jù)具體的應(yīng)用而設(shè)定,一般情況下認(rèn)為祖先路 徑約束比孩子路徑約束對(duì)BPC相似度具有更大的影響,S卩α >0.5。算法5. XML文檔相似度輸入XML文檔樹(shù)D1和D2輸出documentSim /*文檔D1和D2的相似度*/①.遍歷文檔樹(shù)D1和D2,建立對(duì)應(yīng)的BPC模型;
②.s[nXm];/*BPC相似矩陣,設(shè)文檔D1節(jié)點(diǎn)數(shù)為n,文檔D2節(jié)點(diǎn)數(shù)為m*/③·siJ: = BPCSimi Iarity ((PA (ei), Ps (ei)), (PJej),Ps (ej)));/*根據(jù)算法4,Sij存儲(chǔ)的是節(jié)點(diǎn)ei與節(jié)點(diǎn)e」之間的相似度,其 中節(jié)點(diǎn)ei屬于文檔D1,節(jié)點(diǎn)ej屬于文檔D2*//*函數(shù)w(e)獲得節(jié)點(diǎn)e的權(quán)重,且w(e) = 2_lev(e)*/算法的目的是計(jì)算兩篇XML文檔的相似度。由于BPC相似矩陣滿(mǎn)足關(guān)于矩陣主對(duì) 角線(xiàn)對(duì)稱(chēng),具體操作時(shí)可只計(jì)算矩陣的上三角形,再?gòu)?fù)制到下三角形,計(jì)算次數(shù)減少一半。 如圖3為文檔相似度算法流程圖。表1列舉了圖IXML文檔樹(shù)各個(gè)節(jié)點(diǎn)的BPC 表2示例說(shuō)明待比較的兩個(gè)約束Β00Κ — SECTION — TITLE,BOOK — SECTION — FIGURE — CAPTION各個(gè)字符串的映射信息
權(quán)利要求
一種計(jì)算XML文檔相似度的方法,其特征在于該方法包括如下步驟步驟1、將XML文檔定義為一棵XML文檔樹(shù),并表示為一個(gè)6元組;步驟2、建立雙向路徑約束B(niǎo)idirectional path constraints,BPC模型在步驟1文檔樹(shù)的基礎(chǔ)上定義節(jié)點(diǎn)的BPC,一篇XML文檔包含的所有節(jié)點(diǎn)的BPC集合稱(chēng)為雙向路徑約束模型;步驟3、使用基于N-Gram的劃分方式計(jì)算兩個(gè)祖先路徑約束或孩子路徑約束之間的相似度,統(tǒng)稱(chēng)為路徑約束相似度;步驟4、根據(jù)步驟3得出的路徑約束相似度計(jì)算兩個(gè)節(jié)點(diǎn)的BPC相似度,進(jìn)而把這個(gè)BPC相似度作為這兩個(gè)節(jié)點(diǎn)的相似度;步驟5、最后文檔中所有節(jié)點(diǎn)相似度按照節(jié)點(diǎn)的結(jié)構(gòu)層次加權(quán)求和作為兩篇文檔的相似度。
2.根據(jù)權(quán)利要求1所述的方法,其特征在于步驟1所述的XML文檔樹(shù)的定義如下定義1. XML文檔樹(shù)將一棵XML文檔樹(shù)表示為一個(gè)6元組T = (V,v0, E,E,P,lab),其中1)、V是文檔樹(shù)中所有節(jié)點(diǎn)的集合;2),v0是文檔樹(shù)的根節(jié)點(diǎn);3)、Ea定義了父子約束集合,Ea= {(u,v) | u e V A v e V,并且u是v的父親節(jié)點(diǎn)}, Es定義了兄弟約束集合,Es = {(u,v) | u e V八v e V,并且v是u的右兄弟節(jié)點(diǎn)};用E表 示約束集合,即E = Ea U Es ;4)、E是文檔樹(shù)中節(jié)點(diǎn)標(biāo)簽的集合;5)、PA定義了祖先路徑約束,PA= {(v0,vi,... ,vn) | (vi,vi+1) GEa,0彡 i<n} U {v0}, Ps 定義了孩子路徑約束,Ps = {(Vi,. . . , vn) | (Vi,vi+1) G Es,0 < i < n,Vl,vn 分別是它們 父親節(jié)點(diǎn)的第一個(gè)和最后一個(gè)孩子節(jié)點(diǎn)} U {Vl|Vl是其父親節(jié)點(diǎn)的唯一孩子節(jié)點(diǎn)};用P 表示路徑約束集合,即P = PA U Ps,F(xiàn)U F2U ... U ^;6)、函數(shù)lab返回節(jié)點(diǎn)的標(biāo)簽,即當(dāng)vG V, lab (v) GE。
3.根據(jù)權(quán)利要求1所述的方法,其特征在于步驟2所述的節(jié)點(diǎn)的BPC定義為定義2.節(jié)點(diǎn)的BPC :PA(e)定義了節(jié)點(diǎn)e的祖先路徑約束,PA(e) = (v0, Vl,. . . , e) G PA, Ps(e)定義了節(jié)點(diǎn) e 的孩子路徑約束,Ps(e) = (Ul, ,un) G Ps,(e, Ui) G Ea,cons (e)定 義了節(jié)點(diǎn)的BPC,c0nS(e) = (PA(e),Ps(e)),e G V ;對(duì)于文檔樹(shù)的葉節(jié)點(diǎn),它的Ps (e)為空, 用e表示。
4.根據(jù)權(quán)利要求1所述的方法,其特征在于步驟3所述的使用基于N-Gram的劃分方式 計(jì)算兩個(gè)路徑約束之間的相似度的方法是設(shè)k為待比較的兩個(gè)路徑約束中出現(xiàn)的不同節(jié)點(diǎn)標(biāo)簽的數(shù)量,將這k個(gè)節(jié)點(diǎn)標(biāo)簽按照 字典序排列,則每個(gè)節(jié)點(diǎn)標(biāo)簽可以依次映射為[1,k]內(nèi)的一個(gè)正整數(shù);這樣用字符串表示 的節(jié)點(diǎn)標(biāo)簽被轉(zhuǎn)換為一個(gè)數(shù)字,相同的標(biāo)簽名有相同的數(shù)字編號(hào);那么路徑約束最后的表 現(xiàn)形式是一個(gè)有順序的整數(shù)數(shù)組;定義3.基于N-Gram思想的劃分方式它將長(zhǎng)為n的整數(shù)數(shù)組劃分為n個(gè)子數(shù)組,其中 第i(0 < i≤n)個(gè)子數(shù)組存儲(chǔ)的是提取的i-Gram項(xiàng),該子數(shù)組簡(jiǎn)稱(chēng)為i-Gram數(shù)組,含有 n-i+1項(xiàng),其中每一項(xiàng)均為原整數(shù)數(shù)組中i個(gè)連續(xù)項(xiàng)(ai,a2,……,%)生成的結(jié)果,生成方法如下 弓丨入k+1是為了保證各個(gè)子數(shù)組的項(xiàng)的唯一性,可見(jiàn),1-Gram數(shù)組有η項(xiàng),2-Gram數(shù)組 有n-1項(xiàng),……,(n-D-Gram數(shù)組有2項(xiàng),n-Gram數(shù)組有1項(xiàng);因而所有子數(shù)組共有^^項(xiàng);為了簡(jiǎn)化后面的處理,將η個(gè)子數(shù)組依次存儲(chǔ)在一個(gè)長(zhǎng)為Mf的數(shù)組中;待比較的兩個(gè)路徑約束,通過(guò)使用符號(hào)映射轉(zhuǎn)化為整數(shù)數(shù)組,長(zhǎng)度分別為η和m,它們 是某兩個(gè)節(jié)點(diǎn)的祖先路徑約束或同是孩子路徑約束,根據(jù)定義3將他們依次分解成I-Gram 數(shù)組,2-Gram數(shù)組,……,min (n,m) -Gram數(shù)組;定義4.兩個(gè)一維數(shù)組的相同項(xiàng)個(gè)數(shù)C 把數(shù)組看成集合,用兩個(gè)集合的交集表示相同 項(xiàng)個(gè)數(shù)C ;定義5.路徑約束相似度根據(jù)上面的定義,路徑約束相似度公式如下所示 ;定義6. BPC相似度設(shè)α為祖先路徑約束的影響因子,自然l-α為孩子路徑約束的影 響因子,O彡α彡1,BPC相似度公式如下所示
5.根據(jù)權(quán)利要求1所述的方法,其特征在于步驟5所述的文檔中所有節(jié)點(diǎn)相似度加權(quán) 求和作為兩篇文檔的相似度的方法是定義7.文檔相似度兩篇XML文檔D1和D2,節(jié)點(diǎn)個(gè)數(shù)分別為η和m,根據(jù)定義6計(jì)算出 D1每個(gè)節(jié)點(diǎn)的BPC和D2每個(gè)節(jié)點(diǎn)的BPC相似度形成相似矩陣后,選出D1各個(gè)節(jié)點(diǎn)和D2相 似度最大的節(jié)點(diǎn)的相似值,則文檔相似度公式如下 在XML文檔樹(shù)中,節(jié)點(diǎn)越靠近根節(jié)點(diǎn),它對(duì)文檔結(jié)構(gòu)的影響就越大;引入對(duì)…力‘”來(lái) 描述不同節(jié)點(diǎn)深度的不同影響,Iev(Yi)為節(jié)點(diǎn)Vi的層數(shù),根節(jié)點(diǎn)的層數(shù)是O。
全文摘要
本發(fā)明屬于數(shù)據(jù)庫(kù)技術(shù)領(lǐng)域,建立一種XML文檔約束模型,稱(chēng)為雙向路徑約束模型?;谶@種模型提出一種新的計(jì)算XML文檔相似度的方法。它通過(guò)節(jié)點(diǎn)的雙向路徑約束更全面的提取XML文檔的結(jié)構(gòu)信息,有利于更精確的衡量XML文檔之間的相似度。本發(fā)明引入自然語(yǔ)言領(lǐng)域中非常成熟的N-Gram思想,將基于N-Gram的劃分方式應(yīng)用在路徑約束相似度計(jì)算中。最后本發(fā)明巧妙地運(yùn)用正整數(shù)和權(quán)值簡(jiǎn)化了N-Gram信息的提取和運(yùn)算。本發(fā)明可用于XML文檔分類(lèi)、聚類(lèi)以及模式提取等領(lǐng)域。
文檔編號(hào)G06F17/30GK101876995SQ20091024490
公開(kāi)日2010年11月3日 申請(qǐng)日期2009年12月18日 優(yōu)先權(quán)日2009年12月18日
發(fā)明者廉鑫, 林偉堅(jiān), 汪陳應(yīng), 袁曉潔 申請(qǐng)人:南開(kāi)大學(xué)