国产精品1024永久观看,大尺度欧美暖暖视频在线观看,亚洲宅男精品一区在线观看,欧美日韩一区二区三区视频,2021中文字幕在线观看

  • <option id="fbvk0"></option>
    1. <rt id="fbvk0"><tr id="fbvk0"></tr></rt>
      <center id="fbvk0"><optgroup id="fbvk0"></optgroup></center>
      <center id="fbvk0"></center>

      <li id="fbvk0"><abbr id="fbvk0"><dl id="fbvk0"></dl></abbr></li>

      基于擴(kuò)展鄰接矩陣的xml文檔結(jié)構(gòu)及語義相似性計(jì)算方法

      文檔序號:6598790閱讀:218來源:國知局
      專利名稱:基于擴(kuò)展鄰接矩陣的xml文檔結(jié)構(gòu)及語義相似性計(jì)算方法
      基于擴(kuò)展鄰接矩陣的XML文檔結(jié)構(gòu)及語義相似性計(jì)算方法
      技術(shù)領(lǐng)域
      本發(fā)明屬于數(shù)據(jù)挖掘技術(shù)領(lǐng)域,具體涉及一種合理有效的XML文檔相似性計(jì)算方法。
      背景技術(shù)
      XML作為一種標(biāo)示語言,已經(jīng)在互聯(lián)網(wǎng)上成為一種數(shù)據(jù)表達(dá)和數(shù)據(jù)交換的相關(guān)標(biāo)準(zhǔn),尤其在電子商務(wù)等方面起著舉足輕重的作用。在現(xiàn)今網(wǎng)絡(luò)數(shù)據(jù)不斷膨脹的條件下,作為 網(wǎng)絡(luò)數(shù)據(jù)標(biāo)準(zhǔn)之一的XML數(shù)據(jù)也在急速增長,在這些海量的XML數(shù)據(jù)中如何能找到我們需 要的數(shù)據(jù)甚至如何從中挖掘出一些我們不曾了解的隱藏信息成為數(shù)據(jù)挖掘的一個(gè)重要研 究方向。在這個(gè)研究方向中,如何能量化兩個(gè)XML文檔的相似性是一個(gè)關(guān)鍵。XML不僅可以描述結(jié)構(gòu)化數(shù)據(jù),還具有描述半結(jié)構(gòu)化數(shù)據(jù)的能力。目前,網(wǎng)絡(luò)上的 XML數(shù)據(jù)大多是半結(jié)構(gòu)化的,半結(jié)構(gòu)化數(shù)據(jù)的結(jié)構(gòu)類似于圖或樹,通常稱為有向標(biāo)記圖,可 以用鄰接矩陣來描述。根據(jù)這個(gè)特點(diǎn),本發(fā)明通過改進(jìn)的鄰接矩陣來描述XML文檔的結(jié)構(gòu) 及語義,進(jìn)而量化文檔間的相似性。近些年,國內(nèi)外許多學(xué)者在XML文檔相似測度問題的研究方面做了大量的工 作。其中,研究最早也是研究最多的方法是把XML文檔之間的相似性用樹之間的編輯 距離(EditDistance)來度量。兩棵樹之間的編輯距離指的是通過修改(update)、刪除 (delete)、插入(insert)等操作使原始樹到達(dá)目標(biāo)樹所經(jīng)過的步驟。Tai最早使用編輯距 離來計(jì)算兩棵樹間的相似度。其基本思想是將兩棵樹間的距離定義為利用編輯操作將一棵 樹轉(zhuǎn)化為另一棵所需的代價(jià)。這種方法的優(yōu)點(diǎn)是可以很好的表示出不同文檔之間有多少節(jié) 點(diǎn)不相同,但是沒有考慮不同層節(jié)點(diǎn)對文檔的貢獻(xiàn)的不同,而且時(shí)間復(fù)雜度過高,為0(n3)。

      發(fā)明內(nèi)容本發(fā)明目的是如何在海量的XML數(shù)據(jù)中找到我們需要的數(shù)據(jù)或如何從中挖掘出 一些我們不曾了解的隱藏信息的問題,提供一種新的基于擴(kuò)展鄰接矩陣的XML文檔結(jié)構(gòu)及 語義相似性計(jì)算方法,該方法通過兩個(gè)擴(kuò)展鄰接矩陣來表示兩個(gè)XML文檔的結(jié)構(gòu)及語義信 息,然后計(jì)算兩個(gè)矩陣的相似性。該方法充分考慮了不同層次節(jié)點(diǎn)對文檔貢獻(xiàn)的不同,且在XML文檔節(jié)點(diǎn)數(shù)為η的 情況下,此方法的時(shí)間復(fù)雜度最高為0(η2),優(yōu)于編輯距離算法。本發(fā)明提供的基于擴(kuò)展鄰接矩陣的XML文檔結(jié)構(gòu)及語義相似性計(jì)算方法的具體 步驟如下第1、首先進(jìn)行XML文檔樹的編碼XML文檔的DOM結(jié)構(gòu)可以看作是該文檔的樹形結(jié)構(gòu),其中節(jié)點(diǎn)屬性看作是此節(jié)點(diǎn) 的子節(jié)點(diǎn),一個(gè)XML文檔可以看作是一個(gè)自上向下展開的樹;如圖1為一棵XML文檔樹,對 此樹進(jìn)行編碼的方式為深度搜索方式,即采用深度搜索方法遍歷此樹,然后為節(jié)點(diǎn)依次編 碼1,2,3,4......,直到最后一個(gè)節(jié)點(diǎn),記作節(jié)點(diǎn)編碼;樹中層的分配采用倒排方式,即樹的葉節(jié)點(diǎn)所在層記作第一層,然后依次向上推第二層、第三層......,直至根節(jié)點(diǎn);第2、對于兩個(gè)編碼后的文檔,要分別生成它們所對應(yīng)的鄰接矩陣第2. 1、生成模式文檔節(jié)點(diǎn)列表和數(shù)據(jù)源文檔節(jié)點(diǎn)列表將模式文檔讀入以后,采用深度優(yōu)先搜索方法遍歷每個(gè)節(jié)點(diǎn);而對于節(jié)點(diǎn)的屬性, 這里將之看作節(jié)點(diǎn)的一個(gè)子節(jié)點(diǎn);遍歷到任何一個(gè)節(jié)點(diǎn)的時(shí)候,抽取每個(gè)節(jié)點(diǎn)的標(biāo)簽信息、 編碼信息、層信息、父節(jié)點(diǎn)信息組成NodeMessage類,然后依次添加到list列表中,形成模 式文檔節(jié)點(diǎn)列表;對于數(shù)據(jù)源文檔,根據(jù)模式文檔節(jié)點(diǎn)列表的生成方法生成一個(gè)臨時(shí)節(jié)點(diǎn)列表,然 后用模式文檔節(jié)點(diǎn)列表中的每個(gè)NodeMessage與臨時(shí)節(jié)點(diǎn)列表中的NodeMessage相比較, 如果找到與模式文檔節(jié)點(diǎn)列表的NodeMessage相同的節(jié)點(diǎn),將其加入到數(shù)據(jù)源文檔節(jié)點(diǎn)列 表中去,如果不能找到與模式文檔列表的NodeMessage相同的節(jié)點(diǎn),則在數(shù)據(jù)源文檔節(jié)點(diǎn) 列表中加入空節(jié)點(diǎn);當(dāng)模式文檔節(jié)點(diǎn)列表中的每個(gè)節(jié)點(diǎn)都比較過之后,數(shù)據(jù)源文檔節(jié)點(diǎn)列 表隨之生成;第2. 2、生成模式擴(kuò)展鄰接矩陣和數(shù)據(jù)源擴(kuò)展鄰接矩陣假設(shè)模式文檔包含n個(gè)節(jié)點(diǎn),那么在模式文檔節(jié)點(diǎn)列表中就會(huì)有n條信息,而
      且這n個(gè)節(jié)點(diǎn)按照編碼順序1,2,3,4,5............排列;首先取節(jié)點(diǎn)i(i = 1,2,3,4,
      5......)與節(jié)點(diǎn)j(j = 1,2,3,4,5......)比較,這里分兩種情況①i = j,當(dāng)i = j的時(shí)候,模式文檔擴(kuò)展鄰接矩陣的P[i] [j] = 1 ;對于數(shù)據(jù)源文 檔的擴(kuò)展鄰接矩陣,如果節(jié)點(diǎn)為空節(jié)點(diǎn),則P[i][j] =0,如果節(jié)點(diǎn)不為空節(jié)點(diǎn),則P[i][j]②i辛j,分為四種情況1)如果節(jié)點(diǎn)i的編碼大于節(jié)點(diǎn)j的編碼,那么P[i] [j] =0 ;2)如果節(jié)點(diǎn)i的編碼小于節(jié)點(diǎn)j的編碼,但是節(jié)點(diǎn)i或節(jié)點(diǎn)j為空節(jié)點(diǎn),那么P[i] [j] =0 ;3)如果節(jié)點(diǎn)i的編碼小于節(jié)點(diǎn)j的編碼,而且節(jié)點(diǎn)i與節(jié)點(diǎn)j不為空節(jié)點(diǎn),但是節(jié)點(diǎn) i不是節(jié)點(diǎn)j的父節(jié)點(diǎn)或祖先節(jié)點(diǎn),那么P[i] [j] = 0 ;4)如果節(jié)點(diǎn)i的編碼小于節(jié)點(diǎn)j的 編碼,而且節(jié)點(diǎn)i與節(jié)點(diǎn)j中不包含空節(jié)點(diǎn),且節(jié)點(diǎn)i是節(jié)點(diǎn)j的父節(jié)點(diǎn)或祖先節(jié)點(diǎn),P[i] [j]=節(jié)點(diǎn)j所在層值除以節(jié)點(diǎn)i所在層值;待所有節(jié)點(diǎn)全部相互比較之后,擴(kuò)展鄰接矩陣 隨之生成;第3、根據(jù)cos P2)計(jì)算相似性數(shù)值將生成的擴(kuò)展鄰接矩陣中的每個(gè)元素看成是向量的一個(gè)維度,然后從第一行開始 每行首尾相連,這樣就形成了兩個(gè)n*n維的向量萬、耳,n代表矩陣中每行、每列元素的個(gè) 數(shù),那么根據(jù)向量的性質(zhì)可得<formula>formula see original document page 5</formula>
      與本發(fā)明有關(guān)的概念和定義1. XML 文檔本發(fā)明所述的XML文檔可以看作是由節(jié)點(diǎn)(Nodes),邊(Edges),層(Floors)組 成,一個(gè)文檔Doc可以定義成Doc = T(N, E,F(xiàn)),其中,N代表文檔中元素、屬性、值的集合;E代表文檔中邊的集合,即節(jié)點(diǎn)間包含關(guān)系的集合;F代表文檔中層的集合。2.鄰接矩陣鄰接矩陣用一個(gè)二維數(shù)組來表示圖中頂點(diǎn)間的相鄰關(guān)系,無需列出頂點(diǎn)和弧,為 圖的描述提供了一種便利。G是一個(gè)圖,V(G)為G的頂點(diǎn)集,E(G)為G的邊集。設(shè)G中有 n個(gè)頂點(diǎn)Vl,v2, v3. . . vn ;A = (aij)_為G的鄰接距陣,其中
      rl v^ e E(G} . <formula>formula see original document page 6</formula>10 %巧緣 EiG)3.節(jié)點(diǎn)表示信息(見圖1)①.節(jié)點(diǎn)標(biāo)簽信息。即節(jié)點(diǎn)的語義,是節(jié)點(diǎn)的標(biāo)志,亦是節(jié)點(diǎn)最重要的信息。②.節(jié)點(diǎn)層信息。即節(jié)點(diǎn)在文檔模型中處于哪一個(gè)層。③.節(jié)點(diǎn)編碼信息。節(jié)點(diǎn)索引的唯一標(biāo)識,在某個(gè)文檔模型中不會(huì)有重復(fù)。④.父節(jié)點(diǎn)信息。連接節(jié)點(diǎn)與節(jié)點(diǎn)間關(guān)系的信息,我們可以根據(jù)該信息方便的找 到每個(gè)節(jié)點(diǎn)的父節(jié)點(diǎn)及其祖先。比較。
      4.模式文檔和數(shù)據(jù)源文檔
      模式文檔用戶所提供的需求文檔,在相似性比較中需要所有的其他文檔與之相
      數(shù)據(jù)源文檔從數(shù)據(jù)源中提取的文檔,在相似性比較中需要與模式文檔相比較。
      5.擴(kuò)展鄰接矩陣
      G是一個(gè)樹,V(G)為G的節(jié)點(diǎn)集合,E(G)為G的祖先-后代關(guān)系。設(shè)G中有n個(gè)
      節(jié)點(diǎn)Vl,v2, v3. . . vn ;P = (PiJ)n n為G擴(kuò)展鄰接距陣,其中 fj - f, v.vy g E{G),i^ j<formula>formula see original document page 6</formula>
      fj代表\所在的層值,f,代表Vi所在的層值,e代表語義相似度。6.模式擴(kuò)展鄰接矩陣和數(shù)據(jù)源擴(kuò)展鄰接矩陣模式擴(kuò)展鄰接矩陣用來表示模式文檔結(jié)構(gòu)及語義信息的擴(kuò)展鄰接矩陣。數(shù)據(jù)源擴(kuò)展鄰接矩陣用來表示數(shù)據(jù)源文檔結(jié)構(gòu)及語義信息的擴(kuò)展鄰接矩陣。與本發(fā)明有關(guān)的性質(zhì)性質(zhì)1 鄰接矩陣分為有向圖鄰接矩陣和無向圖鄰接矩陣,無向圖的鄰接矩陣一 定是對稱的,而有向圖的鄰接矩陣不一定對稱。因此,用鄰接矩陣來表示一個(gè)具有n個(gè)頂點(diǎn) 的有向圖時(shí)需要n2個(gè)單元來存儲(chǔ)鄰接矩陣;對有n個(gè)頂點(diǎn)的無向圖則只存入上(下)三角 陣中剔除了左上右下對角線上的0元素后剩余的元素,故只需1+2+. . ,+(n-l) = n(n-l)/2 個(gè)單元。鄰接矩陣中只有0和1兩個(gè)值。兩個(gè)頂點(diǎn)之間有邊相連則結(jié)構(gòu)信息為1,無邊相連 則結(jié)構(gòu)信息為0。性質(zhì)2 擴(kuò)展鄰接矩陣具有如下特點(diǎn)1.模式文檔矩陣大小為n*n,其中n為模式文檔中節(jié)點(diǎn)數(shù)量,數(shù)據(jù)源文檔矩陣大小 根據(jù)模式文檔矩陣大小確定。2.用來表示結(jié)構(gòu)信息有上(下)三角陣中剔除了左上右下對角線上的元素后剩余的元素,S卩 l+2+...+(n-l) = n(n-l)/2 個(gè)元素。3.用來表示語義信息的有上(下)三角陣中左上至右下對角線上的元素。4.用來表示結(jié)構(gòu)信息的元素的取值遵循如下規(guī)則①如果兩個(gè)節(jié)點(diǎn)具有父一子關(guān)系或祖先一子孫關(guān)系,則元素取值為=子 結(jié)點(diǎn)或子孫節(jié)點(diǎn)所在的層值除以父節(jié)點(diǎn)或祖先節(jié)點(diǎn)所在的層值。②如果兩個(gè)節(jié)點(diǎn)不具備以上的關(guān)系則元素值取為0.③如果兩個(gè)節(jié)點(diǎn)中有任意一個(gè)節(jié)點(diǎn)為空節(jié)點(diǎn),則元素取值為0.5.模式鄰接矩陣中的語義信息元素取值全為1,數(shù)據(jù)源鄰接矩陣中語義信息元素 取值可根據(jù)模式列表和比較列表中對應(yīng)元素的相似程度取相應(yīng)的值,取值范圍在0-1之 間。性質(zhì)3 向量的余弦值設(shè)有n維向量x = (xi,x2,…,xn),y = (yi,y2,…,yn),那么向量x,y的夾角<x, y>的余弦值為cos<x, y> = [x, y]/(|x| |y|)其中[x,y]代表向量x與向量y的內(nèi)積,[x,y] = xji+xjJ...+xnynx|, y分別代表向量x和向量y的模,<formula>formula see original document page 7</formula><formula>formula see original document page 7</formula>所以,向量的余弦值可以表示為<formula>formula see original document page 7</formula>本發(fā)明的優(yōu)點(diǎn)在于,不僅充分考慮不同文檔間不同節(jié)點(diǎn)的數(shù)量,而且對于每個(gè)節(jié) 點(diǎn)對文檔的貢獻(xiàn)作了區(qū)分,同時(shí)節(jié)點(diǎn)對于文檔整體性的貢獻(xiàn)也被考慮進(jìn)來。此方法的時(shí)間 復(fù)雜度最高為0(n2),優(yōu)于編輯距離算法。

      圖1是XML文檔樹編碼示例圖。圖2a是算法流程圖,圖2b是P1生成步驟,圖2c是P2生成步驟。圖3是XML文檔樹圖。圖4a是模式文檔顯示4b是數(shù)據(jù)源文檔顯示4c是模式文檔列表 圖4d是數(shù)據(jù)源文檔列表
      具體實(shí)施方式實(shí)施例模式文檔和數(shù)據(jù)源文檔的編碼、讀取與顯示。根據(jù)發(fā)明內(nèi)容中第1的編碼方法對兩個(gè)文檔分別編碼,區(qū)別出每個(gè)節(jié)點(diǎn)的編碼信息和層信息,并將層信息儲(chǔ)存在數(shù)組中。以圖3為例,模式文檔和數(shù)據(jù)源文檔都根據(jù)深度搜 索進(jìn)行了節(jié)點(diǎn)編碼并區(qū)分出不同的層。XML文檔的讀取采用深度優(yōu)先搜索方法,首先讀取XML文檔的根節(jié)點(diǎn),然后從根節(jié) 點(diǎn)開始通過add_treeVieW_n0deS()方法遞歸搜索每個(gè)節(jié)點(diǎn),遞歸過程中,先判斷節(jié)點(diǎn)是否 有子節(jié)點(diǎn),如果沒有子節(jié)點(diǎn),那么說明此節(jié)點(diǎn)為葉節(jié)點(diǎn),然后返回上一層;如果有子節(jié)點(diǎn),那 么循環(huán)遍歷所有子節(jié)點(diǎn),遍歷到每個(gè)節(jié)點(diǎn)的時(shí)候再用add_treeVieW_n0deS()遞歸,最后實(shí) 現(xiàn)所有節(jié)點(diǎn)的遍歷。XML文檔的顯示采用treeview控件,在遞歸遍歷XML每個(gè)節(jié)點(diǎn)的時(shí)候,讀取每個(gè)節(jié) 點(diǎn)的文本值,然后將文本值賦給treeview控件相應(yīng)的位置,形成一個(gè)樹形結(jié)構(gòu)的XML文檔。 以圖3為例,顯示結(jié)果圖4a、圖4b。1.模式文檔節(jié)點(diǎn)列表和數(shù)據(jù)源文檔節(jié)點(diǎn)列表的生成。首先生成模式文檔節(jié)點(diǎn)列表。根據(jù)發(fā)明內(nèi)容中第2. 1中的方法,將模式文檔讀入 以后,可以采用深度優(yōu)先搜索方法遍歷每個(gè)節(jié)點(diǎn)。而對于節(jié)點(diǎn)的屬性,這里將之看作節(jié)點(diǎn)的 一個(gè)子節(jié)點(diǎn)。遍歷到任何一個(gè)節(jié)點(diǎn)的時(shí)候,抽取每個(gè)節(jié)點(diǎn)的標(biāo)簽信息、編碼信息、層信息、父 節(jié)點(diǎn)信息組成NodeMessage類,然后依次添加到list列表中,形成模式文檔節(jié)點(diǎn)列表。以 圖3為例,生成的模式文檔列表如圖4c。其次生成數(shù)據(jù)源文檔節(jié)點(diǎn)列表。先根據(jù)模式文檔節(jié)點(diǎn)列表的生成方法生成一 個(gè)臨時(shí)節(jié)點(diǎn)列表,然后用模式文檔節(jié)點(diǎn)列表中的每個(gè)NodeMessage與臨時(shí)節(jié)點(diǎn)列表中的 Nodemessage相比較,如果找到與模式文檔節(jié)點(diǎn)列表的NodeMessage相同的節(jié)點(diǎn),將其加入 到數(shù)據(jù)源文檔節(jié)點(diǎn)列表中去,如果不能找到與模式文檔列表的NodeMessage相同的節(jié)點(diǎn), 則在數(shù)據(jù)源文檔節(jié)點(diǎn)列表中加入空節(jié)點(diǎn)。當(dāng)模式文檔節(jié)點(diǎn)列表中的每個(gè)節(jié)點(diǎn)都比較過之 后,數(shù)據(jù)源文檔節(jié)點(diǎn)列表隨之生成。以圖3為例,生成的數(shù)據(jù)源文檔列表如圖4d。2.模式文檔擴(kuò)展鄰接矩陣和數(shù)據(jù)源文檔擴(kuò)展鄰接矩陣的生成。具體實(shí)施方法1提到的節(jié)點(diǎn)列表中,包含節(jié)點(diǎn)標(biāo)簽信息、編碼信息、層信息、父節(jié) 點(diǎn)信息,根據(jù)這些信息分別生成每個(gè)列表對應(yīng)的擴(kuò)展鄰接矩陣P。以圖3為例,模式文檔包 含6個(gè)節(jié)點(diǎn),那么在模式文檔節(jié)點(diǎn)列表和數(shù)據(jù)源文檔列表中就會(huì)有6條信息,所以形成的矩 陣為6*6方陣。為了說明的方便、清晰,首先采用表格的形式表示矩陣,見表格1(模式文 檔)和表格2 (數(shù)據(jù)源文檔),其中第一列代表模式文檔中的節(jié)點(diǎn),表格1中第一行亦代表模 式文檔中的節(jié)點(diǎn),表格2中的第一行代表數(shù)據(jù)源文檔中的節(jié)點(diǎn),其他有數(shù)值(包括0)的單 元格代表交叉點(diǎn)所對應(yīng)的行和列中節(jié)點(diǎn)的關(guān)系(對角線上面的單元格代表語義信息關(guān)系, 其他的單元格代表結(jié)構(gòu)信息關(guān)系)。首先取節(jié)點(diǎn)i(i = 1,2,3,4,5,6)與節(jié)點(diǎn)j(j = 1,2, 3,4,5,6)比較,這里分兩種情況①i = j。當(dāng)i = j的時(shí)候,就是列表中的每個(gè)元素和自 身相比較,模式文檔擴(kuò)展鄰接矩陣的P[i] [j] = 1,即表格1中對角線的值均為1 ;對于數(shù)據(jù) 源文檔的擴(kuò)展鄰接矩陣,如果節(jié)點(diǎn)為空節(jié)點(diǎn),則P[i][j] =0,如果節(jié)點(diǎn)不為空節(jié)點(diǎn),則P[i] [j] = 1,即表格2中對角線的值前4個(gè)為1,后2個(gè)為0。②i興j。分為四種情況1)如 果節(jié)點(diǎn)i的編碼大于節(jié)點(diǎn)j的編碼,那么P[i] [j] = 0 ;2)如果節(jié)點(diǎn)i的編碼小于節(jié)點(diǎn)j的 編碼,但是節(jié)點(diǎn)i或節(jié)點(diǎn)j為空節(jié)點(diǎn),那么P[i] [j] = 0 ;3)如果節(jié)點(diǎn)i的編碼小于節(jié)點(diǎn)j 的編碼,而且節(jié)點(diǎn)i與節(jié)點(diǎn)j不為空節(jié)點(diǎn),但是節(jié)點(diǎn)i不是節(jié)點(diǎn)j的祖先(包括父節(jié)點(diǎn))那 么P[i] [j] = 0 ;4)如果節(jié)點(diǎn)i的編碼小于節(jié)點(diǎn)j的編碼,而且節(jié)點(diǎn)i與節(jié)點(diǎn)j不為空節(jié)點(diǎn),且節(jié)點(diǎn)i是節(jié)點(diǎn)j的祖先(包括父節(jié)點(diǎn)),P[i] [j]=節(jié)點(diǎn)j所在層值除以節(jié)點(diǎn)i所在 層值。以表格1第一行第二列的單元格為例,此單元格代表了根節(jié)點(diǎn)“INVENTORY”和節(jié)點(diǎn) “BOOK”之間的結(jié)構(gòu)關(guān)系,因?yàn)楦?jié)點(diǎn)“INVENTORY”所在層為第三層,而節(jié)點(diǎn)“BOOK”所在的 層為第二層,所以此單元格的結(jié)構(gòu)信息值E12為
      r "BOOK"節(jié)點(diǎn)所在層值 2
      £lA2 二-=——
      "INVENTORY"節(jié)點(diǎn)所在層值 3類似于E12的計(jì)算方法并結(jié)合上述四種情況,將表格1和表格2中的所有單元格填 滿數(shù)值后,模式文檔擴(kuò)展鄰接矩陣和數(shù)據(jù)源文檔擴(kuò)展鄰接矩陣也隨之生成,如下所示表格1(模式文檔)
      INVENTORYIDBOOKTITLEAUTHORTELEINVENTORY12/32/31/31/32/3ID10000BOOK11/21/20TITLE100AUTHOR10TELE1 模式文檔擴(kuò)展鄰接矩陣如下
      f 12 / 32 / 31 / 31 / 32 / 3 "0100000011 / 21 / 20000100000010v000001 ,
      表格2 (數(shù)據(jù)源文檔)
      INVENTORYIDBOOKTITLEAUTHORDATEINVENTORY12/32/31/300ID10000BOOK11/200TITLE100AUTHOR00TELE0 數(shù)據(jù)源文檔擴(kuò)展鄰接矩陣如下
      f 12 / 32 / 31 /300、0100000011 /200000100000000I o00000 ,
      3.相似性計(jì)算。將生成的擴(kuò)展鄰接矩陣中的每個(gè)元素看成是向量的一個(gè)維度,然后從第一行開始 每行首尾相連,這樣就形成了兩個(gè)n*n維(n代表矩陣中每行、每列元素的個(gè)數(shù))的向量 Pi、P2,兩個(gè)文檔的相似性可以表示成兩個(gè)向量的余弦值(^汜,⑴,根據(jù)向量的性質(zhì)可知, cos(P1, P2)=向量PiP2的內(nèi)積除以(向量Pi的模乘以向量P2的模)。以圖3為例,根據(jù)具體實(shí)施方式
      2中的模式文檔擴(kuò)展鄰接矩陣和數(shù)據(jù)源文檔鄰接矩陣計(jì)算出coMP” P2)= 0. 8073,即為文檔一和文檔二的相似性值。附圖2a算法流程圖中1.輸入模式文檔D1和數(shù)據(jù)源文檔D2。2.根據(jù)模式文檔D1生成模式文檔列表Listl[n],根據(jù)數(shù)據(jù)源文檔D2和模式文檔 列表Listl [n]生成數(shù)據(jù)源文檔列表List2 [n]。3. Listl [i] % Listl [j]相比較生成 Pl[i] [j](其中 i,j = 1,2,3,4,5......,n)。4. List2[i]與 List2[j]相比較生成 P2[i] [j](其中 i, j = 1,2,3,4,5......,n)。5.根據(jù)Pl[i] [j]和P2[i] [j]計(jì)算余弦值,得到相似性結(jié)果。6.結(jié)束。附圖2b算法流程圖中Listl[i]與 Listl [j]相比較生成 Pl[i] [j](其中 i,j = 1,2,3,4,5......,n)1. i = 0。
      2. j = 0。3.如果i = j,則Pl[i][j] = 1 ;如果i乒j,分為四步①IF N[i] < N[j],THEN PI [i] [j] = 0 ;②IF N[i] > N [j] AND (Node [i] = null OR Node[j] = null), THEN Pl[i] [j] = 0 ;③IF N[i] > N[j]AND Node[i] ! = null AND Node[j] ! = null AND Node[i] 不為 Node[j]的祖先,THEN Pl[i] [j] = 0 ;④IF N[i] > N[j]AND Node[i] ! = null AND Node[j] ! = null AND Node[i] 為Node[j]的祖先,THEN Pl[i] [j]=節(jié)點(diǎn)j所在層值除以節(jié)點(diǎn)i所在層值。4.判斷i,j是否循環(huán)到最大值n,分三種情況①IF i < n, j < n, THENj++ ;返回第 3 步②IF i < n,j > n,THENi++;返回第 2 步③IF i > n,THEN Pl[i] [j]生成;附圖2c算法流程圖中List2[i]與 List2[j]相比較生成 P2[i] [j](其中 i,j = 1,2,3,4,5......,n)1. i = 0。2.j = 0。3.如果i = j,分兩步①IF Label2[i] ! = null, THEN P2[i] [j] = 1 ;②IF Label2[i] = null, THEN P2[i] [j] = 0.如果i興j,分為四步①IF N[i] < N[j], THEN P2[i] [j] = 0 ;
      ②IF N[i] > N [j] AND (Node [i] = null OR Node[j] = null), THEN P2[i] [j] = 0 ;③IF N[i] > N[j]AND Node[i] ! = null AND Node[j] ! = null AND Node[i] 不為 Node[j]的祖先,THEN P2[i] [j] = 0 ;④IF N[i] >N[j] AND Node[i] ! = null AND Node[j] ! = null AND Node[i] 為Node[j]的祖先,THEN P2[i] [j]=節(jié)點(diǎn)j所在層值除以節(jié)點(diǎn)i所在層值。4.判斷i,j是否循環(huán)到最大值n,分三種情況
      ①IF i<n,j < n,THEN j++ ;返回第 3 步
      ②IF i<n,j > n,THEN i++ ;返回第 2 步
      ③IF i>n,THEN P2[i] [j]生成。
      權(quán)利要求
      基于擴(kuò)展鄰接矩陣的XML文檔結(jié)構(gòu)及語義相似性計(jì)算方法,其特征在于該方法的具體步驟如下第1、首先進(jìn)行XML文檔樹的編碼XML文檔的DOM結(jié)構(gòu)可以看作是該文檔的樹形結(jié)構(gòu),其中節(jié)點(diǎn)屬性看作是此節(jié)點(diǎn)的子節(jié)點(diǎn),一個(gè)XML文檔可以看作是一個(gè)自上向下展開的樹;對此樹進(jìn)行編碼的方式為深度搜索方式,即采用深度搜索方法遍歷此樹,然后為節(jié)點(diǎn)依次編碼1,2,3,4......,直到最后一個(gè)節(jié)點(diǎn),記作節(jié)點(diǎn)編碼;樹中層的分配采用倒排方式,即樹的葉節(jié)點(diǎn)所在層記作第一層,然后依次向上推第二層、第三層......,直至根節(jié)點(diǎn);第2、對于兩個(gè)編碼后的文檔,要分別生成它們所對應(yīng)的鄰接矩陣第2.1、生成模式文檔節(jié)點(diǎn)列表和數(shù)據(jù)源文檔節(jié)點(diǎn)列表將模式文檔讀入以后,采用深度優(yōu)先搜索方法遍歷每個(gè)節(jié)點(diǎn);而對于節(jié)點(diǎn)的屬性,這里將之看作節(jié)點(diǎn)的一個(gè)子節(jié)點(diǎn);遍歷到任何一個(gè)節(jié)點(diǎn)的時(shí)候,抽取每個(gè)節(jié)點(diǎn)的標(biāo)簽信息、編碼信息、層信息、父節(jié)點(diǎn)信息組成NodeMessage類,然后依次添加到list列表中,形成模式文檔節(jié)點(diǎn)列表;對于數(shù)據(jù)源文檔,根據(jù)模式文檔節(jié)點(diǎn)列表的生成方法生成一個(gè)臨時(shí)節(jié)點(diǎn)列表,然后用模式文檔節(jié)點(diǎn)列表中的每個(gè)NodeMessage與臨時(shí)節(jié)點(diǎn)列表中的NodeMessage相比較,如果找到與模式文檔節(jié)點(diǎn)列表的NodeMessage相同的節(jié)點(diǎn),將其加入到數(shù)據(jù)源文檔節(jié)點(diǎn)列表中去,如果不能找到與模式文檔列表的NodeMessage相同的節(jié)點(diǎn),則在數(shù)據(jù)源文檔節(jié)點(diǎn)列表中加入空節(jié)點(diǎn);當(dāng)模式文檔節(jié)點(diǎn)列表中的每個(gè)節(jié)點(diǎn)都比較過之后,數(shù)據(jù)源文檔節(jié)點(diǎn)列表隨之生成;第2.2、生成模式擴(kuò)展鄰接矩陣和數(shù)據(jù)源擴(kuò)展鄰接矩陣假設(shè)模式文檔包含n個(gè)節(jié)點(diǎn),那么在模式文檔節(jié)點(diǎn)列表中就會(huì)有n條信息,而且這n個(gè)節(jié)點(diǎn)按照編碼順序1,2,3,4,5............排列;首先取節(jié)點(diǎn)i(i=1,2,3,4,5......)與節(jié)點(diǎn)j(j=1,2,3,4,5......)比較,這里分兩種情況①i=j(luò),當(dāng)i=j(luò)的時(shí)候,模式文檔擴(kuò)展鄰接矩陣的P[i][j]=1;對于數(shù)據(jù)源文檔的擴(kuò)展鄰接矩陣,如果節(jié)點(diǎn)為空節(jié)點(diǎn),則P[i][j]=0,如果節(jié)點(diǎn)不為空節(jié)點(diǎn),則P[i][j]=1;②i≠j,分為四種情況1)如果節(jié)點(diǎn)i的編碼大于節(jié)點(diǎn)j的編碼,那么P[i][j]=0;2)如果節(jié)點(diǎn)i的編碼小于節(jié)點(diǎn)j的編碼,但是節(jié)點(diǎn)i或節(jié)點(diǎn)j為空節(jié)點(diǎn),那么P[i][j]=0;3)如果節(jié)點(diǎn)i的編碼小于節(jié)點(diǎn)j的編碼,而且節(jié)點(diǎn)i與節(jié)點(diǎn)j不為空節(jié)點(diǎn),但是節(jié)點(diǎn)i不是節(jié)點(diǎn)j的父節(jié)點(diǎn)或祖先節(jié)點(diǎn),那么P[i][j]=0;4)如果節(jié)點(diǎn)i的編碼小于節(jié)點(diǎn)j的編碼,而且節(jié)點(diǎn)i與節(jié)點(diǎn)j中不包含空節(jié)點(diǎn),且節(jié)點(diǎn)i是節(jié)點(diǎn)j的父節(jié)點(diǎn)或祖先節(jié)點(diǎn),P[i][j]=節(jié)點(diǎn)j所在層值除以節(jié)點(diǎn)i所在層值;待所有節(jié)點(diǎn)全部相互比較之后,擴(kuò)展鄰接矩陣隨之生成;第3、根據(jù)cos(P1,P2)計(jì)算相似性數(shù)值將生成的擴(kuò)展鄰接矩陣中的每個(gè)元素看成是向量的一個(gè)維度,然后從第一行開始每行首尾相連,這樣就形成了兩個(gè)n*n維的向量,n代表矩陣中每行、每列元素的個(gè)數(shù),那么根據(jù)向量的性質(zhì)可得 <mrow><mi>cos</mi><mrow> <mo>(</mo> <msub><mi>P</mi><mn>1</mn> </msub> <mo>,</mo> <msub><mi>P</mi><mn>2</mn> </msub> <mo>)</mo></mrow><mo>=</mo><mfrac> <mrow><munderover> <mi>&Sigma;</mi> <mrow><mi>i</mi><mo>=</mo><mn>1</mn> </mrow> <mi>n</mi></munderover><munderover> <mi>&Sigma;</mi> <mrow><mi>j</mi><mo>=</mo><mn>1</mn> </mrow> <mi>n</mi></munderover><msub> <mi>P</mi> <mrow><mn>1</mn><mi>ij</mi> </mrow></msub><msub> <mi>P</mi> <mrow><mn>2</mn><mi>ij</mi> </mrow></msub> </mrow> <mrow><msqrt> <munderover><mi>&Sigma;</mi><mrow> <mi>i</mi> <mo>=</mo> <mn>1</mn></mrow><mi>n</mi> </munderover> <munderover><mi>&Sigma;</mi><mrow> <mi>j</mi> <mo>=</mo> <mn>1</mn></mrow><mi>n</mi> </munderover> <msup><msub> <mi>P</mi> <mrow><mn>1</mn><mi>ij</mi> </mrow></msub><mn>2</mn> </msup></msqrt><msqrt> <munderover><mi>&Sigma;</mi><mrow> <mi>i</mi> <mo>=</mo> <mn>1</mn></mrow><mi>n</mi> </munderover> <munderover><mi>&Sigma;</mi><mrow> <mi>j</mi> <mo>=</mo> <mn>1</mn></mrow><mi>n</mi> </munderover> <msup><msub> <mi>P</mi> <mrow><mn>2</mn><mi>ij</mi> </mrow></msub><mn>2</mn> </msup></msqrt> </mrow></mfrac><mo>.</mo> </mrow>FSA00000049056800011.tif
      全文摘要
      一種新的基于擴(kuò)展鄰接矩陣的XML文檔結(jié)構(gòu)及語義相似性計(jì)算方法,屬于數(shù)據(jù)挖掘技術(shù)領(lǐng)域。該方法具體包括XML文檔樹的編碼;對于編碼后的兩個(gè)文檔首先生成模式文檔節(jié)點(diǎn)列表和數(shù)據(jù)源文檔節(jié)點(diǎn)列表,然后生成模式擴(kuò)展鄰接矩陣和數(shù)據(jù)源擴(kuò)展鄰接矩陣(P1,P2);通過cos(P1,P2)計(jì)算XML文檔相似性。該方法充分考慮了不同層次節(jié)點(diǎn)對文檔貢獻(xiàn)的不同,且在XML文檔節(jié)點(diǎn)數(shù)為n的情況下,此方法的時(shí)間復(fù)雜度最高為O(n2),優(yōu)于編輯距離算法。
      文檔編號G06F17/30GK101799825SQ201010118060
      公開日2010年8月11日 申請日期2010年3月5日 優(yōu)先權(quán)日2010年3月5日
      發(fā)明者劉偉, 衛(wèi)金茂, 張學(xué)良, 楊汀, 袁曉潔 申請人:南開大學(xué)
      網(wǎng)友詢問留言 已有0條留言
      • 還沒有人留言評論。精彩留言會(huì)獲得點(diǎn)贊!
      1