国产精品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>

      網(wǎng)頁正文抽取方法和裝置的制作方法

      文檔序號(hào):6578011閱讀:191來源:國知局

      專利名稱::網(wǎng)頁正文抽取方法和裝置的制作方法
      技術(shù)領(lǐng)域
      :本發(fā)明涉及信息處理領(lǐng)域,具體而言,涉及一種網(wǎng)頁正文抽取方法和裝置。
      背景技術(shù)
      :隨著互聯(lián)網(wǎng)信息技術(shù)的不斷發(fā)展,互聯(lián)網(wǎng)的信息量日益膨脹。近年來,全球因特網(wǎng)上的信息數(shù)據(jù)正以爆炸式的速度在增長。據(jù)IDC報(bào)告稱,從現(xiàn)在到2010年,預(yù)計(jì)信息量將以每年57%的速度增長,在2010年信息總量將達(dá)到988EB(1EB=10億GB),約為2006年的6倍,相當(dāng)于有史以來所有書籍?dāng)?shù)字信息量的1800萬倍。面對(duì)如此巨大的互聯(lián)網(wǎng)信息庫,如何更好的理解這海量的信息一直是信息處理領(lǐng)域內(nèi)的關(guān)鍵問題。雖然說XML可以被認(rèn)為是web中的通用語,但是,當(dāng)前幾乎所有可以得到的網(wǎng)絡(luò)信息都是按照HTML格式寫成的網(wǎng)頁,而且這種狀況在短期內(nèi)很難改變(參見非專利文獻(xiàn)[1]"GiacomoFiumara.AutomatedInformationExtractionfromWebSource:aSurvey.SalitaSperone31,1-98166Messina,Italy”)。而HTML是一種面向顯示的標(biāo)記性語言,主要是為了方便瀏覽器顯示網(wǎng)頁用,對(duì)人來說,有很多無用的信息,尤其是在網(wǎng)頁上引入廣告后,無用信息就更多了,所以要想更好地理解網(wǎng)絡(luò)上浩瀚的信息,從HTML格式的網(wǎng)頁中提取正文信息是必不可少的前提條件。因此,需要一種網(wǎng)頁正文抽取方法,以便對(duì)網(wǎng)絡(luò)上的結(jié)構(gòu)化文檔,如網(wǎng)頁、XML文檔等,采用一定的技術(shù)手段提取其中的正文內(nèi)容。傳統(tǒng)的網(wǎng)頁數(shù)據(jù)抽取方法,是使用包裝器(wrapper)來抽取網(wǎng)頁中感興趣的數(shù)據(jù)。包裝器是一個(gè)程序,它從HTML文檔中讀取特定的內(nèi)容,并用一定的格式保存下來,通常是XML形式。包裝器包含一系列的規(guī)則,并利用這些規(guī)則來抽取網(wǎng)頁的特定內(nèi)容。因此目前網(wǎng)頁數(shù)據(jù)抽取研究工作的重點(diǎn)之一就是探索如何能夠較為容易的獲得構(gòu)造一個(gè)包裝器所需的規(guī)則的有效方法(參見非專利文獻(xiàn)[1])。非專利文獻(xiàn)[2]"HammerJ,McHughJ.,etal.SemistructuredData:TheTSIMMISExperience[A]·In:proceedingottheFirstEastEuropeanSymposiumonAdvanceinDatabasesandInformationSystems[C].1997:1_8”中介紹的TSIMMIS工具中的包裝器需要人工來書寫抽取規(guī)則,并且規(guī)則放在專門的文件中。規(guī)則的形式是[variables,source,pattern]。其中variables{呆存才由取結(jié)果,source{呆存輸人,pattern{呆存數(shù)據(jù)在source中的模式信息。variable可以用作后面的規(guī)則的source。文件中最后一個(gè)規(guī)則執(zhí)行結(jié)束后,variable中保存了最后的抽取結(jié)果。這種需要人工書寫規(guī)則的方法不僅費(fèi)時(shí)、費(fèi)力,而且容易出錯(cuò)、不易維護(hù)。非專利文獻(xiàn)[3]"Liu,L.,Pu,C.etal.XffRAP:AnXML-enableffrapperConstructionSystemfortheWebInformationSource[C]·In-proceedingsofthe16thIEEEInternationalConferenceonDataEngineering,2000:611_620”中介紹的XWRAP系統(tǒng)的包裝器采用了半自動(dòng)化的方法來獲取規(guī)則。它提供了友好的人機(jī)交互界面,用戶可以根據(jù)系統(tǒng)的引導(dǎo)來完成規(guī)則的編寫。最終系統(tǒng)生成一個(gè)針對(duì)特定數(shù)據(jù)源的用Java語言編寫的包裝器。在進(jìn)行抽取之前,XWRAP系統(tǒng)對(duì)網(wǎng)頁進(jìn)行檢查,修正其中不符合規(guī)范的語法錯(cuò)誤和標(biāo)記,并且把網(wǎng)頁解析成一棵樹。非專利文獻(xiàn)[4]"ValterCrescenzi,GiansalvatoreMecca,etal.RoadRunnerTowardsAutomaticDataExtractionfromLargeWebSite[A].In!proceedingofthe26thInternationalConferenceonveryLargeDatabaseSystems[C],2001109-118"中介紹的RoadRunner工具是一個(gè)完全自動(dòng)化的包裝器自動(dòng)生成工具,它通過比較來自同一數(shù)據(jù)源的兩個(gè)(或多個(gè))樣本網(wǎng)頁的結(jié)構(gòu)來為包含在網(wǎng)頁中的數(shù)據(jù)生成一定的模式,甚至不需要用戶提供待抽取的數(shù)據(jù)的樣本和目標(biāo)模式。但是,該方法假設(shè)目標(biāo)網(wǎng)頁都是從某個(gè)數(shù)據(jù)源自動(dòng)生成的,那么它就可以利用網(wǎng)頁的標(biāo)記結(jié)構(gòu)重新得到網(wǎng)頁中包含的數(shù)據(jù)的模式,因此其適用范圍有一定的局限性。上面介紹的幾種方法生成的包裝器都是按一定的規(guī)則或模式來抽取數(shù)據(jù)。但由于網(wǎng)頁結(jié)構(gòu)的復(fù)雜性及不規(guī)范性,一個(gè)包裝器的實(shí)現(xiàn)一般只能針對(duì)一個(gè)信息源。從非專利文獻(xiàn)[5]“AlbertoH.F.Laender,BerthierA.Ribeiro-Neto,etal.ABriefSurveyofWebDataExtractionTools[J]·SIGMODRecord.2002,31(2):84_93”的描述中可以看到,目前的網(wǎng)頁數(shù)據(jù)抽取工具都需要針對(duì)特定的數(shù)據(jù)源來編寫對(duì)應(yīng)的包裝器或抽取規(guī)則。因此,如果信息是來自很多信息源,就需要很多包裝器,這樣包裝器的生成及維護(hù)就成了一種復(fù)雜的工作。對(duì)于網(wǎng)絡(luò)上大量存在的新聞?lì)惥W(wǎng)頁的正文信息抽取這樣的任務(wù)來說,使用針對(duì)特定信息源的包裝器的方法來完成顯然并不是可行的方法。非專利文獻(xiàn)[6]“孫承杰,關(guān)毅.基于統(tǒng)計(jì)的網(wǎng)頁正文信息抽取方法的研究[J].中文信息學(xué)報(bào).2004,18(5):17-22”則從統(tǒng)計(jì)學(xué)的角度出發(fā),嘗試用統(tǒng)計(jì)的方法來解決網(wǎng)頁正文抽取這一問題。該文獻(xiàn)根據(jù)相關(guān)統(tǒng)計(jì)信息以及網(wǎng)頁正文自身的特點(diǎn),提出并實(shí)現(xiàn)了一種比較通用的方法,并取得了比較好的效果。但是,該方法要求所有的網(wǎng)頁正文必須存在于table標(biāo)簽中,這就限制了該方法的進(jìn)一步推廣應(yīng)用。
      發(fā)明內(nèi)容鑒于上述情況,本發(fā)明提出一種網(wǎng)頁正文抽取方法和裝置,以便能夠更加方便的處理、利用網(wǎng)絡(luò)中浩瀚的信息。為實(shí)現(xiàn)上述目的,根據(jù)本發(fā)明的一個(gè)方面,提供了一種網(wǎng)頁正文抽取方法,包括將網(wǎng)頁表示為樹狀結(jié)構(gòu);判斷樹狀結(jié)構(gòu)中的每一個(gè)節(jié)點(diǎn)是否為有效節(jié)點(diǎn);以及組合作為有效節(jié)點(diǎn)的葉子節(jié)點(diǎn)中所包含的正文信息,以得到所述網(wǎng)頁的正文,其中,對(duì)于樹狀結(jié)構(gòu)中的給定節(jié)點(diǎn),如果在所述給定節(jié)點(diǎn)的兒子節(jié)點(diǎn)中預(yù)定類型的節(jié)點(diǎn)所占的比例小于或等于第一閾值,則判定所述給定節(jié)點(diǎn)為有效節(jié)點(diǎn)。根據(jù)本發(fā)明的一個(gè)實(shí)施例,在將網(wǎng)頁表示為樹狀結(jié)構(gòu)之前還包括,對(duì)網(wǎng)頁進(jìn)行處理,以獲取符合Web標(biāo)準(zhǔn)的網(wǎng)頁。優(yōu)選地,通過后根遍歷樹狀結(jié)構(gòu)來判斷樹狀結(jié)構(gòu)中的每一個(gè)節(jié)點(diǎn)是否為有效節(jié)點(diǎn)。如果判定樹狀結(jié)構(gòu)中的給定節(jié)點(diǎn)為無效節(jié)點(diǎn),則拋棄所述給定節(jié)點(diǎn)及其所有子孫節(jié)點(diǎn)。根據(jù)本發(fā)明的一個(gè)實(shí)施例,將網(wǎng)頁表示為樹狀結(jié)構(gòu)包括定義用于表示節(jié)點(diǎn)的數(shù)據(jù)結(jié)構(gòu);以及根據(jù)所述網(wǎng)頁的結(jié)構(gòu)信息,利用所述數(shù)據(jù)結(jié)構(gòu)將所述網(wǎng)頁表示為所述樹狀結(jié)構(gòu)。其中,所述數(shù)據(jù)結(jié)構(gòu)包括以下內(nèi)容所述節(jié)點(diǎn)的類型;所述節(jié)點(diǎn)的值;用于找到所述節(jié)點(diǎn)的全部兒子節(jié)點(diǎn)的信息;用于回溯到所述節(jié)點(diǎn)的父節(jié)點(diǎn)的信息;用于找到所述節(jié)點(diǎn)的下6一個(gè)兄弟節(jié)點(diǎn)的信息;以及所述節(jié)點(diǎn)的名稱。優(yōu)選地,所述預(yù)定類型的節(jié)點(diǎn)為鏈接節(jié)點(diǎn)或圖片節(jié)點(diǎn)中的至少一個(gè)。根據(jù)本發(fā)明的一個(gè)實(shí)施例,對(duì)于樹狀結(jié)構(gòu)中的給定非葉子節(jié)點(diǎn),如果所述給定非葉子節(jié)點(diǎn)為鏈接節(jié)點(diǎn)或圖片節(jié)點(diǎn),則判定所述給定非葉子節(jié)點(diǎn)為有效節(jié)點(diǎn);以及如果所述給定非葉子節(jié)點(diǎn)為腳本節(jié)點(diǎn)或樣式節(jié)點(diǎn),則判定所述給定非葉子節(jié)點(diǎn)為無效節(jié)點(diǎn)。根據(jù)本發(fā)明的一個(gè)實(shí)施例,對(duì)于樹狀結(jié)構(gòu)中的給定葉子節(jié)點(diǎn),如果所述給定葉子節(jié)點(diǎn)不是文本節(jié)點(diǎn),或者如果所述給定葉子節(jié)點(diǎn)是文本節(jié)點(diǎn)但所述給定葉子節(jié)點(diǎn)的父節(jié)點(diǎn)是腳本節(jié)點(diǎn)或樣式節(jié)點(diǎn),則判定所述給定葉子節(jié)點(diǎn)為無效節(jié)點(diǎn)。根據(jù)本發(fā)明的另一個(gè)實(shí)施例,對(duì)于樹狀結(jié)構(gòu)中的給定葉子節(jié)點(diǎn),如果所述給定葉子節(jié)點(diǎn)是文本節(jié)點(diǎn),并且所述給定葉子節(jié)點(diǎn)的父節(jié)點(diǎn)不是腳本節(jié)點(diǎn)或樣式節(jié)點(diǎn),則在所述給定葉子節(jié)點(diǎn)的內(nèi)容長度大于第二閾值時(shí),判定所述給定葉子節(jié)點(diǎn)為有效節(jié)點(diǎn)。在所述給定葉子節(jié)點(diǎn)的內(nèi)容長度小于或等于第二閾值時(shí),如果所述給定葉子節(jié)點(diǎn)的父節(jié)點(diǎn)是用于調(diào)整字體顯示的節(jié)點(diǎn),則判定所述給定葉子節(jié)點(diǎn)為有效節(jié)點(diǎn)。根據(jù)本發(fā)明的另一方面,提供了一種網(wǎng)頁正文抽取裝置,包括網(wǎng)頁表示部分,用于將網(wǎng)頁表示為樹狀結(jié)構(gòu);節(jié)點(diǎn)有效性判斷部分,用于判斷所述樹狀結(jié)構(gòu)中的每個(gè)節(jié)點(diǎn)是否為有效節(jié)點(diǎn);以及正文信息組合部分,用于組合作為有效節(jié)點(diǎn)的葉子節(jié)點(diǎn)中所包含的正文信息,以得到所述網(wǎng)頁的正文,其中,對(duì)于樹狀結(jié)構(gòu)中的給定節(jié)點(diǎn),如果在所述給定節(jié)點(diǎn)的兒子節(jié)點(diǎn)中預(yù)定類型的節(jié)點(diǎn)所占的比例小于或等于第一閾值,則所述節(jié)點(diǎn)有效性判斷部分判定所述給定節(jié)點(diǎn)為有效節(jié)點(diǎn)。根據(jù)本發(fā)明的網(wǎng)頁正文抽取方法和裝置,不僅具有很好的通用性,而且處理速度快,只需要對(duì)代表網(wǎng)頁的樹狀結(jié)構(gòu)進(jìn)行一次遍歷即可得到網(wǎng)頁正文的文檔。另外,本發(fā)明還提供了相應(yīng)的計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)和計(jì)算機(jī)程序產(chǎn)品。參照下面結(jié)合附圖對(duì)本發(fā)明實(shí)施例的說明,會(huì)更加容易地理解本發(fā)明的以上和其它目的、特點(diǎn)和優(yōu)點(diǎn)。在附圖中,相同的或?qū)?yīng)的技術(shù)特征或部件將采用相同或?qū)?yīng)的附圖標(biāo)記來表示。附圖中圖1是根據(jù)本發(fā)明的一個(gè)實(shí)施例的網(wǎng)頁正文抽取方法的流程圖;圖2是利用根據(jù)本發(fā)明的一個(gè)實(shí)施例的網(wǎng)頁正文抽取方法而得到的網(wǎng)頁的樹狀結(jié)構(gòu)示意圖;圖3是利用根據(jù)本發(fā)明的一個(gè)實(shí)施例的網(wǎng)頁正文抽取方法而得到的另一網(wǎng)頁的樹狀結(jié)構(gòu)示意圖;圖4是根據(jù)本發(fā)明的一個(gè)實(shí)施例的判斷節(jié)點(diǎn)有效性過程的流程圖;圖5是根據(jù)本發(fā)明的一個(gè)實(shí)施例的正文信息抽取過程的流程圖;以及圖6是根據(jù)本發(fā)明的一個(gè)實(shí)施例的網(wǎng)頁正文抽取裝置的示意圖。具體實(shí)施例方式下面參照附圖來說明本發(fā)明的實(shí)施例。應(yīng)當(dāng)注意,為了清楚的目的,附圖和說明中省略了與本發(fā)明無關(guān)的、本領(lǐng)域普通技術(shù)人員已知的部件和處理的表示和描述。應(yīng)該了解,在開發(fā)任何這種實(shí)際實(shí)施例的過程中必須做出很多特定于實(shí)施方式的決定,以便實(shí)現(xiàn)開發(fā)人員的具體目標(biāo),例如,符合與系統(tǒng)及業(yè)務(wù)相關(guān)的那些限制條件,并且這些限制條件可能會(huì)隨著實(shí)施方式的不同而有所改變。此外,還應(yīng)該了解,雖然開發(fā)工作有可能是非常復(fù)雜和費(fèi)時(shí)的,但對(duì)得益于本公開內(nèi)容的本領(lǐng)域技術(shù)人員來說,這種開發(fā)工作僅僅是例行的任務(wù)。首先將參考附圖,特別是圖1至圖5,描述根據(jù)本發(fā)明實(shí)施例的網(wǎng)頁正文抽取方法的一般工作原理。圖1是根據(jù)本發(fā)明的一個(gè)實(shí)施例的網(wǎng)頁正文抽取方法的流程圖。如圖1所示,根據(jù)該實(shí)施例的網(wǎng)頁正文抽取方法從SlOO開始。在步驟S102中,對(duì)網(wǎng)頁進(jìn)行預(yù)處理,以獲取符合Web標(biāo)準(zhǔn)的網(wǎng)頁。在此,提出所要處理的不符合網(wǎng)頁標(biāo)準(zhǔn)的情況,并針對(duì)所提出的情況著重處理,使待處理的網(wǎng)頁符合通用的網(wǎng)頁標(biāo)準(zhǔn)。通常,網(wǎng)頁主要由三部分組成,S卩,結(jié)構(gòu)、表現(xiàn)和行為。對(duì)應(yīng)的標(biāo)準(zhǔn)也分三方面,結(jié)構(gòu)化標(biāo)準(zhǔn)語言主要包括XHTML和XML,表現(xiàn)標(biāo)準(zhǔn)語言主要包括CSS,行為標(biāo)準(zhǔn)主要包括對(duì)象模型(如W3CDOM)、ECMAScript等。這些標(biāo)準(zhǔn)大部分由W3C起草和發(fā)布,也有一些是其他標(biāo)準(zhǔn)組織制訂的標(biāo)準(zhǔn),比如ECMA(EuropeanComputerManufacturersAssociation)的ECMAScript標(biāo)準(zhǔn)。早期的時(shí)候,HTML標(biāo)準(zhǔn)還沒有完全形成,無論是否正確地關(guān)閉了標(biāo)記,或者甚至設(shè)計(jì)代碼與格式化規(guī)則完全背離,都是沒有關(guān)系的。標(biāo)記的不匹配、缺少屬性設(shè)置、不正確的嵌套等,這樣或那樣的錯(cuò)誤都是由于缺少一個(gè)被廣泛接受的標(biāo)準(zhǔn)而引起的,因?yàn)榇蠖鄶?shù)瀏覽器都帶有內(nèi)置智能性,有一定的容錯(cuò)能力,很多網(wǎng)站開發(fā)者甚至都沒意識(shí)到這些錯(cuò)誤。因此,為了得到能夠被統(tǒng)一處理的網(wǎng)頁,就需要對(duì)網(wǎng)頁進(jìn)行預(yù)處理,以使網(wǎng)頁標(biāo)準(zhǔn)化。所謂網(wǎng)頁的標(biāo)準(zhǔn)化就是使待處理的網(wǎng)頁符合網(wǎng)頁標(biāo)準(zhǔn)。在本發(fā)明中,重點(diǎn)規(guī)范了網(wǎng)頁的結(jié)構(gòu)標(biāo)準(zhǔn),也就是說使網(wǎng)頁符合XHTML語言的要求。在根據(jù)本發(fā)明實(shí)施例中,針對(duì)網(wǎng)頁的預(yù)處理,提出以下標(biāo)準(zhǔn)化處理時(shí)需要重點(diǎn)考慮的方面。當(dāng)然,也可以根據(jù)實(shí)際情況,對(duì)不符合XHTML語言要求的其他情形進(jìn)行處理,以使要處理的網(wǎng)頁標(biāo)準(zhǔn)化。(1)“〈”和“〉”只能用來包含網(wǎng)頁標(biāo)記(tag),當(dāng)在其它地方出現(xiàn)這兩個(gè)符號(hào)時(shí)用"&lt;”和“&gt;”來代替。(2)所有的標(biāo)記必須匹配,即每個(gè)開始標(biāo)記都對(duì)應(yīng)一個(gè)結(jié)束標(biāo)記。(3)所有標(biāo)記的屬性值都必須放在引號(hào)中,如<ahref="www.w3c.org”>。(4)所有的標(biāo)記必須是正確嵌套的。例如,<a>…<b>"*</a>…</b>是不正確的嵌套,正確的嵌套形式應(yīng)該是<a>···<b>···</b>…</a>。在根據(jù)本發(fā)明實(shí)施例的方法中,在步驟S102可根據(jù)上面所提出的網(wǎng)頁不規(guī)范情形等來處理網(wǎng)頁,以使在網(wǎng)頁中不存在上述不規(guī)范情況??梢杂糜谏鲜鼍W(wǎng)頁預(yù)處理過程的網(wǎng)頁標(biāo)準(zhǔn)化方法有很多,而且有很多免費(fèi)的工具可供使用,比較有名的工具有HTMLTidy。當(dāng)然也可以用其他的工具比如HTML-Kit來實(shí)現(xiàn)網(wǎng)頁的標(biāo)準(zhǔn)化。HTMLTidy是一個(gè)核對(duì)和整理HTML網(wǎng)頁的工具。該工具在檢測(cè)和糾正深層嵌套的HTML網(wǎng)頁時(shí)尤其有用處。通過使用HTMLTidy工具,可以把不規(guī)范的HTML網(wǎng)頁轉(zhuǎn)換成符合W3C標(biāo)準(zhǔn)的網(wǎng)頁。在根據(jù)本發(fā)明的一個(gè)實(shí)施例中,使用HTMLTidy工具把HTML網(wǎng)頁轉(zhuǎn)換成XML格式的網(wǎng)頁,更準(zhǔn)確的說是轉(zhuǎn)換為XHTML網(wǎng)頁。XHTML和HTML的差別很細(xì)微但也很重要。XHTML可以被認(rèn)為是符合XML語法的HTML4.01。XHTML和HTML的差別主要有(i)XHTML的元素必須有開始和結(jié)束標(biāo)志。而HTML則不要求所有的元素都有結(jié)束標(biāo)志,例如。(ii)空元素遵守XHTML規(guī)范,例如<br>應(yīng)該被寫成<br/>。(iii)屬性值必須包含在雙引號(hào)內(nèi)。由此可見,這些區(qū)別和在本發(fā)明實(shí)施例中提出的標(biāo)準(zhǔn)化網(wǎng)頁的要求基本一致,所以經(jīng)過HTMLTidy處理后的網(wǎng)頁可以認(rèn)為是符合Web標(biāo)準(zhǔn)的網(wǎng)頁。在步驟S102中對(duì)網(wǎng)頁進(jìn)行處理并獲得符合Web標(biāo)準(zhǔn)的網(wǎng)頁之后,在步驟S104中,將經(jīng)過預(yù)處理的網(wǎng)頁表示成樹狀結(jié)構(gòu)。在此,定義用于表示節(jié)點(diǎn)的數(shù)據(jù)結(jié)構(gòu),并根據(jù)網(wǎng)頁的結(jié)構(gòu)信息,利用所定義的數(shù)據(jù)結(jié)構(gòu)將網(wǎng)頁表示為樹狀結(jié)構(gòu)。之所以將網(wǎng)頁表示為樹狀結(jié)構(gòu)是因?yàn)闃錉罱Y(jié)構(gòu)能夠更容易清晰直觀地表示出網(wǎng)頁內(nèi)部各個(gè)節(jié)點(diǎn)間的包含和被包含關(guān)系。HTML本身具有很強(qiáng)的層次結(jié)構(gòu)信息,因此把HTML網(wǎng)頁表示為樹狀結(jié)構(gòu)非常方便易行。此外,把網(wǎng)頁表示成為樹狀結(jié)構(gòu)也方便對(duì)網(wǎng)頁的處理。根據(jù)處理的需要,在將網(wǎng)頁表示成為樹狀結(jié)構(gòu)時(shí),對(duì)于給定節(jié)點(diǎn),一般需要記錄以下信息(a)用于回溯到給定節(jié)點(diǎn)的父節(jié)點(diǎn)的信息;(b)用于得到給定節(jié)點(diǎn)的全部兒子節(jié)點(diǎn)的信息;(c)用于找到給定節(jié)點(diǎn)的下一個(gè)兄弟節(jié)點(diǎn)的信息;(d)給定節(jié)點(diǎn)的類型;(e)給定節(jié)點(diǎn)的值;以及(f)給定節(jié)點(diǎn)的名稱。這里應(yīng)該指出的是,以上得到的樹狀結(jié)構(gòu)有可能不完全是標(biāo)準(zhǔn)的樹,因?yàn)樗玫降臉渲型瑫r(shí)也保存有節(jié)點(diǎn)間的兄弟關(guān)系。在上述信息中,必不可少的信息是(b)、(d)、(e),其余的信息是可選的。但是如果在建立樹狀結(jié)構(gòu)的過程中同時(shí)得到這些信息,以后在處理網(wǎng)頁的時(shí)候是很方便的。當(dāng)然,也可以根據(jù)需要,對(duì)需要記錄的信息進(jìn)行增減,以便更好地表示網(wǎng)絡(luò)的樹狀結(jié)構(gòu)和樹中各個(gè)節(jié)點(diǎn)之間的關(guān)系。其中,節(jié)點(diǎn)的類型有元素節(jié)點(diǎn)、文本節(jié)點(diǎn)、document節(jié)點(diǎn)、注釋節(jié)點(diǎn)、屬性節(jié)點(diǎn)等。元素節(jié)點(diǎn)是指HTML語言中的基本單元,如<a>、<div>等等都是元素節(jié)點(diǎn)。屬性節(jié)點(diǎn)是指元素節(jié)點(diǎn)的屬性信息,如對(duì)于<ahref=“http://www.baidu.com"></a>,href='’http://www.baidu.com"即是元素“a”的屬性節(jié)點(diǎn)。文本節(jié)點(diǎn)是指包含文本信息的節(jié)點(diǎn),如<span>text</span>中的“text”即是文本節(jié)點(diǎn)。document節(jié)點(diǎn)是所有節(jié)點(diǎn)的祖先節(jié)點(diǎn)。注釋節(jié)點(diǎn)則是程序員在寫HTML文檔時(shí)所寫的注釋。節(jié)點(diǎn)的值針對(duì)不同節(jié)點(diǎn)類型其含義不同,對(duì)于文本節(jié)點(diǎn)和注釋節(jié)點(diǎn),節(jié)點(diǎn)值指的是文本內(nèi)容和注釋內(nèi)容;而對(duì)于其他節(jié)點(diǎn),節(jié)點(diǎn)值為NULL。節(jié)點(diǎn)的名稱則是HTML網(wǎng)頁中給出的節(jié)點(diǎn)的名字。在本發(fā)明的一個(gè)實(shí)施例中,構(gòu)造的是DocumentObjectModel(DOM)樹。當(dāng)然也可以得到其他樹,只要能夠包含上述必不可少的信息即可。在本發(fā)明的一個(gè)實(shí)施例中,利用python語言的minidom模塊得到經(jīng)過預(yù)處理的HTML網(wǎng)頁的DOM樹,以供正文信息抽取處理使用。minidom模塊也是本領(lǐng)域技術(shù)人員常用的一種工具。例如,對(duì)于包括以下HTML代碼的網(wǎng)頁,利用根據(jù)本發(fā)明的一個(gè)實(shí)施例的網(wǎng)頁正文抽取方法而得到的該網(wǎng)頁的樹狀結(jié)構(gòu)示意圖在圖2中示出<html><head><title>Example</title></head><body>Just<b>a</b>Sample!</body></html>再例如,對(duì)于包括以下HTML代碼的網(wǎng)頁,利用根據(jù)本發(fā)明的一個(gè)實(shí)施例的網(wǎng)頁正文抽取方法而得到的該網(wǎng)頁的樹狀結(jié)構(gòu)示意圖在圖3中示出<html><head><title>Example!</title></head><body><divid=〃divl">Justasample!</div><divid=〃div2〃><aExample!“和〃Justasample!“節(jié)點(diǎn))所包含的文本信息,既可得到該網(wǎng)頁的如下正文內(nèi)容。Example!Justasample!以上結(jié)合圖1至圖5詳細(xì)描述了根據(jù)本發(fā)明的實(shí)施例的網(wǎng)頁正文抽取方法的基本原理和處理過程,下面將描述根據(jù)本發(fā)明實(shí)施例的網(wǎng)頁正文抽取裝置。圖6是根據(jù)本發(fā)明的一個(gè)實(shí)施例的網(wǎng)頁正文抽取裝置600的示意圖。如圖6所示,根據(jù)該實(shí)施例的網(wǎng)頁正文抽取裝置600包括網(wǎng)頁預(yù)處理部分602、網(wǎng)頁表示部分604、節(jié)點(diǎn)有效性判斷部分606和正文信息組織部分608。網(wǎng)頁預(yù)處理部分602對(duì)要提取其正文內(nèi)容的網(wǎng)頁進(jìn)行預(yù)處理,以使所述網(wǎng)頁符合Web標(biāo)準(zhǔn)。網(wǎng)頁表示部分604將經(jīng)過網(wǎng)頁預(yù)處理部分602預(yù)處理的網(wǎng)頁表示為樹狀結(jié)構(gòu)。節(jié)點(diǎn)有效性判斷部分606判斷網(wǎng)頁表示部分604所得到的網(wǎng)頁的樹狀結(jié)構(gòu)中的每個(gè)節(jié)點(diǎn)是否為有效節(jié)點(diǎn)。正文信息組合部分608則組合節(jié)點(diǎn)有效性判斷部分606判定為有效節(jié)點(diǎn)的葉子節(jié)點(diǎn)中所包含的正文信息,從而得到所述網(wǎng)頁的正文。在此,對(duì)于網(wǎng)頁表示部分604所得到的網(wǎng)頁的樹狀結(jié)構(gòu)中的給定節(jié)點(diǎn),如果在所述給定節(jié)點(diǎn)的兒子節(jié)點(diǎn)中預(yù)定類型的節(jié)點(diǎn)所占的比例小于或等于第一閾值,則所述節(jié)點(diǎn)有效性判斷部分606將該給定節(jié)點(diǎn)判定為有效節(jié)點(diǎn)。網(wǎng)頁預(yù)處理部分602可以用上文提及的網(wǎng)頁標(biāo)準(zhǔn)化工具比如HTMLTidy或HTML-Kit等來實(shí)施,這里不再詳細(xì)描述。根據(jù)本發(fā)明的一個(gè)實(shí)施例,網(wǎng)頁表示部分604可以包括定義用于表示節(jié)點(diǎn)的數(shù)據(jù)結(jié)構(gòu)的單元、以及根據(jù)網(wǎng)頁的結(jié)構(gòu)信息利用所定義的數(shù)據(jù)結(jié)構(gòu)將網(wǎng)頁表示為樹狀結(jié)構(gòu)的單元。網(wǎng)頁表示部分604的詳細(xì)處理過程可以參照上面對(duì)網(wǎng)頁正文抽取方法中步驟S104的描述來進(jìn)行,這里省去其詳細(xì)描述,以避免不必要的重復(fù)。。同樣,節(jié)點(diǎn)有效性判斷部分606和正文信息組織部分608的具體處理過程分別與上面描述的網(wǎng)頁正文抽取方法中的步驟S106和S108類似,因此,為了說明書的簡潔起見,在此也不再對(duì)其進(jìn)行詳細(xì)描述。另外,在根據(jù)本發(fā)明的實(shí)施例的網(wǎng)頁正文抽取裝置的處理過程中也可以利用根據(jù)圖4所描述的判斷節(jié)點(diǎn)有效性過程以及圖5所描述的正文信息抽取過程來實(shí)現(xiàn)相應(yīng)的處理,從而高效地獲取網(wǎng)頁的正文內(nèi)容。從以上描述可以看出,根據(jù)本發(fā)明的網(wǎng)頁正文抽取方法和裝置,不需要針對(duì)特定的數(shù)據(jù)源來編寫對(duì)應(yīng)的包裝器或抽取規(guī)則,因此具有很好的通用性,能夠方便地提取來自各種信息源的網(wǎng)頁的正文信息。另外,根據(jù)本發(fā)明的網(wǎng)頁正文抽取方法和裝置,只需要對(duì)代表網(wǎng)頁的樹狀結(jié)構(gòu)進(jìn)行一次遍歷即可得到網(wǎng)頁的正文信息,因此處理速度快,非常適用于現(xiàn)在飛速膨脹的網(wǎng)絡(luò)信息世界。以上結(jié)合具體實(shí)施例描述了本發(fā)明的基本原理,但是,需要指出的是,對(duì)本領(lǐng)域的普通技術(shù)人員而言,能夠理解本發(fā)明的方法和裝置的全部或者任何步驟或者部件,可以在任何計(jì)算設(shè)備(包括處理器、存儲(chǔ)介質(zhì)等)或者計(jì)算設(shè)備的網(wǎng)絡(luò)中,以硬件、固件、軟件或者它們的組合加以實(shí)現(xiàn),這是本領(lǐng)域普通技術(shù)人員在閱讀了本發(fā)明的說明的情況下運(yùn)用他們的基本編程技能就能實(shí)現(xiàn)的,因此在這里省略了詳細(xì)說明。因此,基于上述理解,本發(fā)明的目的還可以通過在任何信息處理設(shè)備上運(yùn)行一個(gè)程序或者一組程序來實(shí)現(xiàn)。所述信息處理設(shè)備可以是公知的通用設(shè)備。因此,本發(fā)明的目的也可以僅僅通過提供包含實(shí)現(xiàn)所述方法或者設(shè)備的程序代碼的程序產(chǎn)品來實(shí)現(xiàn)。也就是說,這樣的程序產(chǎn)品也構(gòu)成本發(fā)明,并且存儲(chǔ)有這樣的程序產(chǎn)品的存儲(chǔ)介質(zhì)也構(gòu)成本發(fā)明。顯然,所述存儲(chǔ)介質(zhì)可以是任何公知的存儲(chǔ)介質(zhì)或者將來所開發(fā)出來的任何存儲(chǔ)介質(zhì),因此也沒有必要在此對(duì)各種存儲(chǔ)介質(zhì)一一列舉。還需要指出的是,在本發(fā)明的裝置和方法中,顯然,各部件或各步驟是可以分解和/或重新組合的。這些分解和/或重新組合應(yīng)視為本發(fā)明的等效方案。并且,執(zhí)行上述系列處理的步驟可以自然地按照說明的順序按時(shí)間順序執(zhí)行,但是并不需要一定按照時(shí)間順序執(zhí)行。某些步驟可以并行或彼此獨(dú)立地執(zhí)行。另外,本申請(qǐng)的術(shù)語“包括”、“包含”或者其任何其他變體意在涵蓋非排他性的包含,從而使得包括一系列要素的過程、方法、物品或者裝置不僅包括那些要素,而且還包括沒有明確列出的其他要素,或者是還包括為這種過程、方法、物品或者裝置所固有的要素。在沒有更多限制的情況下,由語句“包括......,,限定的要素,并不排除在包括所述要素的過程、方法、物品或者裝置中還存在另外的相同要素。雖然已經(jīng)詳細(xì)描述了本發(fā)明的具體實(shí)施方式,但是本領(lǐng)域的普通技術(shù)人員應(yīng)當(dāng)知道,本發(fā)明的保護(hù)范圍不限于這里所公開的具體細(xì)節(jié),而可以具有在本發(fā)明的精神實(shí)質(zhì)范圍內(nèi)的各種變化和等效方案。權(quán)利要求一種網(wǎng)頁正文抽取方法,包括將網(wǎng)頁表示為樹狀結(jié)構(gòu);判斷樹狀結(jié)構(gòu)中的每一個(gè)節(jié)點(diǎn)是否為有效節(jié)點(diǎn);以及組合作為有效節(jié)點(diǎn)的葉子節(jié)點(diǎn)中所包含的正文信息,以得到所述網(wǎng)頁的正文,其中,對(duì)于樹狀結(jié)構(gòu)中的給定節(jié)點(diǎn),如果在所述給定節(jié)點(diǎn)的兒子節(jié)點(diǎn)中預(yù)定類型的節(jié)點(diǎn)所占的比例小于或等于第一閾值,則判定所述給定節(jié)點(diǎn)為有效節(jié)點(diǎn)。2.根據(jù)權(quán)利要求1所述的方法,其中,在將網(wǎng)頁表示為樹狀結(jié)構(gòu)之前還包括對(duì)網(wǎng)頁進(jìn)行處理,以獲取符合Web標(biāo)準(zhǔn)的網(wǎng)頁。3.根據(jù)權(quán)利要求2所述的方法,其中,通過后根遍歷樹狀結(jié)構(gòu)來判斷樹狀結(jié)構(gòu)中的每一個(gè)節(jié)點(diǎn)是否為有效節(jié)點(diǎn)。4.根據(jù)權(quán)利要求3所述的方法,其中,如果判定樹狀結(jié)構(gòu)中的給定節(jié)點(diǎn)為無效節(jié)點(diǎn),則拋棄所述給定節(jié)點(diǎn)及其所有子孫節(jié)點(diǎn)。5.根據(jù)權(quán)利要求4所述的方法,其中,將網(wǎng)頁表示為樹狀結(jié)構(gòu)包括定義用于表示節(jié)點(diǎn)的數(shù)據(jù)結(jié)構(gòu);以及根據(jù)所述網(wǎng)頁的結(jié)構(gòu)信息,利用所述數(shù)據(jù)結(jié)構(gòu)將所述網(wǎng)頁表示為所述樹狀結(jié)構(gòu)。6.根據(jù)權(quán)利要求5所述的方法,其中,所述數(shù)據(jù)結(jié)構(gòu)包括以下內(nèi)容所述節(jié)點(diǎn)的類型;所述節(jié)點(diǎn)的值;用于找到所述節(jié)點(diǎn)的全部兒子節(jié)點(diǎn)的信息;用于回溯到所述節(jié)點(diǎn)的父節(jié)點(diǎn)的信息;用于找到所述節(jié)點(diǎn)的下一個(gè)兄弟節(jié)點(diǎn)的信息;以及所述節(jié)點(diǎn)的名稱。7.根據(jù)權(quán)利要求1至6之任一所述的方法,其中,所述預(yù)定類型的節(jié)點(diǎn)為鏈接節(jié)點(diǎn)或圖片節(jié)點(diǎn)中的至少一個(gè)。8.根據(jù)權(quán)利要求1至6之任一所述的方法,其中,對(duì)于樹狀結(jié)構(gòu)中的給定非葉子節(jié)點(diǎn),如果所述給定非葉子節(jié)點(diǎn)為鏈接節(jié)點(diǎn)或圖片節(jié)點(diǎn),則判定所述給定非葉子節(jié)點(diǎn)為有效節(jié)點(diǎn);以及如果所述給定非葉子節(jié)點(diǎn)為腳本節(jié)點(diǎn)或樣式節(jié)點(diǎn),則判定所述給定非葉子節(jié)點(diǎn)為無效節(jié)點(diǎn)。9.根據(jù)權(quán)利要求1至6之任一所述的方法,其中,對(duì)于樹狀結(jié)構(gòu)中的給定葉子節(jié)點(diǎn),如果所述給定葉子節(jié)點(diǎn)不是文本節(jié)點(diǎn),或者如果所述給定葉子節(jié)點(diǎn)是文本節(jié)點(diǎn)但所述給定葉子節(jié)點(diǎn)的父節(jié)點(diǎn)是腳本節(jié)點(diǎn)或樣式節(jié)點(diǎn),則判定所述給定葉子節(jié)點(diǎn)為無效節(jié)點(diǎn)。10.根據(jù)權(quán)利要求1至6之任一所述的方法,其中,對(duì)于樹狀結(jié)構(gòu)中的給定葉子節(jié)點(diǎn),如果所述給定葉子節(jié)點(diǎn)是文本節(jié)點(diǎn),并且所述給定葉子節(jié)點(diǎn)的父節(jié)點(diǎn)不是腳本節(jié)點(diǎn)或樣式節(jié)點(diǎn),則在所述給定葉子節(jié)點(diǎn)的內(nèi)容長度大于第二閾值時(shí),判定所述給定葉子節(jié)點(diǎn)為有效節(jié)點(diǎn)o11.根據(jù)權(quán)利要求10所述的方法,其中,在所述給定葉子節(jié)點(diǎn)的內(nèi)容長度小于或等于第二閾值時(shí),如果所述給定葉子節(jié)點(diǎn)的父節(jié)點(diǎn)是用于調(diào)整字體顯示的節(jié)點(diǎn),則判定所述給定葉子節(jié)點(diǎn)為有效節(jié)點(diǎn)。12.一種網(wǎng)頁正文抽取裝置,包括網(wǎng)頁表示部分,用于將網(wǎng)頁表示為樹狀結(jié)構(gòu);節(jié)點(diǎn)有效性判斷部分,用于判斷所述樹狀結(jié)構(gòu)中的每個(gè)節(jié)點(diǎn)是否為有效節(jié)點(diǎn);以及正文信息組合部分,用于組合作為有效節(jié)點(diǎn)的葉子節(jié)點(diǎn)中所包含的正文信息,以得到所述網(wǎng)頁的正文,其中,對(duì)于樹狀結(jié)構(gòu)中的給定節(jié)點(diǎn),如果在所述給定節(jié)點(diǎn)的兒子節(jié)點(diǎn)中預(yù)定類型的節(jié)點(diǎn)所占的比例小于或等于第一閾值,則所述節(jié)點(diǎn)有效性判斷部分判定所述給定節(jié)點(diǎn)為有效節(jié)點(diǎn)。13.根據(jù)權(quán)利要求12所述的裝置,還包括網(wǎng)頁處理部分,用于對(duì)將要由網(wǎng)頁表示部分表示為樹狀結(jié)構(gòu)的網(wǎng)頁進(jìn)行處理,以獲取符合Web標(biāo)準(zhǔn)的網(wǎng)頁。14.根據(jù)權(quán)利要求13所述的裝置,其中,所述節(jié)點(diǎn)有效性判斷部分通過后根遍歷樹狀結(jié)構(gòu)來判斷樹狀結(jié)構(gòu)中的每一個(gè)節(jié)點(diǎn)是否為有效節(jié)點(diǎn)。15.根據(jù)權(quán)利要求14所述的裝置,其中,如果所述節(jié)點(diǎn)有效性判斷部分判定樹狀結(jié)構(gòu)中的給定節(jié)點(diǎn)為無效節(jié)點(diǎn),則拋棄所述給定節(jié)點(diǎn)及其所有子孫節(jié)點(diǎn)。16.根據(jù)權(quán)利要求15所述的裝置,其中,所述網(wǎng)頁表示部分包括定義用于表示節(jié)點(diǎn)的數(shù)據(jù)結(jié)構(gòu)的單元;以及根據(jù)所述網(wǎng)頁的結(jié)構(gòu)信息,利用所述數(shù)據(jù)結(jié)構(gòu)將所述網(wǎng)頁表示為所述樹狀結(jié)構(gòu)的單兀。17.根據(jù)權(quán)利要求16所述的裝置,其中,所述數(shù)據(jù)結(jié)構(gòu)包括以下內(nèi)容所述節(jié)點(diǎn)的類型;所述節(jié)點(diǎn)的值;用于找到所述節(jié)點(diǎn)的全部兒子節(jié)點(diǎn)的信息;用于回溯到所述節(jié)點(diǎn)的父節(jié)點(diǎn)的信息;用于找到所述節(jié)點(diǎn)的下一個(gè)兄弟節(jié)點(diǎn)的信息;以及所述節(jié)點(diǎn)的名稱。18.根據(jù)權(quán)利要求12至17之任一所述的裝置,其中,所述預(yù)定類型的節(jié)點(diǎn)為鏈接節(jié)點(diǎn)或圖片節(jié)點(diǎn)中的至少一個(gè)。19.根據(jù)權(quán)利要求12至17之任一所述的裝置,其中,對(duì)于樹狀結(jié)構(gòu)中的給定非葉子節(jié)點(diǎn),如果所述給定非葉子節(jié)點(diǎn)為鏈接節(jié)點(diǎn)或圖片節(jié)點(diǎn),則所述節(jié)點(diǎn)有效性判斷部分判定所述給定非葉子節(jié)點(diǎn)為有效節(jié)點(diǎn);以及如果所述給定非葉子節(jié)點(diǎn)為腳本節(jié)點(diǎn)或樣式節(jié)點(diǎn),則所述節(jié)點(diǎn)有效性判斷部分判定所述給定非葉子節(jié)點(diǎn)為無效節(jié)點(diǎn)。20.根據(jù)權(quán)利要求12至17之任一所述的裝置,其中,對(duì)于樹狀結(jié)構(gòu)中的給定葉子節(jié)點(diǎn),如果所述給定葉子節(jié)點(diǎn)不是文本節(jié)點(diǎn),或者如果所述給定葉子節(jié)點(diǎn)是文本節(jié)點(diǎn)但所述給定葉子節(jié)點(diǎn)的父節(jié)點(diǎn)是腳本節(jié)點(diǎn)或樣式節(jié)點(diǎn),則所述節(jié)點(diǎn)有效性判斷部分判定所述給定葉子節(jié)點(diǎn)為無效節(jié)點(diǎn)。21.根據(jù)權(quán)利要求12至17之任一所述的裝置,其中,對(duì)于樹狀結(jié)構(gòu)中的給定葉子節(jié)點(diǎn),如果所述給定葉子節(jié)點(diǎn)是文本節(jié)點(diǎn),并且所述給定葉子節(jié)點(diǎn)的父節(jié)點(diǎn)不是腳本節(jié)點(diǎn)或樣式節(jié)點(diǎn),則在所述給定葉子節(jié)點(diǎn)的內(nèi)容長度大于第二閾值時(shí),所述節(jié)點(diǎn)有效性判斷部分判定所述給定葉子節(jié)點(diǎn)為有效節(jié)點(diǎn)。22.根據(jù)權(quán)利要求21所述的裝置,其中,在所述給定葉子節(jié)點(diǎn)的內(nèi)容長度小于或等于第二閾值時(shí),如果所述給定葉子節(jié)點(diǎn)的父節(jié)點(diǎn)是用于調(diào)整字體顯示的節(jié)點(diǎn),則所述節(jié)點(diǎn)有效性判斷部分判定所述給定葉子節(jié)點(diǎn)為有效節(jié)點(diǎn)。全文摘要本發(fā)明公開了一種網(wǎng)頁正文抽取方法和裝置。根據(jù)本發(fā)明一個(gè)實(shí)施例的網(wǎng)頁正文抽取方法包括將網(wǎng)頁表示為樹狀結(jié)構(gòu);判斷樹狀結(jié)構(gòu)中的每一個(gè)節(jié)點(diǎn)是否為有效節(jié)點(diǎn);以及組合作為有效節(jié)點(diǎn)的葉子節(jié)點(diǎn)中所包含的正文信息,以得到所述網(wǎng)頁的正文,其中,對(duì)于樹狀結(jié)構(gòu)中的給定節(jié)點(diǎn),如果在所述給定節(jié)點(diǎn)的兒子節(jié)點(diǎn)中預(yù)定類型的節(jié)點(diǎn)所占的比例小于或等于第一閾值,則判定所述給定節(jié)點(diǎn)為有效節(jié)點(diǎn)。文檔編號(hào)G06F17/30GK101872350SQ20091013736公開日2010年10月27日申請(qǐng)日期2009年4月24日優(yōu)先權(quán)日2009年4月24日發(fā)明者于浩,孟遙,王主龍,賈曉建申請(qǐng)人:富士通株式會(huì)社
      網(wǎng)友詢問留言 已有0條留言
      • 還沒有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
      1