專(zhuān)利名稱(chēng):自動(dòng)獲取網(wǎng)頁(yè)結(jié)構(gòu)化信息的分析方法
技術(shù)領(lǐng)域:
本發(fā)明涉及一種互聯(lián)網(wǎng)網(wǎng)頁(yè)分析方法,特別涉及一種自動(dòng)獲取網(wǎng)頁(yè)結(jié)構(gòu)化信息的分析方法。
背景技術(shù):
隨著互聯(lián)網(wǎng)技術(shù)的不斷發(fā)展,Web2. 0概念正在興起,信息的傳遞方向變得更加多元。在傳統(tǒng)的從少數(shù)點(diǎn)(大型新聞媒體,信息提供者)向全網(wǎng)(普通用戶(hù),信息消費(fèi)者)輻射的自頂向下的信息傳遞模式之后,由普通用戶(hù)產(chǎn)生而在網(wǎng)絡(luò)上不斷傳播的自底向上的信息流動(dòng)模式正變得越來(lái)越普遍。海量的內(nèi)容由普通用戶(hù)通過(guò)社交網(wǎng)絡(luò)、博客、微博、論壇等新興Web2. 0媒介產(chǎn)生出來(lái),并最終被其它用戶(hù)消費(fèi)。 這些用戶(hù)產(chǎn)生的海量?jī)?nèi)容蘊(yùn)含了大量有價(jià)值的信息和知識(shí),潛在的應(yīng)用包括輿情分析、垂直搜索、知識(shí)問(wèn)答等。為了能夠分析和利用它們,我們首要的任務(wù)就是要準(zhǔn)確地獲取它們。而擁有眾多用戶(hù)的傳統(tǒng)媒介論壇就成了其中主要的一部分。圖I繪示了一個(gè)典型的論壇列表頁(yè)。虛線的方框分別標(biāo)明了文章標(biāo)題、作者、發(fā)帖時(shí)間和最后回復(fù)時(shí)間。文章標(biāo)題、作者、發(fā)帖時(shí)間、最后回復(fù)時(shí)間這些是文章最重要的結(jié)構(gòu)化信息。實(shí)線的方框指示了數(shù)據(jù)記錄,每一條數(shù)據(jù)記錄對(duì)應(yīng)一篇論壇文章。所有實(shí)線框聯(lián)合起來(lái)的范圍,稱(chēng)為列表區(qū)域。因此,一個(gè)列表區(qū)域包含了多條數(shù)據(jù)記錄。通常情況下,論壇中的數(shù)據(jù)存儲(chǔ)于后臺(tái)數(shù)據(jù)庫(kù)中,當(dāng)用戶(hù)訪問(wèn)某一頁(yè)面時(shí),網(wǎng)站自動(dòng)將所需內(nèi)容填充到特定模板當(dāng)中,展示給用戶(hù)。網(wǎng)絡(luò)數(shù)據(jù)自動(dòng)采集器(也叫爬蟲(chóng)、蜘蛛或者Spider)不能直接訪問(wèn)后臺(tái)數(shù)據(jù)庫(kù),只能通過(guò)網(wǎng)頁(yè)訪問(wèn)論壇,然后對(duì)網(wǎng)頁(yè)數(shù)據(jù)進(jìn)行采集。但由于網(wǎng)站的多樣性,不同的網(wǎng)站會(huì)根據(jù)需求采用不同的論壇系統(tǒng),即便是同一個(gè)論壇系統(tǒng),也存在不同的版本以及個(gè)性化更改,這就造成了模板的多樣性,相互不一致。這就為數(shù)據(jù)的自動(dòng)結(jié)構(gòu)化采集帶來(lái)了很大的困難。對(duì)于上述網(wǎng)頁(yè)結(jié)構(gòu)化信息自動(dòng)分析問(wèn)題,已有的技術(shù)方案可以分為以下三類(lèi)I.采集整個(gè)網(wǎng)頁(yè),保存下來(lái),而對(duì)網(wǎng)頁(yè)中的結(jié)構(gòu)化的字段不作一一分析。在一般的通用搜索引擎中,例如Baidu和Google中,基本上采用這種回避式的策略。這種采集方式獲得的結(jié)果,無(wú)法展現(xiàn)出網(wǎng)頁(yè)各個(gè)細(xì)節(jié)的結(jié)構(gòu)化字段,大多只能展現(xiàn)整個(gè)網(wǎng)頁(yè)。2、直接考察網(wǎng)頁(yè)的DOM結(jié)構(gòu)的方法。DOM (Document Object Model,文檔對(duì)象模型),可以用來(lái)表示HTML、XML等文檔,使得這些文檔便于被處理。在DOM模型中,HTML或XML文檔被表達(dá)為樹(shù)狀結(jié)構(gòu),每一個(gè)節(jié)點(diǎn)對(duì)應(yīng)于文檔中的一對(duì)標(biāo)簽,分別表示節(jié)點(diǎn)的開(kāi)始和結(jié)束。為了在大規(guī)模應(yīng)用中能夠自動(dòng)分析網(wǎng)頁(yè)的結(jié)構(gòu)化內(nèi)容,人們提出了一些基于對(duì)網(wǎng)頁(yè)DOM結(jié)構(gòu)的直接考察的列表區(qū)域檢測(cè)方法??紤]包括標(biāo)簽類(lèi)型以及樹(shù)相似度等因素。這些方法帶有很強(qiáng)的經(jīng)驗(yàn)性,而網(wǎng)頁(yè)本身又具有很大的靈活性。同時(shí)這些方法往往著眼于甚至只考慮了 html語(yǔ)言的結(jié)構(gòu)特點(diǎn),而忽視了網(wǎng)頁(yè)本身的可視化特性(差別極大的代碼可能生成在表現(xiàn)視覺(jué)上完全一樣的網(wǎng)頁(yè)),所以會(huì)給檢測(cè)帶來(lái)較大的不穩(wěn)定性。3、人工標(biāo)注。當(dāng)需要精確獲取網(wǎng)頁(yè)數(shù)據(jù)的很多應(yīng)用中,前兩個(gè)方法就不再能滿(mǎn)足需求。在這種情況下,人工標(biāo)注往往成了最可行、甚至是唯一的方法。但通過(guò)人工標(biāo)注,不僅耗費(fèi)大量人力,而且時(shí)效性差,在網(wǎng)站格式發(fā)生變動(dòng)時(shí),響應(yīng)時(shí)間往往會(huì)比較長(zhǎng)。綜上所述,現(xiàn)有的網(wǎng)頁(yè)結(jié)構(gòu)化信息自動(dòng)分析方法存在精確度低、穩(wěn)定性低、時(shí)效性差的問(wèn)題。
發(fā)明內(nèi)容
本發(fā)明的目的是提供一種自動(dòng)獲取網(wǎng)頁(yè)結(jié)構(gòu)化信息的分析方法,以解決現(xiàn)有的網(wǎng)頁(yè)結(jié)構(gòu)化信息自動(dòng)分析方法存在精確度低、穩(wěn)定性低、時(shí)效性差的問(wèn)題。本發(fā)明提出一種自動(dòng)獲取網(wǎng)頁(yè)結(jié)構(gòu)化信息的分析方法,包括以下步驟(I)將原始列表頁(yè)面中每一個(gè)可顯示元素均渲染為矩形,并為每個(gè)矩形均賦予坐標(biāo)參數(shù); (2)根據(jù)矩形參數(shù)檢測(cè)T-Point,并將有效T-Point覆蓋的范圍作為列表區(qū)域,所述T-Point為相鄰矩形上方公共的頂點(diǎn);(3)從所述列表區(qū)域中檢測(cè)出所有數(shù)據(jù)記錄,所述數(shù)據(jù)記錄是指網(wǎng)頁(yè)列表頁(yè)面中記錄數(shù)據(jù)的單位;(4)將不同數(shù)據(jù)記錄中具有相同類(lèi)型或相同語(yǔ)義的數(shù)據(jù)項(xiàng)對(duì)應(yīng)起來(lái),形成數(shù)據(jù)項(xiàng)列;(5)對(duì)數(shù)據(jù)項(xiàng)列的語(yǔ)義進(jìn)行確認(rèn)。進(jìn)一步的,步驟(I)中,采用開(kāi)源引擎WebKi t對(duì)原始列表頁(yè)面進(jìn)行渲染。進(jìn)一步的,步驟(I)之后還包括步驟(11)將原始列表頁(yè)面的HTML文本中顯示效果的功能性節(jié)點(diǎn)去除,形成只含有真正內(nèi)容的DOM樹(shù);(12)將DOM樹(shù)中結(jié)構(gòu)用途的非顯示節(jié)點(diǎn)的幾何參數(shù)設(shè)置成包圍所有子節(jié)點(diǎn)的最小矩形;( 13)將所有的文本都封裝入〈text〉元素節(jié)點(diǎn)。進(jìn)一步的,步驟(2)中,所述T-Point包括相鄰矩形上方完全重合的頂點(diǎn),以及相鄰矩形上方?jīng)]有完全重合,且橫向距離不超過(guò)5的兩個(gè)頂點(diǎn)。進(jìn)一步的,步驟(2)中,將有效T-Point覆蓋的范圍作為列表區(qū)域之前包括從檢測(cè)到的T-Point中,找出并過(guò)濾掉無(wú)效的T-Point。進(jìn)一步的,找出并過(guò)濾掉無(wú)效的T-Point包括以下步驟(21)為每一個(gè)檢測(cè)到的T-Point賦予一個(gè)權(quán)重值,所述T-Point的權(quán)重值等于與其相鄰的T-Point的數(shù)量,所述相鄰的T-Point指橫坐標(biāo)或縱坐標(biāo)相同;(22)計(jì)算所有T-Point的平均權(quán)重值;(23)將權(quán)重偏離平均權(quán)重值的T-Point作為無(wú)效T-Point過(guò)濾掉。進(jìn)一步的,步驟(3)中,從所述列表區(qū)域中檢測(cè)出所有數(shù)據(jù)記錄包括(31)形成所述列表區(qū)域的DOM子樹(shù);(32)排除所述列表區(qū)域DOM子樹(shù)中,有效T-Point橫向形成的行的數(shù)目多于2的節(jié)點(diǎn);(33)排除所述列表區(qū)域DOM子樹(shù)中,有效T-Point只出現(xiàn)在矩形兩個(gè)豎邊界上的節(jié)點(diǎn);(34)排除所述列表區(qū)域DOM子樹(shù)中,有效T-Point只有一個(gè)的節(jié)點(diǎn);(35)將所述列表區(qū)域DOM子樹(shù)中剩余的每個(gè)節(jié)點(diǎn)作為數(shù)據(jù)記錄。進(jìn)一步的,步驟(4)中,利用聚類(lèi)方式將不同數(shù)據(jù)記錄中具有相同類(lèi)型或相同語(yǔ)義的數(shù)據(jù)項(xiàng)對(duì)應(yīng)起來(lái),并形成數(shù)據(jù)項(xiàng)列。進(jìn)一步的,所述聚類(lèi)方式所采用的距離函數(shù)為dist(m, n-i) = \JaT(domjdif /(no, i)) 4 bT{visualjiif /(n ,Ri))其中,dom_diff (n0, Ii1)表示節(jié)點(diǎn)nQ和Ii1的DOM樹(shù)結(jié)構(gòu)差異的特征向量,visual_diff (n0, Ii1)表示nQ和Ii1之間顯示差異的特征向量,a, b為混合權(quán)重向量。 進(jìn)一步的,步驟(5)中,對(duì)數(shù)據(jù)項(xiàng)列的語(yǔ)義進(jìn)行確認(rèn)包括(51)利用監(jiān)督學(xué)習(xí)方法獲得語(yǔ)義分析器;(52)利用語(yǔ)義分析器對(duì)數(shù)據(jù)項(xiàng)列的語(yǔ)義進(jìn)行確認(rèn)。相對(duì)于現(xiàn)有技術(shù),本發(fā)明的有益效果是I、本發(fā)明突破性地提出并應(yīng)用了網(wǎng)頁(yè)可視化特征點(diǎn)(T-Point),并利用網(wǎng)頁(yè)可視化特征點(diǎn)(T-Point)準(zhǔn)確地提取檢測(cè)列表區(qū)域,從而大大提高了網(wǎng)頁(yè)結(jié)構(gòu)化信息自動(dòng)分析的精確度、穩(wěn)定性和時(shí)效性。2、本發(fā)明將聚類(lèi)方法應(yīng)用于數(shù)據(jù)項(xiàng)的對(duì)齊,可以使得準(zhǔn)確率大大提高,同時(shí)運(yùn)行時(shí)間大大縮短。3、本發(fā)明提出計(jì)算節(jié)點(diǎn)距離的算法框架,這使得我們的方法在實(shí)際應(yīng)用時(shí)擁有很高的靈活性,可以適用于不同場(chǎng)合。4、本發(fā)明使用分類(lèi)器方法識(shí)別數(shù)據(jù)記錄的列表項(xiàng)語(yǔ)義,使數(shù)據(jù)項(xiàng)的語(yǔ)義分類(lèi)更加準(zhǔn)確。
圖I為典型的一個(gè)論壇列表頁(yè)示意圖;圖2為本發(fā)明自動(dòng)獲取網(wǎng)頁(yè)結(jié)構(gòu)化信息的分析方法的一種實(shí)施例流程圖;圖3為本發(fā)明預(yù)處理的一種詳細(xì)流程圖;圖4為圖I的頁(yè)面經(jīng)渲染后的示意圖;圖5為處于同一高度的兩個(gè)相鄰矩形形成一個(gè)T形結(jié)構(gòu)的示意圖;圖6為處于同一高度的兩個(gè)相鄰矩形形成另一個(gè)T形結(jié)構(gòu)的示意圖;圖7為本發(fā)明列表區(qū)域檢測(cè)的一種詳細(xì)流程圖;圖8為以圖4的頁(yè)面為基礎(chǔ)找出T-Point的頁(yè)面示意圖;圖9為本發(fā)明數(shù)據(jù)記錄檢測(cè)的一種詳細(xì)流程圖;圖10為節(jié)點(diǎn)兩個(gè)節(jié)點(diǎn)之間的幾何距離示意圖。
具體實(shí)施例方式請(qǐng)參見(jiàn)圖2,其為本發(fā)明自動(dòng)獲取網(wǎng)頁(yè)結(jié)構(gòu)化信息的分析方法的一種實(shí)施例流程圖,其包括預(yù)處理S210、列表區(qū)域檢測(cè)S220、數(shù)據(jù)記錄檢測(cè)S230、數(shù)據(jù)項(xiàng)對(duì)齊S240及數(shù)據(jù)列語(yǔ)義確認(rèn)S250五個(gè)步驟。預(yù)處理S210主要目的是將原始列表頁(yè)面中每一個(gè)可顯示元素均渲染為矩形,并為每個(gè)矩形均賦予坐標(biāo)參數(shù);列表區(qū)域檢測(cè)S220主要目的是根據(jù)矩形參數(shù)檢測(cè)T-Point,并將有效T-Point覆蓋的范圍作為列表區(qū)域,所述T-Point為相鄰矩形上方公共的頂點(diǎn);數(shù)據(jù)記錄檢測(cè)S230主要目的是從所述列表區(qū)域中檢測(cè)出所有數(shù)據(jù)記錄,所述數(shù)據(jù)記錄是指網(wǎng)頁(yè)列表頁(yè)面中記錄數(shù)據(jù)的單位;數(shù)據(jù)項(xiàng)對(duì)齊S240主要目的是將不同數(shù)據(jù)記錄中具有相同類(lèi)型或相同語(yǔ)義的數(shù)據(jù)項(xiàng)對(duì)應(yīng)起來(lái),形成數(shù)據(jù)項(xiàng)列;數(shù)據(jù)列語(yǔ)義確認(rèn)S250主要目的是對(duì)數(shù)據(jù)項(xiàng)列的語(yǔ)義進(jìn)行確認(rèn)。以下對(duì)本發(fā)明進(jìn)行分步詳細(xì)說(shuō)明。S210,預(yù)處理?;ヂ?lián)網(wǎng)上廣泛地使用超文本標(biāo)記語(yǔ)言(Hypertext Markup Language, HTML)來(lái)描述網(wǎng)頁(yè)的顯示內(nèi)容。瀏覽器根據(jù)HTML文檔中的定義,將文字、圖片、視頻、超鏈接等內(nèi)容可視化地以網(wǎng)頁(yè)形式呈現(xiàn)在用戶(hù)面前。需要注意的是,HTML關(guān)注于最終的顯示效果,而不是實(shí)現(xiàn)方法,于是,即使HTML文件有很大的差異,顯示效果也有可能是一樣的。所以,在得到 網(wǎng)頁(yè)原始的HTML代碼之后,我們首先獲取其可視化后的相關(guān)信息。在預(yù)處理過(guò)程中,在完成頁(yè)面渲染(步驟S211)的前提下,優(yōu)選的還可以清理多余節(jié)點(diǎn)(步驟S212),梳理可視化信息(步驟S213),將文本節(jié)點(diǎn)封裝入〈text〉標(biāo)簽中(步驟S214),以便于后續(xù)的計(jì)算。具體來(lái)說(shuō),請(qǐng)參見(jiàn)圖3,預(yù)處理又可以包括以下步驟S211,將原始列表頁(yè)面中每一個(gè)可顯示元素均渲染為矩形,并為每個(gè)矩形均賦予坐標(biāo)參數(shù)。本發(fā)明優(yōu)選采用開(kāi)源引擎WebKit對(duì)原始頁(yè)面進(jìn)行渲染,取得頁(yè)面真實(shí)的顯示效果。大部分網(wǎng)頁(yè)中的元素將會(huì)顯示在最終的網(wǎng)頁(yè)中,但也有少部分元素承擔(dān)著HTML語(yǔ)言本身相關(guān)的功能,在最終網(wǎng)頁(yè)中并沒(méi)有可顯示對(duì)象與其對(duì)應(yīng)。同時(shí),在網(wǎng)頁(yè)最終的渲染結(jié)果中,HTML的每一個(gè)可顯示元素將被顯示成一個(gè)矩形,以描述其大小及位置,以圖I的頁(yè)面為例,經(jīng)過(guò)渲染后便形成如圖4所示的可顯示頁(yè)面。對(duì)于可顯示元素,開(kāi)源引擎WebKit將返回其顯示矩形的參數(shù)(包括位置及大小),而對(duì)于其它具有某些特定功能的非顯示元素,開(kāi)源引擎WebKit返回O。S212,將原始列表頁(yè)面的HTML文本中顯示效果的功能性節(jié)點(diǎn)去除,形成只含有真正內(nèi)容的DOM樹(shù)。在HTML中除了包含有真正的網(wǎng)頁(yè)內(nèi)容外,還包含大量描述顯示效果的參數(shù)等功能性節(jié)點(diǎn)。在渲染結(jié)束后,可以將這些節(jié)點(diǎn)去除,從而得到只含有真正內(nèi)容的DOM樹(shù),使后續(xù)的計(jì)算更加簡(jiǎn)潔。具體來(lái)說(shuō),可以去除所有〈style〉,〈script〉,〈comments〉,〈link〉,<meta>等元素的節(jié)點(diǎn),去除了所有嵌入對(duì)象,如flash等,和各種處理指令。S213,從所述列表區(qū)域中檢測(cè)出所有數(shù)據(jù)記錄,所述數(shù)據(jù)記錄是指網(wǎng)頁(yè)列表頁(yè)面中記錄數(shù)據(jù)的單位。在清理多余節(jié)點(diǎn)之后,仍然存在一些結(jié)構(gòu)用途的非顯示節(jié)點(diǎn),它們的顯示信息為空。為了讓之后的處理保持一致性,將它們的幾何參數(shù)設(shè)置成包圍所有子節(jié)點(diǎn)的最小矩形。S214,將所有的文本都封裝入〈text〉元素節(jié)點(diǎn)。最后,為了簡(jiǎn)化后面的處理過(guò)程,將所有的文本都封裝入〈text〉元素節(jié)點(diǎn)。這樣就得到了以XML表現(xiàn)的原網(wǎng)頁(yè)包含有可視化信息的DOM樹(shù)結(jié)構(gòu)。S220,列表區(qū)域檢測(cè)。
以前的列表區(qū)域檢測(cè)方法通?;趯?duì)網(wǎng)頁(yè)DOM結(jié)構(gòu)的直接考察,考慮包括標(biāo)簽類(lèi)型以及樹(shù)相似度等因素。這些方法帶有很強(qiáng)的經(jīng)驗(yàn)性,而網(wǎng)頁(yè)本身又具有很大的靈活性,同時(shí)這些方法往往只考慮了 html語(yǔ)言的結(jié)構(gòu)特點(diǎn),忽視了 html是用于描述可視化界面這一本質(zhì)特征(差別極大的代碼可能都在表現(xiàn)視覺(jué)上完全一樣的網(wǎng)頁(yè)),所以會(huì)給檢測(cè)帶來(lái)較大的不穩(wěn)定性。本發(fā)明提出了使用網(wǎng)頁(yè)最終的渲染結(jié)果作為主要信息來(lái)源?;诮?jīng)過(guò)渲染的頁(yè)面可以發(fā)現(xiàn),T形特征點(diǎn)對(duì)列表有良好的區(qū)分能力,并對(duì)來(lái)自不同模板的頁(yè)面有優(yōu)秀的自適應(yīng)性能。具體來(lái)說(shuō),請(qǐng)參見(jiàn)圖5,當(dāng)兩個(gè)相鄰的矩形的一條豎直的邊重合,而上方的邊處于同一高度時(shí),會(huì)形成一個(gè)T形結(jié)構(gòu)。當(dāng)考慮一個(gè)經(jīng)渲染的頁(yè)面時(shí),由于頁(yè)面中存在的大量相鄰的單元格,所以會(huì)相應(yīng)產(chǎn)生大量這樣的微觀結(jié)構(gòu)。
其中,三條邊的交點(diǎn)是T形結(jié)構(gòu)最具代表性的特征,在本發(fā)明中定義為當(dāng)兩個(gè)元素的包圍矩形相鄰,且有公共上方頂點(diǎn)時(shí),共用頂點(diǎn)被稱(chēng)為T(mén)-Point。所以本發(fā)明以T-Point作為列表區(qū)域檢測(cè)的一個(gè)微觀特征。為了提高穩(wěn)定性,請(qǐng)參見(jiàn)圖6,可以將上方頂點(diǎn)沒(méi)有完全重合,但橫向距離不超過(guò)6的兩個(gè)頂點(diǎn)也同時(shí)認(rèn)為是一個(gè)T-Point。在系統(tǒng)實(shí)現(xiàn)中,優(yōu)選取S的值為I。列表區(qū)域檢測(cè)共分為兩步第一步就是根據(jù)頁(yè)面的可視化信息和T-Point的定義,檢測(cè)出所有的T-Point ;第二步則是要估計(jì)出屬于列表區(qū)域的T-Point集合,進(jìn)而找到列表區(qū)域及相應(yīng)的DOM節(jié)點(diǎn),請(qǐng)參見(jiàn)圖7,具體過(guò)程如下S221,根據(jù)矩形參數(shù)檢測(cè)T-Point。由于在預(yù)處理過(guò)程中,已經(jīng)將頁(yè)面中顯示矩形的參數(shù)(包括位置及大小)輸出,所以利用這些矩形參數(shù),很容易就能找出頁(yè)面中所有的T-Point。請(qǐng)參見(jiàn)圖8,其是以圖4的頁(yè)面為基礎(chǔ)找出T-Point的頁(yè)面示意圖。其中實(shí)心和空心的方塊都是頁(yè)面的T-Point。S222,將有效T-Point覆蓋的范圍作為列表區(qū)域。本發(fā)明所述的列表區(qū)域是指頁(yè)面上數(shù)據(jù)記錄所組成的區(qū)域,在圖I中實(shí)線框構(gòu)成的區(qū)域即列表區(qū)域。但是從圖4中T-Point的分布位置來(lái)看,根據(jù)步驟S221找出的T-Point,有一些是在列表區(qū)域之外的,因而這里應(yīng)當(dāng)從檢測(cè)到的T-Point中,找出并過(guò)濾掉無(wú)效的T-Point,以提高檢測(cè)的準(zhǔn)確性。具體確定列表區(qū)域的過(guò)程如下I)首先為每一個(gè)檢測(cè)到的T-Point賦予一個(gè)權(quán)重值,所述T-Point的權(quán)重值等于與其相鄰的T-Point的數(shù)量,所述相鄰的T-Point指橫坐標(biāo)或縱坐標(biāo)相同。2)計(jì)算所有T-Point的平均權(quán)重值,并將權(quán)重偏離平均權(quán)重值的T-Point作為無(wú)效T-Point過(guò)濾掉。以對(duì)圖8所示頁(yè)面檢測(cè)為例,以所有T-Point為頂點(diǎn)(實(shí)心和空心的方塊),并按照T-Point間的相鄰關(guān)系將T-Point進(jìn)行連接,可以構(gòu)造出一個(gè)無(wú)向圖。然后找出無(wú)向圖中的最大連通分量(即虛線標(biāo)出的部分),然后將權(quán)重偏離平均值較大的點(diǎn)作為噪聲過(guò)濾掉(即將實(shí)心方塊過(guò)濾掉),剩下的點(diǎn)(即空心方塊)作為有效T-point集合。對(duì)比圖I發(fā)現(xiàn),此時(shí)實(shí)心方塊T-Point覆蓋范圍正是原網(wǎng)頁(yè)中的列表區(qū)域。3)最后在網(wǎng)頁(yè)DOM樹(shù)上尋找到能夠包含所有構(gòu)成有效T-Point的元素的最小子樹(shù),并認(rèn)為其包含列表區(qū)域,從而可以確定頁(yè)面中所有的列表區(qū)域。
S230,數(shù)據(jù)記錄檢測(cè)。本發(fā)明的數(shù)據(jù)記錄是指網(wǎng)頁(yè)列表頁(yè)面中記錄數(shù)據(jù)的單位,即在圖I中,數(shù)據(jù)記錄顯示為單個(gè)實(shí)線框。在獲得列表區(qū)域以及有效T-Point集合的基礎(chǔ)上,通過(guò)檢測(cè)每一個(gè)節(jié)點(diǎn)來(lái)確認(rèn)所有可能的數(shù)據(jù)記錄項(xiàng)。對(duì)列表區(qū)域DOM子樹(shù)上的每一個(gè)節(jié)點(diǎn),請(qǐng)參見(jiàn)圖9,本發(fā)明可以采用如下步驟來(lái)檢測(cè)數(shù)據(jù)記錄S231,排除所述列表區(qū)域DOM子樹(shù)中,有效T-Point橫向形成的行的數(shù)目多于2的節(jié)點(diǎn)。
經(jīng)渲染后的頁(yè)面上,一條數(shù)據(jù)記錄所最外圍形成的邊界,必然也是由T-Point構(gòu)成的一個(gè)矩形,即由4個(gè)T-Point構(gòu)成兩行,而各數(shù)據(jù)項(xiàng)是包含在數(shù)據(jù)記錄中的一個(gè)個(gè)小矩形,因此若一個(gè)節(jié)點(diǎn)的有效T-Point構(gòu)成的行不止2個(gè),說(shuō)明該節(jié)點(diǎn)中包含多個(gè)并排關(guān)系的矩形,可能是由多個(gè)數(shù)據(jù)記錄組成的,也可能是一個(gè)列表區(qū)域,所以排除此類(lèi)節(jié)點(diǎn)。S232,排除所述列表區(qū)域DOM子樹(shù)中,有效T-Point只出現(xiàn)在矩形兩個(gè)豎邊界上的節(jié)點(diǎn)。對(duì)于一個(gè)數(shù)據(jù)記錄,其中必然包括多個(gè)數(shù)據(jù)項(xiàng),例如圖I所示單個(gè)實(shí)線框所示的數(shù)據(jù)記錄,其中涵蓋有“文章標(biāo)題”、“作者”、“回復(fù)時(shí)間”等多個(gè)數(shù)據(jù)項(xiàng)所顯示的矩形,即一個(gè)數(shù)據(jù)記錄中應(yīng)該包括多個(gè)矩形,所以如果一個(gè)節(jié)點(diǎn)中的有效T-Point只出現(xiàn)在矩形兩個(gè)豎邊界上,則說(shuō)明這個(gè)節(jié)點(diǎn)顯示的只是單一一個(gè)矩形,很有可能只是一個(gè)數(shù)據(jù)項(xiàng),或者甚至沒(méi)有形成矩形,所以要過(guò)濾掉此類(lèi)節(jié)點(diǎn)。S233,排除所述列表區(qū)域DOM子樹(shù)中,有效T-Point只有一個(gè)的節(jié)點(diǎn)。一條數(shù)據(jù)記錄必然會(huì)顯示為一個(gè)矩形,所以只有單一 T-Point的節(jié)點(diǎn)無(wú)法構(gòu)成矩形,必然不是數(shù)據(jù)記錄,需要排除。S234,將所述列表區(qū)域DOM子樹(shù)中剩余的每個(gè)節(jié)點(diǎn)作為數(shù)據(jù)記錄。S240,數(shù)據(jù)項(xiàng)對(duì)齊。本發(fā)明的目的是充分分析網(wǎng)頁(yè)的結(jié)構(gòu)化信息,其中網(wǎng)頁(yè)中的每一組數(shù)據(jù)記錄都共同包含很多擁有某些意義的數(shù)據(jù)項(xiàng),比如“文章標(biāo)題”、“作者”、“回復(fù)時(shí)間”等,而這些數(shù)據(jù)項(xiàng)的排列規(guī)則具有一定規(guī)律,具體的,他們?cè)陲@示時(shí)會(huì)形成列。但同時(shí),在不同的數(shù)據(jù)記錄中,可能存在著自身特有的數(shù)據(jù),以及諸如分隔符等輔助元素,使得不同數(shù)據(jù)記錄的格式并不整齊。這種不整齊當(dāng)只在考慮它們的DOM樹(shù)結(jié)構(gòu)時(shí),表現(xiàn)的尤為明顯。此步驟的任務(wù)就是將不同數(shù)據(jù)記錄中具有相同類(lèi)型或相同語(yǔ)義的數(shù)據(jù)項(xiàng)提取出來(lái)并對(duì)齊,形成數(shù)據(jù)項(xiàng)列。對(duì)于屬于同一意義下的數(shù)據(jù)項(xiàng),都具有一定的相似性,如結(jié)構(gòu)上所對(duì)應(yīng)的HTML節(jié)點(diǎn)標(biāo)簽相同、相應(yīng)的DOM子樹(shù)結(jié)構(gòu)相似,顯示上位置都處于同一列、有相近的大小等。本發(fā)明同時(shí)基于DOM樹(shù)的結(jié)構(gòu)特征以及相應(yīng)可視化特征,優(yōu)選地提出了以聚類(lèi)方式解決這一問(wèn)題。該任務(wù)被分為兩個(gè)子任務(wù)I)計(jì)算任意兩個(gè)節(jié)點(diǎn)的距離首先給出節(jié)點(diǎn)間的距離定義。本發(fā)明在距離度量的定義中融合了節(jié)點(diǎn)的樹(shù)結(jié)構(gòu)特征以及可視化特征,使得其性能更加可靠。具體來(lái)說(shuō),對(duì)于不屬于同一個(gè)數(shù)據(jù)項(xiàng)的兩個(gè)節(jié)點(diǎn)n0,ni我們的距離函數(shù)定義包含了分別描述DOM樹(shù)結(jié)構(gòu)之間差異與顯示效果差異的兩部分,如下
權(quán)利要求
1.一種自動(dòng)獲取網(wǎng)頁(yè)結(jié)構(gòu)化信息的分析方法,其特征在于,包括以下步驟 (1)將原始列表頁(yè)面中每一個(gè)可顯示元素均渲染為矩形,并為每個(gè)矩形均賦予坐標(biāo)參數(shù); (2)根據(jù)矩形參數(shù)檢測(cè)T-Point,并將有效T-Point覆蓋的范圍作為列表區(qū)域,所述T-Point為相鄰矩形上方公共的頂點(diǎn); (3)從所述列表區(qū)域中檢測(cè)出所有數(shù)據(jù)記錄,所述數(shù)據(jù)記錄是指網(wǎng)頁(yè)列表頁(yè)面中記錄數(shù)據(jù)的單位; (4)將不同數(shù)據(jù)記錄中具有相同類(lèi)型或相同語(yǔ)義的數(shù)據(jù)項(xiàng)對(duì)應(yīng)起來(lái),形成數(shù)據(jù)項(xiàng)列; (5)對(duì)數(shù)據(jù)項(xiàng)列的語(yǔ)義進(jìn)行確認(rèn)。
2.如權(quán)利要求I所述的自動(dòng)獲取網(wǎng)頁(yè)結(jié)構(gòu)化信息的分析方法,其特征在于,步驟(I)中,采用開(kāi)源引擎WebKit對(duì)原始列表頁(yè)面進(jìn)行渲染。
3.如權(quán)利要求I所述的自動(dòng)獲取網(wǎng)頁(yè)結(jié)構(gòu)化信息的分析方法,其特征在于,步驟(I)之后還包括步驟 (11)將原始列表頁(yè)面的HTML文本中顯示效果的功能性節(jié)點(diǎn)去除,形成只含有真正內(nèi)容的DOM樹(shù); (12)將DOM樹(shù)中結(jié)構(gòu)用途的非顯示節(jié)點(diǎn)的幾何參數(shù)設(shè)置成包圍所有子節(jié)點(diǎn)的最小矩形; (13)將所有的文本都封裝入〈text〉元素節(jié)點(diǎn)。
4.如權(quán)利要求I所述的自動(dòng)獲取網(wǎng)頁(yè)結(jié)構(gòu)化信息的分析方法,其特征在于,步驟(2)中,所述T-Point包括相鄰矩形上方完全重合的頂點(diǎn),以及相鄰矩形上方?jīng)]有完全重合,且橫向距離不超過(guò)S的兩個(gè)頂點(diǎn)。
5.如權(quán)利要求I所述的自動(dòng)獲取網(wǎng)頁(yè)結(jié)構(gòu)化信息的分析方法,其特征在于,步驟(2)中,將有效T-Point覆蓋的范圍作為列表區(qū)域之前包括從檢測(cè)到的T-Point中,找出并過(guò)濾掉無(wú)效的T-Point。
6.如權(quán)利要求5所述的自動(dòng)獲取網(wǎng)頁(yè)結(jié)構(gòu)化信息的分析方法,其特征在于,找出并過(guò)濾掉無(wú)效的T-Point包括以下步驟 (21)為每一個(gè)檢測(cè)到的T-Point賦予一個(gè)權(quán)重值,所述T-Point的權(quán)重值等于與其相鄰的T-Point的數(shù)量,所述相鄰的T-Point指橫坐標(biāo)或縱坐標(biāo)相同; (22)計(jì)算所有T-Point的平均權(quán)重值; (23)將權(quán)重偏離平均權(quán)重值的T-Point作為無(wú)效T-Point過(guò)濾掉。
7.如權(quán)利要求I所述的自動(dòng)獲取網(wǎng)頁(yè)結(jié)構(gòu)化信息的分析方法,其特征在于,步驟(3)中,從所述列表區(qū)域中檢測(cè)出所有數(shù)據(jù)記錄包括 (31)形成所述列表區(qū)域的DOM子樹(shù); (32)排除所述列表區(qū)域DOM子樹(shù)中,有效T-Point橫向形成的行的數(shù)目多于2的節(jié)點(diǎn); (33)排除所述列表區(qū)域DOM子樹(shù)中,有效T-Point只出現(xiàn)在矩形兩個(gè)豎邊界上的節(jié)占. (34)排除所述列表區(qū)域DOM子樹(shù)中,有效T-Point只有一個(gè)的節(jié)點(diǎn); (35)將所述列表區(qū)域DOM子樹(shù)中剩余的每個(gè)節(jié)點(diǎn)作為數(shù)據(jù)記錄。
8.如權(quán)利要求I所述的自動(dòng)獲取網(wǎng)頁(yè)結(jié)構(gòu)化信息的分析方法,其特征在于,步驟(4)中,利用聚類(lèi)方式將不同數(shù)據(jù)記錄中具有相同類(lèi)型或相同語(yǔ)義的數(shù)據(jù)項(xiàng)對(duì)應(yīng)起來(lái),并形成數(shù)據(jù)項(xiàng)列。
9.如權(quán)利要求8所述的自動(dòng)獲取網(wǎng)頁(yè)結(jié)構(gòu)化信息的分析方法,其特征在于,所述聚類(lèi)方式所采用的距離函數(shù)為-- dist(no,ni) = y aT(domjiiff(no, i)) + bT{visualjdif f{nQ,n\)) 其中,dom_diff (n0, Ii1)表示節(jié)點(diǎn)nQ和Ii1的DOM樹(shù)結(jié)構(gòu)差異的特征向量,visual_diff (n0, Ii1)表示nQ和Ii1之間顯示差異的特征向量,a, b為混合權(quán)重向量。
10.如權(quán)利要求I所述的自動(dòng)獲取網(wǎng)頁(yè)結(jié)構(gòu)化信息的分析方法,其特征在于,步驟(5) 中,對(duì)數(shù)據(jù)項(xiàng)列的語(yǔ)義進(jìn)行確認(rèn)包括 (51)利用監(jiān)督學(xué)習(xí)方法獲得語(yǔ)義分析器; (52)利用語(yǔ)義分析器對(duì)數(shù)據(jù)項(xiàng)列的語(yǔ)義進(jìn)行確認(rèn)。
全文摘要
本發(fā)明提出一種自動(dòng)獲取網(wǎng)頁(yè)結(jié)構(gòu)化信息的分析方法,包括以下步驟(1)將原始列表頁(yè)面中每一個(gè)可顯示元素均渲染為矩形,并為每個(gè)矩形均賦予坐標(biāo)參數(shù);(2)根據(jù)矩形參數(shù)檢測(cè)T-Point,并將有效T-Point覆蓋的范圍作為列表區(qū)域,所述T-Point為相鄰矩形上方公共的頂點(diǎn);(3)從所述列表區(qū)域中檢測(cè)出所有數(shù)據(jù)記錄,所述數(shù)據(jù)記錄是指網(wǎng)頁(yè)列表頁(yè)面中記錄數(shù)據(jù)的單位;(4)將不同數(shù)據(jù)記錄中具有相同類(lèi)型或相同語(yǔ)義的數(shù)據(jù)項(xiàng)對(duì)應(yīng)起來(lái),形成數(shù)據(jù)項(xiàng)列;(5)對(duì)數(shù)據(jù)項(xiàng)列的語(yǔ)義進(jìn)行確認(rèn)。本發(fā)明可以大大提高網(wǎng)頁(yè)結(jié)構(gòu)化信息自動(dòng)分析的精確度、穩(wěn)定性和時(shí)效性。
文檔編號(hào)G06F17/30GK102750372SQ201210202309
公開(kāi)日2012年10月24日 申請(qǐng)日期2012年6月15日 優(yōu)先權(quán)日2012年6月15日
發(fā)明者張志強(qiáng), 張長(zhǎng)水, 翁時(shí)鋒 申請(qǐng)人:翁時(shí)鋒