亚洲成年人黄色一级片,日本香港三级亚洲三级,黄色成人小视频,国产青草视频,国产一区二区久久精品,91在线免费公开视频,成年轻人网站色直接看

基于可擴(kuò)展語(yǔ)言查詢(xún)的網(wǎng)頁(yè)數(shù)據(jù)抽取方法

文檔序號(hào):6335907閱讀:245來(lái)源:國(guó)知局
專(zhuān)利名稱(chēng):基于可擴(kuò)展語(yǔ)言查詢(xún)的網(wǎng)頁(yè)數(shù)據(jù)抽取方法
技術(shù)領(lǐng)域
本發(fā)明屬于計(jì)算機(jī)數(shù)據(jù)庫(kù)技術(shù)領(lǐng)域,特別涉及一種基于可擴(kuò)展語(yǔ)言查詢(xún)的網(wǎng)頁(yè)數(shù) 據(jù)抽取方法。
背景技術(shù)
隨著Web領(lǐng)域的不斷發(fā)展,Web中數(shù)據(jù)信息的迅速增長(zhǎng),當(dāng)前各應(yīng)用領(lǐng)域?qū)eb數(shù) 據(jù)的需求不斷加大,雖然Web中包含了大量的結(jié)構(gòu)化和半結(jié)構(gòu)化數(shù)據(jù),但這些數(shù)據(jù)主要以 超文本標(biāo)記化語(yǔ)言HTML的形式通過(guò)瀏覽器提供給用戶(hù)瀏覽,難以直接用于數(shù)據(jù)挖掘和數(shù) 據(jù)集成等應(yīng)用之中,因此如何高效而準(zhǔn)確地從大量Web頁(yè)面中抽取結(jié)構(gòu)化和半結(jié)構(gòu)化數(shù)據(jù) 變得越來(lái)越重要,針對(duì)Web數(shù)據(jù)典型的抽取方法主要分為三類(lèi)基于HTML標(biāo)簽樹(shù)或文檔對(duì) 象模型DOM樹(shù)的方法;基于頁(yè)面結(jié)構(gòu)的方法;基于視覺(jué)信息的方法;基于HTML標(biāo)簽樹(shù)或文 檔對(duì)象模型DOM樹(shù)的方法主要包括XWRAP ,RoadRunneraixto,MDR和MDRII等;基于頁(yè)面 結(jié)構(gòu)的方法主要工作包括NoDoSE、DEByE和SG-WRAP等;基于視覺(jué)信息的方法主要以ViDRE 為主;
基于HTML標(biāo)簽樹(shù)或文檔對(duì)象模型DOM樹(shù)對(duì)頁(yè)面中數(shù)據(jù)記錄抽取是一種比較普遍的方 法,在抽取數(shù)據(jù)前,首先基于標(biāo)簽將Web頁(yè)面轉(zhuǎn)換為文檔對(duì)象模型DOM樹(shù),然后基于DOM樹(shù) 中結(jié)構(gòu)特征和自動(dòng)或半自動(dòng)的抽取規(guī)則從中抽取數(shù)據(jù),基于頁(yè)面結(jié)構(gòu)的方法首先制定頁(yè)面 中包含數(shù)據(jù)部分的結(jié)構(gòu),再根據(jù)這一結(jié)構(gòu)在頁(yè)面中尋找相似部分作為抽取結(jié)果,但是,對(duì)于 結(jié)構(gòu)簡(jiǎn)單的頁(yè)面,它可以得到很好的效果,如果頁(yè)面DOM樹(shù)中結(jié)構(gòu)復(fù)雜且數(shù)據(jù)區(qū)內(nèi)噪聲節(jié) 點(diǎn)過(guò)多,則處理效果不是很好,而且還無(wú)法支持嵌套結(jié)構(gòu)的數(shù)據(jù)識(shí)別;
基于網(wǎng)頁(yè)中視覺(jué)信息抽取數(shù)據(jù)的技術(shù)主要利用網(wǎng)頁(yè)設(shè)計(jì)中用戶(hù)瀏覽內(nèi)容的位置習(xí)慣 特征從相應(yīng)位置抽取數(shù)據(jù),微軟亞洲研究院的ViDRE提出的一種基于可視化特征的抽取方 法,該方法在某種程度上模擬人眼對(duì)頁(yè)面的識(shí)別過(guò)程,最終達(dá)到識(shí)別對(duì)象信息的目的,然 而,一方面,當(dāng)頁(yè)面沒(méi)有明顯的視覺(jué)特征時(shí),基于視覺(jué)的抽取效率會(huì)嚴(yán)重降低,而另一方面, 基于視覺(jué)的方式適用于對(duì)單個(gè)頁(yè)面進(jìn)行數(shù)據(jù)抽取,對(duì)于大量結(jié)構(gòu)相同的數(shù)據(jù)不同的頁(yè)面抽 取的效率將會(huì)很低;
以上方法僅適用于包含簡(jiǎn)單數(shù)據(jù)結(jié)構(gòu)的網(wǎng)頁(yè),如果網(wǎng)頁(yè)中的數(shù)據(jù)為層次關(guān)系則抽取的 結(jié)果將難以表示或產(chǎn)生屬性缺失,因此難以處理數(shù)據(jù)結(jié)構(gòu)復(fù)雜的頁(yè)面內(nèi)容;其次,這些方法 在初始化后直接生成抽取結(jié)果數(shù)據(jù),若其中有屬性識(shí)別錯(cuò)誤則難以及時(shí)修正;此外,這些方 法操作相對(duì)十分獨(dú)立,難以與現(xiàn)有數(shù)據(jù)庫(kù)系統(tǒng)進(jìn)行結(jié)合,因此缺乏對(duì)網(wǎng)頁(yè)數(shù)據(jù)的統(tǒng)一管理。

發(fā)明內(nèi)容
為彌補(bǔ)上述方法之不足,本發(fā)明提供一種基于可擴(kuò)展語(yǔ)言查詢(xún)的網(wǎng)頁(yè)數(shù)據(jù)抽取方法。本發(fā)明的技術(shù)方案是這樣實(shí)現(xiàn)的基于可擴(kuò)展語(yǔ)言查詢(xún)的網(wǎng)頁(yè)數(shù)據(jù)抽取方法,包 括以下步驟
6步驟1 確定Web頁(yè)面中抽取數(shù)據(jù)內(nèi)容時(shí)所對(duì)應(yīng)的模式結(jié)構(gòu); 模式結(jié)構(gòu)包括關(guān)系形式的表結(jié)構(gòu)和層次結(jié)構(gòu)2種,其中,表結(jié)構(gòu)的數(shù)據(jù)模式S由數(shù)據(jù) 實(shí)體名E和一組屬性集合AHA1,…,AJ所構(gòu)成,其中Ai (l<=i<=n,η表示屬性的數(shù)量)表 示屬性集合中的一個(gè)屬性,由屬性名稱(chēng)和屬性的數(shù)據(jù)類(lèi)型構(gòu)成,表示為<Ν,Τ>,其中N表示 屬性名稱(chēng),T表示屬性數(shù)據(jù)類(lèi)型,所述數(shù)據(jù)類(lèi)型T包括整數(shù)類(lèi)型integer、浮點(diǎn)類(lèi)型float和 字符串類(lèi)型string ;所述的層次結(jié)構(gòu)是指由基本類(lèi)型組成的復(fù)雜數(shù)據(jù)結(jié)構(gòu),其對(duì)應(yīng)的數(shù)據(jù)
模式表示為Si ‘,包含屬性 為1J,m為模式名丨中屬性的數(shù)量;
步驟2 定位Web頁(yè)面中數(shù)據(jù)區(qū)域、數(shù)據(jù)單元和屬性文本; 將HTML語(yǔ)言描述的Web頁(yè)面源代碼格式化為XML語(yǔ)言的文檔; 所述數(shù)據(jù)區(qū)域Da,是指在Web頁(yè)面中包含所有數(shù)據(jù)單元的最小邊界所包含的區(qū)域,定 位方法為在Web頁(yè)面對(duì)應(yīng)的文檔對(duì)象模型DOM結(jié)構(gòu)中對(duì)應(yīng)一個(gè)包含所有數(shù)據(jù)單元的最小 子樹(shù);
所述數(shù)據(jù)單元Du,表示W(wǎng)eb數(shù)據(jù)抽取所要獲得的一個(gè)模式結(jié)構(gòu)對(duì)應(yīng)的數(shù)據(jù)實(shí)體,通常 由模式中的屬性描述,在頁(yè)面中以一定的規(guī)律重復(fù)出現(xiàn);定位方法為在Web頁(yè)面的文檔對(duì) 象模型DOM樹(shù)中,找出頁(yè)面中數(shù)據(jù)實(shí)體各屬性?xún)?nèi)容所在的節(jié)點(diǎn),包含這些節(jié)點(diǎn)的最小子樹(shù) 就是數(shù)據(jù)單元;
所述屬性文本At,表示在Web頁(yè)面中包含數(shù)據(jù)模式屬性的屬性值的文本內(nèi)容,屬性值 通常在Web頁(yè)面的文檔對(duì)象模型DOM樹(shù)中元素節(jié)點(diǎn)的文本節(jié)點(diǎn)中,定位方法為在Web頁(yè)面 對(duì)應(yīng)的文檔對(duì)象模型DOM樹(shù)結(jié)構(gòu)中找出包含該屬性值文本的節(jié)點(diǎn); 步驟3 對(duì)步驟2中的屬性文本進(jìn)行語(yǔ)義標(biāo)注;
方法為對(duì)于每個(gè)數(shù)據(jù)單元中所包含的每個(gè)屬性文本都指定一個(gè)或多個(gè)數(shù)據(jù)模式中所 包含的屬性;
步驟4 生成數(shù)據(jù)單元節(jié)點(diǎn)路徑,包括以下步驟
步驟4-1 將步驟2得到的數(shù)據(jù)單元集合表示為=U=IUpU2,…,UJ,其中,Ui表示一個(gè) 數(shù)據(jù)單元,其中i=l,…,n;
步驟4-2 根據(jù)確定的數(shù)據(jù)單元Ui,確定其在頁(yè)面XML文檔中所對(duì)應(yīng)得元素節(jié)點(diǎn),該節(jié) 點(diǎn)表示為Ni,再根據(jù)XML文檔的結(jié)構(gòu)為元素節(jié)點(diǎn)Ni生成從根節(jié)點(diǎn)到該節(jié)點(diǎn)的路徑值,表示 為Pi;
步驟4-3 計(jì)算數(shù)據(jù)單元的路徑表達(dá)式,方法為
取一個(gè)數(shù)據(jù)單元節(jié)點(diǎn)的路徑,在路徑值Pi中,使用位置謂詞定位路徑表達(dá)式中的每一 個(gè)步,即由文檔根節(jié)點(diǎn)到數(shù)據(jù)單元對(duì)應(yīng)的元素節(jié)點(diǎn)所經(jīng)過(guò)的每一個(gè)節(jié)點(diǎn),取路徑表達(dá)式中 的每個(gè)節(jié)點(diǎn)標(biāo)簽,所有數(shù)據(jù)單元的路徑具有相同的標(biāo)簽序列,則從根節(jié)點(diǎn)開(kāi)始的標(biāo)簽序列 表示為T(mén),其中包括m個(gè)標(biāo)簽分別表示為(T1, T2,…,Tm),其中標(biāo)簽T1為根節(jié)點(diǎn)的標(biāo)簽,其余 標(biāo)簽依次類(lèi)推,每個(gè)節(jié)點(diǎn)的標(biāo)簽在其同標(biāo)簽兄弟節(jié)點(diǎn)中的位置序列表示為(Pil,…,Pim),其 中位置Pil為根節(jié)點(diǎn)標(biāo)簽的位置,其余標(biāo)簽依次類(lèi)推,則路徑值表示為
路徑值Pi=/標(biāo)簽1 [位置il]/標(biāo)簽2 [位置i2]/……/標(biāo)簽m[位置im], 即 Pi^Tjpn]/ T2 [pi2]/....../ TJpiffl]/
步驟4-4 對(duì)數(shù)據(jù)單元的路徑集合,計(jì)算從根節(jié)點(diǎn)開(kāi)始的最長(zhǎng)公共路徑LCP 所述最長(zhǎng)公共路徑是指所有數(shù)據(jù)單元節(jié)點(diǎn)的路徑共有的節(jié)點(diǎn)構(gòu)成的路徑,計(jì)算最長(zhǎng)公共路徑LCP的方法為對(duì)于數(shù)據(jù)單元節(jié)點(diǎn)的路徑,從根節(jié)點(diǎn)開(kāi)始的第一個(gè)標(biāo)簽位置開(kāi)始匹 配,如果所有數(shù)據(jù)單元節(jié)點(diǎn)路徑在當(dāng)前標(biāo)簽下的位置值相同,即Pli=P2i=. · · =Pni,則把當(dāng)前 標(biāo)簽和位置值順序添加到最長(zhǎng)公共路徑中,即ΙΧΡ+=/ \ [Pi],如果所有數(shù)據(jù)單元節(jié)點(diǎn)路徑在 當(dāng)前標(biāo)簽下的位置值存在不同值,則停止匹配,將當(dāng)前最長(zhǎng)公共路徑值作為最終的最長(zhǎng)公 共路徑值;
步驟4-5 化簡(jiǎn)步驟4-4計(jì)算得到的最長(zhǎng)公共路徑LCP ;
對(duì)于最長(zhǎng)公共路徑中的一個(gè)步所對(duì)應(yīng)的節(jié)點(diǎn),表示為IV對(duì)應(yīng)的標(biāo)簽為T(mén)i,如果其兄弟
節(jié)點(diǎn)中不存在與其標(biāo)簽相同,且具有相同后繼路徑為“/標(biāo)簽i+1/....../標(biāo)簽m”的子孫節(jié)
點(diǎn)的非數(shù)據(jù)單元節(jié)點(diǎn),則該節(jié)點(diǎn)的位置值在最長(zhǎng)公共路徑的表達(dá)式中可以省略;
步驟4-6 采用生成謂詞的方法計(jì)算局部路徑,所述的局部路徑是指每個(gè)節(jié)點(diǎn)私有的 節(jié)點(diǎn)構(gòu)成的路徑,它能準(zhǔn)確定位節(jié)點(diǎn)的謂詞表達(dá)式,能夠在定位所有的數(shù)據(jù)單元節(jié)點(diǎn)的同 時(shí)過(guò)濾不相關(guān)的節(jié)點(diǎn)
生成謂詞的方法為假設(shè)當(dāng)前步的節(jié)點(diǎn)的標(biāo)簽為T(mén)i,看當(dāng)前步中節(jié)點(diǎn)集合的所有兄弟
節(jié)點(diǎn)中,是否包含與其標(biāo)簽相同且具有相同后繼路徑為“/標(biāo)簽i+1/....../標(biāo)簽m”的子孫
節(jié)點(diǎn)的非數(shù)據(jù)單元節(jié)點(diǎn),若沒(méi)有則省略謂詞,若有則再查看當(dāng)前節(jié)點(diǎn)中是否有非數(shù)據(jù)單元 節(jié)點(diǎn)的XML屬性,能夠?qū)?dāng)前節(jié)點(diǎn)與符合上面條件的非數(shù)據(jù)單元節(jié)點(diǎn)區(qū)分,如果有這樣的 XML屬性則將該屬性作為謂詞表達(dá)式,若沒(méi)有則進(jìn)一步計(jì)算謂詞中位置值的范圍,把這些符 合條件的非數(shù)據(jù)單元節(jié)點(diǎn)稱(chēng)為噪音節(jié)點(diǎn);
所述計(jì)算謂詞中位置值的范圍的方法如下
如果噪音節(jié)點(diǎn)只出現(xiàn)在數(shù)據(jù)單元節(jié)點(diǎn)集合之前,則對(duì)于該標(biāo)簽表示數(shù)據(jù)單元節(jié)點(diǎn)的謂 詞中位置的范圍為從所有數(shù)據(jù)單元節(jié)點(diǎn)的標(biāo)簽i所對(duì)應(yīng)的節(jié)點(diǎn)位置中最小的位置值到最 后一個(gè)具有該標(biāo)簽的節(jié)點(diǎn);
如果噪音節(jié)點(diǎn)只出現(xiàn)在數(shù)據(jù)單元節(jié)點(diǎn)集合之后,則對(duì)于該標(biāo)簽表示數(shù)據(jù)單元節(jié)點(diǎn)的謂 詞中位置的范圍為從第一個(gè)到所有數(shù)據(jù)單元節(jié)點(diǎn)的標(biāo)簽i所對(duì)應(yīng)的節(jié)點(diǎn)位置中最大的位 置值;
如果數(shù)據(jù)節(jié)點(diǎn)被噪音節(jié)點(diǎn)有規(guī)律地分割,計(jì)算數(shù)據(jù)單元節(jié)點(diǎn)被噪音節(jié)點(diǎn)分割的間隔 Pinte,計(jì)算數(shù)據(jù)單元節(jié)點(diǎn)連續(xù)出現(xiàn)的長(zhǎng)度p。。nt,并計(jì)算所有數(shù)據(jù)單元節(jié)點(diǎn)的標(biāo)簽i所對(duì)應(yīng)的 節(jié)點(diǎn)位置中最小的位置值和最大的位置值,表示為pmin和pmax,則符合下面位置條件的節(jié) 點(diǎn)被認(rèn)為是數(shù)據(jù)單元路徑上的節(jié)點(diǎn)(1)節(jié)點(diǎn)位置值減去pmin后,對(duì)Pinte取模后的余數(shù)小 于p。。nt值;(2)節(jié)點(diǎn)位置值小于最大噪音節(jié)點(diǎn)位置值減去pmax再加1后的值; 步驟4-7 合并最長(zhǎng)公共路徑和局部路徑;
將最長(zhǎng)公共路徑和局部路徑合并,得到在Web頁(yè)面的XML文檔中定位數(shù)據(jù)單元的路徑
Pu ;
步驟5 計(jì)算抽取屬性值的路徑表達(dá)式,包括以下步驟; 步驟5-1 生成屬性節(jié)點(diǎn)定位的路徑;
假設(shè)在樣本數(shù)據(jù)中,模式屬性Ai的屬性值所在的節(jié)點(diǎn)相對(duì)于數(shù)據(jù)單元節(jié)點(diǎn)的路徑表示

/標(biāo)簽Ail [位置Ail] /標(biāo)簽Ai2 [位置Ai2]/……/標(biāo)簽Aik [位置Aik] 即 /TAil [pAn]/TAi2 [pAi2]/.../TAik[pAik],其中 TAij 表示標(biāo)簽 A^pAij 表示位置 Aij,其中j=l,…,k,標(biāo)簽Aik為包含屬性值節(jié)點(diǎn)的標(biāo)簽,位置Aik為該節(jié)點(diǎn)在其同標(biāo)簽兄弟節(jié)點(diǎn)中的 位置,則可以使用步驟4-5的方法,對(duì)屬性節(jié)點(diǎn)定位的路徑進(jìn)行化簡(jiǎn); 步驟5-2 確定屬性值抽取規(guī)則;
屬性值抽取規(guī)則適用于以下兩種情況1、多個(gè)屬性的屬性值同時(shí)包含于一個(gè)節(jié)點(diǎn)文本 中;2、節(jié)點(diǎn)文本內(nèi)容中包含非屬性值文本內(nèi)容;
假設(shè)節(jié)點(diǎn)文本中非屬性值文本內(nèi)容為固定文本,且在同一節(jié)點(diǎn)文本中的不同屬性的屬 性值之間也使用固定的文本進(jìn)行分割,只需計(jì)算出節(jié)點(diǎn)文本中分割屬性的固定字符串即可 分離屬性值文本或不同屬性的屬性值,方法為
首先取多個(gè)樣本W(wǎng)eb頁(yè)面,從中抽取包含相同屬性的節(jié)點(diǎn)文本,如果該節(jié)點(diǎn)文本中全 部字符均為屬性值內(nèi)容則直接抽取,否則提取公共子串并分割屬性,從節(jié)點(diǎn)文本中抽取屬 性值的規(guī)則如下
如果在節(jié)點(diǎn)文本中屬性Ai的屬性值之前有固定文本Textl,則首先對(duì)節(jié)點(diǎn)文本字符 串Str取固定文本Textl之后的子字符串Str-after,再查看屬性Ai的屬性值之后,如果 有固定文本Text2,則再對(duì)字符串Str-after取固定文本Text2之前的子字符串,表示為 Str-before ;
步驟6 生成數(shù)據(jù)抽取的XML查詢(xún)語(yǔ)句;
抽取結(jié)構(gòu)化數(shù)據(jù)的XML查詢(xún)語(yǔ)句的構(gòu)建主要是基于步驟4和步驟5所獲得的數(shù)據(jù)節(jié)點(diǎn) 路徑和屬性節(jié)點(diǎn)路徑,在使用XQuery查詢(xún)語(yǔ)言時(shí),語(yǔ)句的結(jié)構(gòu)主要是使用XQuery查詢(xún)語(yǔ)言 的FLWOR表達(dá)式,其中,各子句功能如下 FOR子句定位數(shù)據(jù)單元節(jié)點(diǎn)集合; LET子句增加謂詞變量;
WHERE子句對(duì)數(shù)據(jù)單元節(jié)點(diǎn)基于屬性路徑的謂詞進(jìn)行過(guò)濾; ORDER子句對(duì)結(jié)果進(jìn)行排序的規(guī)則; RETURN子句返回用戶(hù)所要的數(shù)據(jù)格式;
根據(jù)XML查詢(xún)語(yǔ)言XQuery語(yǔ)法特性,可以通過(guò)在RETURN子句中嵌套FLWOR子句的形 式抽取Web頁(yè)面中的層次結(jié)構(gòu)的數(shù)據(jù)內(nèi)容,下面為幾種根據(jù)不同需求構(gòu)建XML查詢(xún)語(yǔ)句的 方法
步驟6-1 在數(shù)據(jù)抽取結(jié)果為層次結(jié)構(gòu)時(shí),所要生成的XML查詢(xún)語(yǔ)句結(jié)構(gòu)構(gòu)建方法為
(1)語(yǔ)句的最外層使用固定的XML元素標(biāo)簽作為根節(jié)點(diǎn),中間為XML查詢(xún)表達(dá)式,對(duì)于 XQuery語(yǔ)言是FLWOR表達(dá)式,即使用如下形式< 根節(jié)點(diǎn)標(biāo)簽>XML查詢(xún)表達(dá)式</根節(jié)點(diǎn)標(biāo)
簽〉;
(2)在XML查詢(xún)表達(dá)式中,使用數(shù)據(jù)單元的路徑表達(dá)式定位數(shù)據(jù)單元節(jié)點(diǎn)變量,對(duì)于 XQuery語(yǔ)言使用FOR語(yǔ)句定位數(shù)據(jù)單元節(jié)點(diǎn)變量,同時(shí)可以使用LET語(yǔ)句和WHERE語(yǔ)句添 加定位數(shù)據(jù)單元節(jié)點(diǎn)的謂詞;
(3)在XML查詢(xún)表達(dá)式中,在查詢(xún)結(jié)果的輸出部分,使用數(shù)據(jù)模式中的屬性名或具有相 同語(yǔ)義的文本作為XML文檔中元素的標(biāo)簽,使用步驟5中生成的屬性節(jié)點(diǎn)定位的路徑和屬 性值抽取規(guī)則在數(shù)據(jù)單元節(jié)點(diǎn)變量下定位對(duì)應(yīng)屬性的屬性值文本,具體形式為< 屬性標(biāo) 簽> {屬性節(jié)點(diǎn)路徑和屬性值抽取規(guī)則構(gòu)成的表達(dá)式} </屬性標(biāo)簽>
XML查詢(xún)語(yǔ)句的整體結(jié)構(gòu)為<根節(jié)點(diǎn)標(biāo)簽>
{
FOR數(shù)據(jù)單元節(jié)點(diǎn)變量in數(shù)據(jù)單元節(jié)點(diǎn)路徑 [LET語(yǔ)句] [WHERE 語(yǔ)句]
RETURN〈數(shù)據(jù)實(shí)體名標(biāo)簽〉 <屬性1標(biāo)簽> {屬性1節(jié)點(diǎn)路徑和屬性值抽取規(guī)則構(gòu)成的表達(dá)式} </屬性1標(biāo)簽>
<屬性η標(biāo)簽> {屬性η節(jié)點(diǎn)路徑和屬性值抽取規(guī)則構(gòu)成的表達(dá)式} </屬性η標(biāo)簽> </數(shù)據(jù)實(shí)體名標(biāo)簽〉
}
</根節(jié)點(diǎn)標(biāo)簽>
步驟6-2 在數(shù)據(jù)抽取結(jié)果為關(guān)系形式的表結(jié)構(gòu)時(shí),所要生成的XML查詢(xún)語(yǔ)句結(jié)構(gòu)構(gòu)建 方法
1在XML查詢(xún)表達(dá)式中,使用數(shù)據(jù)單元的路徑表達(dá)式定位數(shù)據(jù)單元節(jié)點(diǎn)變量,對(duì)于 XQuery語(yǔ)言使用FOR語(yǔ)句定位數(shù)據(jù)單元節(jié)點(diǎn)變量,同時(shí)使用LET語(yǔ)句和WHERE語(yǔ)句添加定 位數(shù)據(jù)單元節(jié)點(diǎn)的謂詞;
2在XML查詢(xún)表達(dá)式中,在查詢(xún)結(jié)果的輸出部分,按照輸出結(jié)果的需求,依次排列由屬 性節(jié)點(diǎn)路徑和屬性值抽取規(guī)則構(gòu)成的表達(dá)式,不同屬性值的表達(dá)式之間用特殊的符號(hào)進(jìn)行 分隔,具體形式為{屬性1的屬性值抽取表達(dá)式}分隔符{屬性2的屬性值抽取表達(dá)式} 分隔符…分隔符{屬性η的屬性值抽取表達(dá)式} 步驟7 利用XML查詢(xún)語(yǔ)句抽取數(shù)據(jù);
使用XML查詢(xún)處理的執(zhí)行引擎,在目標(biāo)網(wǎng)頁(yè)轉(zhuǎn)換后的XML文檔上運(yùn)行XML查詢(xún)語(yǔ)句,即 可從格式化為XML文檔形式的網(wǎng)頁(yè)中抽取指定的數(shù)據(jù)內(nèi)容。本發(fā)明優(yōu)點(diǎn)本發(fā)明的基于XML查詢(xún)的Web數(shù)據(jù)抽取方法具有較廣泛的適用性 (1)本發(fā)明能夠生成精確的XML查詢(xún)語(yǔ)句,基于路徑表達(dá)式生成方法,對(duì)數(shù)據(jù)單元和屬性值 進(jìn)行精確的XPath表達(dá)式定位,從而保證XML查詢(xún)語(yǔ)句的正確性;(2)本發(fā)明具有較高的通 用性,所生成對(duì)數(shù)據(jù)源抽取數(shù)據(jù)的XML查詢(xún)語(yǔ)句可以運(yùn)行在數(shù)據(jù)庫(kù)或XML查詢(xún)規(guī)范執(zhí)行引 擎上,能夠與已有無(wú)縫融合;(3)本發(fā)明能夠適應(yīng)更加復(fù)雜的查詢(xún)結(jié)果輸出,通過(guò)調(diào)整結(jié)果 樹(shù)處子句的結(jié)構(gòu),支持抽取Web頁(yè)面中層次結(jié)構(gòu)的數(shù)據(jù)內(nèi)容,不僅僅局限于簡(jiǎn)單的關(guān)系結(jié) 構(gòu)。


圖1為本發(fā)明基于可擴(kuò)展語(yǔ)言查詢(xún)的網(wǎng)頁(yè)數(shù)據(jù)抽取方法某電子售書(shū)網(wǎng)站的Web數(shù) 據(jù)頁(yè)面示意圖2為本發(fā)明基于可擴(kuò)展語(yǔ)言查詢(xún)的網(wǎng)頁(yè)數(shù)據(jù)抽取方法流程圖; 圖3為本發(fā)明基于可擴(kuò)展語(yǔ)言查詢(xún)的網(wǎng)頁(yè)數(shù)據(jù)抽取方法數(shù)據(jù)單元在頁(yè)面文檔DOM樹(shù)的 位置示意圖。
具體實(shí)施例方式
下面結(jié)合附圖和實(shí)施例對(duì)本發(fā)明作進(jìn)一步詳細(xì)說(shuō)明
圖1為某電子售書(shū)網(wǎng)站的一個(gè)Web數(shù)據(jù)頁(yè)面,采用本發(fā)明方法的流程如圖2所示,步驟 如下
步驟1 確定從Web頁(yè)面中抽取數(shù)據(jù)內(nèi)容時(shí)所對(duì)應(yīng)的數(shù)據(jù)模式S,其中數(shù)據(jù)實(shí)體名稱(chēng)E 為“圖書(shū)”,屬性集合所包含的屬性名稱(chēng)和屬性的數(shù)據(jù)類(lèi)型如表1所示
表1為數(shù)據(jù)實(shí)體“圖書(shū)”所包含的屬性名稱(chēng)和屬性的數(shù)據(jù)類(lèi)型
權(quán)利要求
一種基于可擴(kuò)展語(yǔ)言查詢(xún)的網(wǎng)頁(yè)數(shù)據(jù)抽取方法,其特征在于包括以下步驟步驟1確定Web頁(yè)面中抽取數(shù)據(jù)內(nèi)容時(shí)所對(duì)應(yīng)的模式結(jié)構(gòu);步驟2定位Web頁(yè)面中數(shù)據(jù)區(qū)域、數(shù)據(jù)單元和屬性文本;步驟3對(duì)步驟2中的屬性文本進(jìn)行語(yǔ)義標(biāo)注;步驟4生成數(shù)據(jù)單元節(jié)點(diǎn)路徑步驟5計(jì)算抽取屬性值的路徑表達(dá)式;步驟6生成數(shù)據(jù)抽取的XML查詢(xún)語(yǔ)句;步驟7利用XML查詢(xún)語(yǔ)句抽取數(shù)據(jù)。
2.根據(jù)權(quán)利要求1所述的基于可擴(kuò)展語(yǔ)言查詢(xún)的網(wǎng)頁(yè)數(shù)據(jù)抽取方法,其特征在于步 驟1所述的模式結(jié)構(gòu)包括關(guān)系形式的表結(jié)構(gòu)和層次結(jié)構(gòu)兩種,其中,表結(jié)構(gòu)的數(shù)據(jù)模式S 由數(shù)據(jù)實(shí)體名E和一組屬性集合AHA1,…,AJ所構(gòu)成,其中Ai (l<=i<=n,η表示屬性的數(shù) 量)表示屬性集合中的一個(gè)屬性,由屬性名稱(chēng)和屬性的數(shù)據(jù)類(lèi)型構(gòu)成,表示為<Ν,Τ>,其中 N表示屬性名稱(chēng),T表示屬性數(shù)據(jù)類(lèi)型,所述數(shù)據(jù)類(lèi)型T包括整數(shù)類(lèi)型integer、浮點(diǎn)類(lèi)型 float和字符串類(lèi)型string;所述的層次結(jié)構(gòu)是指由基本類(lèi)型組成的復(fù)雜數(shù)據(jù)結(jié)構(gòu),其對(duì)應(yīng)的數(shù)據(jù)模式表示為Si ‘,包含屬性{4 U , m為模式名丨中屬性的數(shù)量。
3.根據(jù)權(quán)利要求1所述的基于可擴(kuò)展語(yǔ)言查詢(xún)的網(wǎng)頁(yè)數(shù)據(jù)抽取方法,其特征在于步 驟4所述生成數(shù)據(jù)單元節(jié)點(diǎn)路徑包括以下步驟步驟4-1 將步驟2得到的數(shù)據(jù)單元集合表示為=U=IUnU2,…,UJ,其中,Ui表示一個(gè) 數(shù)據(jù)單元,其中i=l,…,n;步驟4-2 根據(jù)確定的數(shù)據(jù)單元Ui,確定其在頁(yè)面XML文檔中所對(duì)應(yīng)得元素節(jié)點(diǎn),該節(jié) 點(diǎn)表示為Ni,再根據(jù)XML文檔的結(jié)構(gòu)為元素節(jié)點(diǎn)Ni生成從根節(jié)點(diǎn)到該節(jié)點(diǎn)的路徑值,表示 為Pi;步驟4-3 計(jì)算數(shù)據(jù)單元的路徑表達(dá)式,方法為取一個(gè)數(shù)據(jù)單元節(jié)點(diǎn)的路徑,在路徑值Pi中,使用位置謂詞定位路徑表達(dá)式中的每一 個(gè)步,即由文檔根節(jié)點(diǎn)到數(shù)據(jù)單元對(duì)應(yīng)的元素節(jié)點(diǎn)所經(jīng)過(guò)的每一個(gè)節(jié)點(diǎn),取路徑表達(dá)式中 的每個(gè)節(jié)點(diǎn)標(biāo)簽,所有數(shù)據(jù)單元的路徑具有相同的標(biāo)簽序列,則從根節(jié)點(diǎn)開(kāi)始的標(biāo)簽序列 表示為T(mén),其中包括m個(gè)標(biāo)簽分別表示為(T1, T2,…,Tm),其中標(biāo)簽T1為根節(jié)點(diǎn)的標(biāo)簽,其余 標(biāo)簽依次類(lèi)推,每個(gè)節(jié)點(diǎn)的標(biāo)簽在其同標(biāo)簽兄弟節(jié)點(diǎn)中的位置序列表示為(Pil,…,Pim),其 中位置Pil為根節(jié)點(diǎn)標(biāo)簽的位置,其余標(biāo)簽依次類(lèi)推,則路徑值表示為路徑值Pi=/標(biāo)簽1 [位置il]/標(biāo)簽2 [位置i2]/……/標(biāo)簽m[位置im], 即 Pi=/T\ [pn]/ T2 [pi2]/....../ TJpim]/步驟4-4 對(duì)數(shù)據(jù)單元的路徑集合,計(jì)算從根節(jié)點(diǎn)開(kāi)始的最長(zhǎng)公共路徑LCP 所述最長(zhǎng)公共路徑是指所有數(shù)據(jù)單元節(jié)點(diǎn)的路徑共有的節(jié)點(diǎn)構(gòu)成的路徑,計(jì)算最長(zhǎng)公 共路徑LCP的方法為對(duì)于數(shù)據(jù)單元節(jié)點(diǎn)的路徑,從根節(jié)點(diǎn)開(kāi)始的第一個(gè)標(biāo)簽位置開(kāi)始匹 配,如果所有數(shù)據(jù)單元節(jié)點(diǎn)路徑在當(dāng)前標(biāo)簽下的位置值相同,即Pli=P2i=. · · =Pni,則把當(dāng)前 標(biāo)簽和位置值順序添加到最長(zhǎng)公共路徑中,即ΙΧΡ+=/ \ [Pi],如果所有數(shù)據(jù)單元節(jié)點(diǎn)路徑在 當(dāng)前標(biāo)簽下的位置值存在不同值,則停止匹配,將當(dāng)前最長(zhǎng)公共路徑值作為最終的最長(zhǎng)公共路徑值;步驟4-5 化簡(jiǎn)步驟4-4計(jì)算得到的最長(zhǎng)公共路徑LCP ;對(duì)于最長(zhǎng)公共路徑中的一個(gè)步所對(duì)應(yīng)的節(jié)點(diǎn),表示為ni,對(duì)應(yīng)的標(biāo)簽為T(mén)i,如果其兄弟節(jié)點(diǎn)中不存在與其標(biāo)簽相同,且具有相同后繼路徑為“/標(biāo)簽i+1/....../標(biāo)簽m”的子孫節(jié)點(diǎn)的非數(shù)據(jù)單元節(jié)點(diǎn),則該節(jié)點(diǎn)的位置值在最長(zhǎng)公共路徑的表達(dá)式中可以省略;步驟4-6 采用生成謂詞的方法計(jì)算局部路徑,所述的局部路徑是指每個(gè)節(jié)點(diǎn)私有的 節(jié)點(diǎn)構(gòu)成的路徑生成謂詞的方法為假設(shè)當(dāng)前步的節(jié)點(diǎn)的標(biāo)簽為T(mén)i,看當(dāng)前步中節(jié)點(diǎn)集合的所有兄弟節(jié)點(diǎn)中,是否包含與其標(biāo)簽相同且具有相同后繼路徑為“/標(biāo)簽i+1/....../標(biāo)簽m”的子孫節(jié)點(diǎn)的非數(shù)據(jù)單元節(jié)點(diǎn),若沒(méi)有則省略謂詞,若有則再查看當(dāng)前節(jié)點(diǎn)中是否有非數(shù)據(jù)單元 節(jié)點(diǎn)的XML屬性,能夠?qū)?dāng)前節(jié)點(diǎn)與符合上面條件的非數(shù)據(jù)單元節(jié)點(diǎn)區(qū)分,如果有這樣的 XML屬性則將該屬性作為謂詞表達(dá)式,若沒(méi)有則進(jìn)一步計(jì)算謂詞中位置值的范圍,把這些符 合條件的非數(shù)據(jù)單元節(jié)點(diǎn)稱(chēng)為噪音節(jié)點(diǎn);所述計(jì)算謂詞中位置值的范圍的方法如下如果噪音節(jié)點(diǎn)只出現(xiàn)在數(shù)據(jù)單元節(jié)點(diǎn)集合之前,則對(duì)于該標(biāo)簽表示數(shù)據(jù)單元節(jié)點(diǎn)的謂 詞中位置的范圍為從所有數(shù)據(jù)單元節(jié)點(diǎn)的標(biāo)簽i所對(duì)應(yīng)的節(jié)點(diǎn)位置中最小的位置值到最 后一個(gè)具有該標(biāo)簽的節(jié)點(diǎn);如果噪音節(jié)點(diǎn)只出現(xiàn)在數(shù)據(jù)單元節(jié)點(diǎn)集合之后,則對(duì)于該標(biāo)簽表示數(shù)據(jù)單元節(jié)點(diǎn)的謂 詞中位置的范圍為從第一個(gè)到所有數(shù)據(jù)單元節(jié)點(diǎn)的標(biāo)簽i所對(duì)應(yīng)的節(jié)點(diǎn)位置中最大的位 置值;如果數(shù)據(jù)節(jié)點(diǎn)被噪音節(jié)點(diǎn)有規(guī)律地分割,計(jì)算數(shù)據(jù)單元節(jié)點(diǎn)被噪音節(jié)點(diǎn)分割的間隔 Pinte,計(jì)算數(shù)據(jù)單元節(jié)點(diǎn)連續(xù)出現(xiàn)的長(zhǎng)度p。。nt,并計(jì)算所有數(shù)據(jù)單元節(jié)點(diǎn)的標(biāo)簽i所對(duì)應(yīng)的 節(jié)點(diǎn)位置中最小的位置值和最大的位置值,表示為pmin和pmax,則符合下面位置條件的節(jié) 點(diǎn)被認(rèn)為是數(shù)據(jù)單元路徑上的節(jié)點(diǎn)(1)節(jié)點(diǎn)位置值減去pmin后,對(duì)Pinte取模后的余數(shù)小 于p。。nt值;(2)節(jié)點(diǎn)位置值小于最大噪音節(jié)點(diǎn)位置值減去pmax再加1后的值; 步驟4-7 合并最長(zhǎng)公共路徑和局部路徑;將最長(zhǎng)公共路徑和局部路徑合并,得到在Web頁(yè)面的XML文檔中定位數(shù)據(jù)單元的路徑Pu。
4.根據(jù)權(quán)利要求1所述的基于可擴(kuò)展語(yǔ)言查詢(xún)的網(wǎng)頁(yè)數(shù)據(jù)抽取方法,其特征在于 步驟5所述的計(jì)算抽取屬性值的路徑表達(dá)式包括以下步驟 步驟5-1 生成屬性節(jié)點(diǎn)定位的路徑;假設(shè)在樣本數(shù)據(jù)中,模式屬性Ai的屬性值所在的節(jié)點(diǎn)相對(duì)于數(shù)據(jù)單元節(jié)點(diǎn)的路徑表示為/標(biāo)簽Ail [位置Ail] /標(biāo)簽Ai2 [位置Ai2]/……/標(biāo)簽Aik [位置Aik] 即 /TAil [pAn]/TAi2 [pAi2]/.../TAik[pAik],其中 TAij 表示標(biāo)簽 A^pAij 表示位置 Aij,其中 j=l,…,k,標(biāo)簽Aik為包含屬性值節(jié)點(diǎn)的標(biāo)簽,位置Aik為該節(jié)點(diǎn)在其同標(biāo)簽兄弟節(jié)點(diǎn)中的 位置,則可以使用步驟4-5的方法,對(duì)屬性節(jié)點(diǎn)定位的路徑進(jìn)行化簡(jiǎn); 步驟5-2 確定屬性值抽取規(guī)則;屬性值抽取規(guī)則適用于以下兩種情況1)、多個(gè)屬性的屬性值同時(shí)包含于一個(gè)節(jié)點(diǎn)文本中;2)、節(jié)點(diǎn)文本內(nèi)容中包含非屬性值文本內(nèi)容;假設(shè)節(jié)點(diǎn)文本中非屬性值文本內(nèi)容為固定文本,且在同一節(jié)點(diǎn)文本中的不同屬性的屬 性值之間也使用固定的文本進(jìn)行分割,只需計(jì)算出節(jié)點(diǎn)文本中分割屬性的固定字符串即可 分離屬性值文本或不同屬性的屬性值,方法為首先取多個(gè)樣本W(wǎng)eb頁(yè)面,從中抽取包含相同屬性的節(jié)點(diǎn)文本,如果該節(jié)點(diǎn)文本中全 部字符均為屬性值內(nèi)容則直接抽取,否則提取公共子串并分割屬性,從節(jié)點(diǎn)文本中抽取屬 性值的規(guī)則如下如果在節(jié)點(diǎn)文本中屬性Ai的屬性值之前有固定文本Textl,則首先對(duì)節(jié)點(diǎn)文本字符 串Str取固定文本Textl之后的子字符串Str-after,再查看屬性Ai的屬性值之后,如果 有固定文本Text2,則再對(duì)字符串Str-after取固定文本Text2之前的子字符串,表示為 Str—before。
5.根據(jù)權(quán)利要求1所述的基于可擴(kuò)展語(yǔ)言查詢(xún)的網(wǎng)頁(yè)數(shù)據(jù)抽取方法,其特征在于步 驟6所述的生成數(shù)據(jù)抽取的XML查詢(xún)語(yǔ)句包括以下步驟步驟6-1 在數(shù)據(jù)抽取結(jié)果為層次結(jié)構(gòu)時(shí),所要生成的XML查詢(xún)語(yǔ)句結(jié)構(gòu)構(gòu)建方法為(1)語(yǔ)句的最外層使用固定的XML元素標(biāo)簽作為根節(jié)點(diǎn),中間為XML查詢(xún)表達(dá)式,對(duì)于 XQuery語(yǔ)言是FLWOR表達(dá)式,即使用如下形式< 根節(jié)點(diǎn)標(biāo)簽>XML查詢(xún)表達(dá)式</根節(jié)點(diǎn)標(biāo) 簽〉;(2)在XML查詢(xún)表達(dá)式中,使用數(shù)據(jù)單元的路徑表達(dá)式定位數(shù)據(jù)單元節(jié)點(diǎn)變量,對(duì)于 XQuery語(yǔ)言使用FOR語(yǔ)句定位數(shù)據(jù)單元節(jié)點(diǎn)變量,同時(shí)可以使用LET語(yǔ)句和WHERE語(yǔ)句添 加定位數(shù)據(jù)單元節(jié)點(diǎn)的謂詞;(3)在XML查詢(xún)表達(dá)式中,在查詢(xún)結(jié)果的輸出部分,使用數(shù)據(jù)模式中的屬性名或具有相 同語(yǔ)義的文本作為XML文檔中元素的標(biāo)簽,使用步驟5中生成的屬性節(jié)點(diǎn)定位的路徑和屬 性值抽取規(guī)則在數(shù)據(jù)單元節(jié)點(diǎn)變量下定位對(duì)應(yīng)屬性的屬性值文本,具體形式為< 屬性標(biāo) 簽> {屬性節(jié)點(diǎn)路徑和屬性值抽取規(guī)則構(gòu)成的表達(dá)式} </屬性標(biāo)簽>XML查詢(xún)語(yǔ)句的整體結(jié)構(gòu)為<根節(jié)點(diǎn)標(biāo)簽>{FOR數(shù)據(jù)單元節(jié)點(diǎn)變量in數(shù)據(jù)單元節(jié)點(diǎn)路徑[LET語(yǔ)句][WHERE 語(yǔ)句]RETURN〈數(shù)據(jù)實(shí)體名標(biāo)簽〉 <屬性1標(biāo)簽> {屬性1節(jié)點(diǎn)路徑和屬性值抽取規(guī)則構(gòu)成的表達(dá)式} </屬性1標(biāo)簽><屬性η標(biāo)簽> {屬性η節(jié)點(diǎn)路徑和屬性值抽取規(guī)則構(gòu)成的表達(dá)式} </屬性η標(biāo)簽> </數(shù)據(jù)實(shí)體名標(biāo)簽〉}</根節(jié)點(diǎn)標(biāo)簽>步驟6-2 在數(shù)據(jù)抽取結(jié)果為關(guān)系形式的表結(jié)構(gòu)時(shí),所要生成的XML查詢(xún)語(yǔ)句結(jié)構(gòu)構(gòu)建 方法(1)在XML查詢(xún)表達(dá)式中,使用數(shù)據(jù)單元的路徑表達(dá)式定位數(shù)據(jù)單元節(jié)點(diǎn)變量,對(duì)于 XQuery語(yǔ)言使用FOR語(yǔ)句定位數(shù)據(jù)單元節(jié)點(diǎn)變量,同時(shí)使用LET語(yǔ)句和WHERE語(yǔ)句添加定 位數(shù)據(jù)單元節(jié)點(diǎn)的謂詞;(2)在XML查詢(xún)表達(dá)式中,在查詢(xún)結(jié)果的輸出部分,按照輸出結(jié)果的需求,依次排列由 屬性節(jié)點(diǎn)路徑和屬性值抽取規(guī)則構(gòu)成的表達(dá)式,不同屬性值的表達(dá)式之間用特殊的符號(hào)進(jìn) 行分隔,具體形式為{屬性1的屬性值抽取表達(dá)式}分隔符{屬性2的屬性值抽取表達(dá)式} 分隔符…分隔符{屬性η的屬性值抽取表達(dá)式}。
全文摘要
一種基于可擴(kuò)展語(yǔ)言查詢(xún)的網(wǎng)頁(yè)數(shù)據(jù)抽取方法,屬于計(jì)算機(jī)數(shù)據(jù)庫(kù)技術(shù)領(lǐng)域,包括以下步驟確定Web頁(yè)面中抽取數(shù)據(jù)內(nèi)容時(shí)所對(duì)應(yīng)的模式結(jié)構(gòu);定位Web頁(yè)面中數(shù)據(jù)區(qū)域、數(shù)據(jù)單元和屬性文本;對(duì)屬性文本進(jìn)行語(yǔ)義標(biāo)注;生成數(shù)據(jù)單元節(jié)點(diǎn)路徑計(jì)算抽取屬性值的路徑表達(dá)式;生成數(shù)據(jù)抽取的XML查詢(xún)語(yǔ)句;利用XML查詢(xún)語(yǔ)句抽取數(shù)據(jù),本發(fā)明能夠生成精確的XML查詢(xún)語(yǔ)句,保證XML查詢(xún)語(yǔ)句的正確性,本發(fā)明具有較高的通用性,能夠與已有無(wú)縫融合,本發(fā)明能夠適應(yīng)更加復(fù)雜的查詢(xún)結(jié)果輸出。
文檔編號(hào)G06F17/30GK101984434SQ201010545520
公開(kāi)日2011年3月9日 申請(qǐng)日期2010年11月16日 優(yōu)先權(quán)日2010年11月16日
發(fā)明者于戈, 岳德君, 王波濤, 聶鐵錚 申請(qǐng)人:東北大學(xué)
網(wǎng)友詢(xún)問(wèn)留言 已有0條留言
  • 還沒(méi)有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1