亚洲狠狠干,亚洲国产福利精品一区二区,国产八区,激情文学亚洲色图

一種新聞網(wǎng)頁(yè)正文信息的提取方法

文檔序號(hào):6651514閱讀:240來(lái)源:國(guó)知局

專利名稱::一種新聞網(wǎng)頁(yè)正文信息的提取方法
技術(shù)領(lǐng)域
:本發(fā)明屬于網(wǎng)頁(yè)信息分析處理
技術(shù)領(lǐng)域
,具體涉及一種新聞網(wǎng)頁(yè)正文信息的提取方法。
背景技術(shù)
:互聯(lián)網(wǎng)的飛速發(fā)展使網(wǎng)絡(luò)即Web上的信息量每天都以驚人的速度增加,許多企業(yè)常常需要各種信息,通常會(huì)從網(wǎng)絡(luò)上大規(guī)模搜集信息,因而海量信息的采集成為每個(gè)企業(yè)都要關(guān)心的問(wèn)題。因?yàn)槟壳暗男畔⑻幚砑夹g(shù)都是針對(duì)純文本格式的內(nèi)容的,而Web上的信息主要是以靜態(tài)Html形式存在的,如何把Web上采集的Html形式的信息轉(zhuǎn)換成有利用價(jià)值的文本格式的信息,方便后續(xù)的信息處理,成為亟待解決的技術(shù)問(wèn)題。Web上信息的重要表現(xiàn)形式就是新聞,每天,各大門戶網(wǎng)站都會(huì)新增大量的各種新聞,如何采集這些新聞信息,就成為Web信息采集的重要問(wèn)題。通常,一個(gè)新聞網(wǎng)頁(yè)中,除了包括主要新聞的內(nèi)容(通常稱之為網(wǎng)頁(yè)正文)外,還包括大量的與新聞內(nèi)容無(wú)關(guān)的信息(比如廣告、網(wǎng)頁(yè)導(dǎo)航信息、版權(quán)信息等,為方便,下面將這些與新聞無(wú)關(guān)的信息統(tǒng)稱為廣告),如何從新聞網(wǎng)頁(yè)中準(zhǔn)確提取新聞,去除與新聞信息無(wú)關(guān)的廣告等其他信息,并最大程度地避免由網(wǎng)頁(yè)改版所帶來(lái)原網(wǎng)頁(yè)抓取方法失效的問(wèn)題也正是目前需要解決的技術(shù)問(wèn)題。目前網(wǎng)絡(luò)上絕大部分新聞信息都來(lái)自于重要的門戶網(wǎng)站,而這些網(wǎng)站的新聞網(wǎng)頁(yè)往往都是由模版后臺(tái)生成的,其風(fēng)格和樣式在某段時(shí)間內(nèi)是相同的。目前互聯(lián)網(wǎng)上的網(wǎng)頁(yè)絕大部分是用HTML語(yǔ)言編寫的。Html語(yǔ)言提供的標(biāo)記主要是用來(lái)控制網(wǎng)頁(yè)內(nèi)容的顯示格式的,如<table>,<tr>,<td>,<th>是用來(lái)繪制表格的;<li>,<ol>,<ul>是用來(lái)表示列表的,這些標(biāo)記的使用沒(méi)有什么規(guī)律,網(wǎng)頁(yè)設(shè)計(jì)人員可以隨便設(shè)計(jì)。但是不同種類的數(shù)據(jù)一般是放在不同的顯示單元中的。經(jīng)過(guò)實(shí)際分析各大網(wǎng)站的新聞網(wǎng)頁(yè),結(jié)果顯示需要提取的新聞?lì)惥W(wǎng)頁(yè)中的正文信息絕大部分是存在于Html標(biāo)記“<table>”和“<div>”之中的。傳統(tǒng)的網(wǎng)頁(yè)數(shù)據(jù)提取方法,是通過(guò)包裝器來(lái)提取網(wǎng)頁(yè)中感興趣的數(shù)據(jù)的。包裝器根據(jù)信息模式識(shí)別知識(shí)從固定的信息源中抽取相關(guān)內(nèi)容,并以固定形式加以表示。早期,最簡(jiǎn)單的包裝器是通過(guò)人工分析欲提取信息的目標(biāo)網(wǎng)頁(yè)的結(jié)構(gòu)特征,然后編寫有針對(duì)性的軟件來(lái)實(shí)現(xiàn)的,這種方法人工干預(yù)大,代價(jià)很高;后來(lái)又引進(jìn)了一些模式識(shí)別的算法,但至今,包裝器所需的信息模式識(shí)別知識(shí)的獲取還是一個(gè)費(fèi)時(shí)費(fèi)力且需要較高智能的工作,因此,目前網(wǎng)頁(yè)數(shù)據(jù)抽取研究工作的熱點(diǎn)之一就是探索簡(jiǎn)易的獲得構(gòu)造一個(gè)包裝器所需規(guī)則的有效方法。目前利用包裝器的系統(tǒng)有TSIMMIS系統(tǒng),XWRAP系統(tǒng)等。TSIMMIS系統(tǒng)中的包裝器需要人工來(lái)書寫數(shù)據(jù)抽取規(guī)則。規(guī)則被放在專門的文件中,規(guī)則的形式是[variables,source,pattern]。其中,variables保存抽取結(jié)果,source保存輸入,pattern保存了數(shù)據(jù)在source中的模式信息;variables可以用作后面的規(guī)則的source,文件中最后一個(gè)規(guī)則執(zhí)行結(jié)束后,variables中保存了最后的抽取結(jié)果。這種需要人工書寫規(guī)則的方法,費(fèi)時(shí)、費(fèi)力,而且容易出錯(cuò),不易維護(hù)。XWRAP系統(tǒng)中的包裝器采用了半自動(dòng)化的方法來(lái)獲取數(shù)據(jù)抽取規(guī)則。它提供了友好的人機(jī)交互界面,用戶可以根據(jù)系統(tǒng)的引導(dǎo)來(lái)完成數(shù)據(jù)抽取規(guī)則的編寫,最終,系統(tǒng)生成一個(gè)針對(duì)特定數(shù)據(jù)源的用java語(yǔ)言編寫的包裝器。在進(jìn)行數(shù)據(jù)抽取之前,XWRAP系統(tǒng)會(huì)對(duì)網(wǎng)頁(yè)進(jìn)行檢查,修正其中的不符合規(guī)范的語(yǔ)法錯(cuò)誤和標(biāo)記,并把網(wǎng)頁(yè)解析成一棵樹(shù)。上面介紹的幾種包裝器都是針對(duì)某一個(gè)固定網(wǎng)頁(yè)架構(gòu)來(lái)按固定的規(guī)則或模式來(lái)抽取數(shù)據(jù),有比較大的局限性。由于網(wǎng)頁(yè)結(jié)構(gòu)的復(fù)雜性及不規(guī)范性,并且一旦網(wǎng)頁(yè)改版,網(wǎng)頁(yè)架構(gòu)改變,原先適用的包裝器就不能再適用了,這是包裝器的嚴(yán)重缺點(diǎn),即一個(gè)包裝器的實(shí)現(xiàn)一般只能針對(duì)一個(gè)信息源。如上所述,目前的網(wǎng)頁(yè)數(shù)據(jù)抽取工具,都需要針對(duì)特定的數(shù)據(jù)源來(lái)編寫對(duì)應(yīng)的包裝器或抽取規(guī)則。所以,如果信息是來(lái)自很多信息源,就需要很多包裝器,這樣包裝器的生成及維護(hù)就成了一種復(fù)雜的工作。對(duì)于網(wǎng)絡(luò)上大量存在的結(jié)構(gòu)風(fēng)格各不相同的新聞?lì)惥W(wǎng)頁(yè)的正文信息抽取這樣的任務(wù)來(lái)說(shuō),使用包裝器的代價(jià)是很大的。
發(fā)明內(nèi)容針對(duì)現(xiàn)有技術(shù)中存在的缺陷,本發(fā)明的目的是提供一種新聞網(wǎng)頁(yè)正文信息的提取方法,該方法對(duì)于那些新聞網(wǎng)頁(yè)的正文均存在于“<table>”或“<div>”之中的數(shù)據(jù)信息而言,能夠?qū)崿F(xiàn)對(duì)由各種不同結(jié)構(gòu)的模版生成的一系列新聞網(wǎng)頁(yè)的內(nèi)容的自動(dòng)提取,能夠提高網(wǎng)頁(yè)信息提取的效率和準(zhǔn)確率。為達(dá)到以上目的,本發(fā)明采用的技術(shù)方案是一種新聞網(wǎng)頁(yè)正文信息的提取方法,包括以下步驟(1)對(duì)網(wǎng)頁(yè)進(jìn)行規(guī)范化預(yù)處理,使之符合Html語(yǔ)言標(biāo)準(zhǔn),然后依據(jù)Html語(yǔ)言中的<table>和<div>標(biāo)記,解析所有新聞網(wǎng)頁(yè)的Html數(shù)據(jù),得到Html樹(shù);(2)將由從同一站點(diǎn)抓取的由模版生成的并且時(shí)間相鄰的兩個(gè)網(wǎng)頁(yè)的Html樹(shù)的各層次數(shù)據(jù)做對(duì)比,把坐標(biāo)相同,所包含信息也相同的table節(jié)點(diǎn)或div節(jié)點(diǎn)剔除;(3)將Html樹(shù)中各層次的table節(jié)點(diǎn)內(nèi)的數(shù)據(jù)進(jìn)行細(xì)化識(shí)別,區(qū)分出標(biāo)題信息和內(nèi)容信息;(4)重組處理后的Html樹(shù)中各個(gè)節(jié)點(diǎn)內(nèi)的數(shù)據(jù),提取所需的數(shù)據(jù)信息。更進(jìn)一步,為使本發(fā)明具有更好的效果,步驟(1)中解析所有新聞網(wǎng)頁(yè)的Html數(shù)據(jù),構(gòu)建Html樹(shù)時(shí),采用如下方法1)初始化一個(gè)空數(shù)組T,用于保存Html樹(shù)中的各個(gè)table結(jié)構(gòu)體;所述的table結(jié)構(gòu)體用來(lái)表示table節(jié)點(diǎn),形式如下structTable{此table節(jié)點(diǎn)的坐標(biāo);此table節(jié)點(diǎn)所包含的信息;};上述table節(jié)點(diǎn)的坐標(biāo)即table節(jié)點(diǎn)在整個(gè)Html樹(shù)中的位置用一個(gè)向量來(lái)表示,即每一個(gè)table節(jié)點(diǎn)均與一個(gè)向量v=(n1,n2,n3,…,nk)相對(duì)應(yīng),v的第i個(gè)分量ni的含義是Html樹(shù)中第i層的第ni個(gè)節(jié)點(diǎn);2)初始化一個(gè)棧,設(shè)從棧底到棧頂元素依次標(biāo)記為a,a[1],a[2],a[3],…,且0=a=a[1]=a[2]=a[3]=…;并設(shè)置一個(gè)棧元素指針p,指向棧頂元素,由于初始時(shí)棧內(nèi)沒(méi)有元素,可假設(shè)p指向一個(gè)虛擬元素a[-1];3)掃描待處理的Html文檔,如果遇到<table>標(biāo)記,即遇到一個(gè)新的table節(jié)點(diǎn)時(shí),將棧元素指針p向上移一格,然后將棧元素指針p指向的元素的值加1,設(shè)此時(shí)棧元素指針p指向的棧元素為a[k],那么table節(jié)點(diǎn)A的坐標(biāo)就是從棧底元素a到a[k]所構(gòu)成的序列,即向量(a,a[1],a[2],…,a[k]),由此得到table節(jié)點(diǎn)A的坐標(biāo);4)如果遇到</table>節(jié)點(diǎn),即一個(gè)table節(jié)點(diǎn)結(jié)束時(shí),將棧元素指針p向下移一格,此時(shí)構(gòu)造一個(gè)新table結(jié)構(gòu)體,把當(dāng)前table節(jié)點(diǎn)的坐標(biāo)和所包含的信息存于此table結(jié)構(gòu)體中,然后把此結(jié)構(gòu)體添加到數(shù)組T的末尾位置;5)如果遇到其它字符,設(shè)棧元素指針p指向的棧元素為a[k],那么當(dāng)前正在掃描的table節(jié)點(diǎn)的坐標(biāo)就是從棧底元素a到a[k]所構(gòu)成的序列,即向量(a,a[1],a[2],…,a[k]),把此字符添加到坐標(biāo)為(a,a[1],a[2],…,a[k])的table節(jié)點(diǎn)所包含的信息里。6)如果還沒(méi)有掃描到Html文檔末尾,則繼續(xù)掃描,轉(zhuǎn)入第3)步,否則結(jié)束,返回保存了Html樹(shù)層次信息的數(shù)組T。更進(jìn)一步,為使本發(fā)明具有更好的效果,步驟(2)中過(guò)濾數(shù)據(jù),刪除不需要的數(shù)據(jù)信息時(shí),采用如下的方法設(shè)C和D是由相同模板生成的兩個(gè)發(fā)布時(shí)間相鄰的新聞網(wǎng)頁(yè),1)經(jīng)過(guò)步驟(1)后得到網(wǎng)頁(yè)C的結(jié)構(gòu)體數(shù)組為T1;2)經(jīng)過(guò)步驟(1)后得到網(wǎng)頁(yè)D的結(jié)構(gòu)體數(shù)組為T2;3)遍歷T1中每個(gè)table結(jié)構(gòu)體,對(duì)T1中每個(gè)結(jié)構(gòu)體,設(shè)為S1進(jìn)行如下操作a)遍歷T2,在T2中找到與S1坐標(biāo)值相同的結(jié)構(gòu)體,設(shè)為S2;b)判斷S1包含的信息是否與S2包含的信息中相同(鏈接文字除外),則在T1中刪除S1,在T2中刪除S2。更進(jìn)一步,為使本發(fā)明具有更好的效果,步驟(3)中將Html樹(shù)中各層次的table節(jié)點(diǎn)內(nèi)的數(shù)據(jù)進(jìn)行細(xì)化識(shí)別,區(qū)分出標(biāo)題信息和內(nèi)容信息時(shí),采用如下的方法1)對(duì)table節(jié)點(diǎn)內(nèi)的結(jié)構(gòu)體,判斷該結(jié)構(gòu)體信息中有沒(méi)有標(biāo)題元素;2)如果該結(jié)構(gòu)體的標(biāo)題元素多于1個(gè),那么取第一個(gè)作為本結(jié)構(gòu)體的標(biāo)題,如果沒(méi)有標(biāo)題元素,說(shuō)明本table結(jié)構(gòu)體標(biāo)題為空。更進(jìn)一步,為使本發(fā)明具有更好的效果,步驟(4)中重組處理后的Html樹(shù)中各個(gè)節(jié)點(diǎn)內(nèi)的數(shù)據(jù)時(shí),采用如下方法1)初始化一個(gè)空字符串S;2)遍歷table結(jié)構(gòu)體數(shù)組T中每個(gè)table結(jié)構(gòu)體,把每個(gè)table結(jié)構(gòu)體包含的信息添加到S中;3)刪除S中的Html標(biāo)記,刪除Html標(biāo)記后的S即為所需提取的新聞網(wǎng)頁(yè)的正文內(nèi)容。本發(fā)明的效果在于采用本發(fā)明所述的方法,能夠處理從通過(guò)模板來(lái)生成網(wǎng)頁(yè)的新聞?wù)军c(diǎn)的信息采集任務(wù),能夠迅速自動(dòng)提取目標(biāo)新聞網(wǎng)頁(yè)的正文內(nèi)容,即使網(wǎng)頁(yè)改版,也不需要重新編寫程序,人工干預(yù)大大降低,從而極大地提高了網(wǎng)頁(yè)信息提取的效率和準(zhǔn)確率。本發(fā)明之所以具有以上效果,是由于本發(fā)明所述的方法采用了一種的新的解析Html樹(shù)的方法,可以高效準(zhǔn)確地知道Html中每個(gè)table節(jié)點(diǎn)的坐標(biāo)和所包含的信息;如果網(wǎng)頁(yè)改版,也能迅速的解析新模版的樹(shù)形結(jié)構(gòu)信息,然后比較由新模版生成的網(wǎng)頁(yè),仍能準(zhǔn)確抽取新聞?wù)男畔?。圖1是本發(fā)明的流程圖;圖2是本發(fā)明具體實(shí)施方式中解析Html樹(shù)的流程圖。具體實(shí)施例方式下面結(jié)合實(shí)施例及附圖,進(jìn)一步闡明本發(fā)明所述方法。以從新浪新聞的體育頻道抓取下來(lái)的按時(shí)間順序排列好的1000個(gè)新聞網(wǎng)頁(yè)中提取正文信息為例,如圖1所示,一種新聞網(wǎng)頁(yè)正文信息的提取方法,包括以下步驟(1)對(duì)1000個(gè)網(wǎng)頁(yè)用第三方網(wǎng)頁(yè)凈化工具(比如可以使用tidy工具),進(jìn)行規(guī)范化預(yù)處理,使之符合Html語(yǔ)言標(biāo)準(zhǔn),然后依據(jù)Html語(yǔ)言中的<table>和<div>標(biāo)記,解析所有新聞網(wǎng)頁(yè)的Html數(shù)據(jù),得到Html樹(shù);解析所有新聞網(wǎng)頁(yè)的Html數(shù)據(jù),構(gòu)建Html樹(shù)時(shí),采用如下方法由于在本發(fā)明中,Html標(biāo)記<table>和<div>作用是相同,因此本發(fā)明以<table>為例來(lái)闡述,<div>的情形完全類同于<table>。以如下的Html片段為例(如上所述,只標(biāo)出所關(guān)心的<table>節(jié)點(diǎn),//是注釋),闡明本發(fā)明所涉及的述語(yǔ)<table>//第一個(gè)<table>節(jié)點(diǎn)開(kāi)始Text1<table>//第二個(gè)<table>節(jié)點(diǎn)開(kāi)始Text2<table>//第三個(gè)<table>節(jié)點(diǎn)開(kāi)始Text3</table>//第三個(gè)<table>節(jié)點(diǎn)結(jié)束Text4</table>//第二個(gè)<table>節(jié)點(diǎn)結(jié)束<table>//第四個(gè)<table>節(jié)點(diǎn)開(kāi)始Text4</table>//第四個(gè)<table>節(jié)點(diǎn)結(jié)束</table>//第一個(gè)<table>節(jié)點(diǎn)結(jié)束將每個(gè)table開(kāi)始符(以<table>為標(biāo)志)和結(jié)束符(以</table>為標(biāo)志)之間的Html內(nèi)容作為一個(gè)table節(jié)點(diǎn),那么從上面的片段可以看出,每個(gè)table節(jié)點(diǎn)里面還可以嵌套其它table節(jié)點(diǎn),比如第三個(gè)table節(jié)點(diǎn)里面就嵌套在第二個(gè)table節(jié)點(diǎn)里面。如果一個(gè)table節(jié)點(diǎn)A嵌套在另一個(gè)table節(jié)點(diǎn)B里面,那么A叫做B的子節(jié)點(diǎn),B叫做A的父節(jié)點(diǎn)。將位于一個(gè)table節(jié)點(diǎn)A開(kāi)始符和結(jié)束符之間,且不位于此節(jié)點(diǎn)任何子節(jié)點(diǎn)開(kāi)始符和結(jié)束符之間的Html內(nèi)容叫做A包含的信息。將一個(gè)table節(jié)點(diǎn)所對(duì)應(yīng)的向量稱為此table節(jié)點(diǎn)在Html樹(shù)中的坐標(biāo)。上述Html片段中,第二個(gè)table節(jié)點(diǎn)包含的信息為Text2和Text4,第三個(gè)table節(jié)點(diǎn)包含的信息為Text3。用直觀的形式表達(dá)Html樹(shù)狀層次的嵌套信息,即利用一個(gè)向量來(lái)表示所關(guān)心的table節(jié)點(diǎn)在整個(gè)Html樹(shù)中的位置。每一個(gè)table節(jié)點(diǎn)均與一個(gè)向量v=(n1,n2,n3,…,nk)相對(duì)應(yīng),v的第i個(gè)分量ni的含義是Html樹(shù)中第i層的第ni個(gè)節(jié)點(diǎn)。如果一個(gè)table節(jié)點(diǎn)對(duì)應(yīng)向量是(1,2,3),那么就說(shuō)明此table節(jié)點(diǎn)是Html樹(shù)第一層第一個(gè)table節(jié)點(diǎn)的第二個(gè)子節(jié)點(diǎn)的第三個(gè)子節(jié)點(diǎn)。上述Html片段中第三個(gè)和第四個(gè)table節(jié)點(diǎn)的坐標(biāo)分別為(1,1,1)和(1,2)。采用結(jié)構(gòu)體的形式來(lái)表示table節(jié)點(diǎn),形式如下structTable{此table節(jié)點(diǎn)的坐標(biāo);此table節(jié)點(diǎn)所包含的信息;};將Html文檔轉(zhuǎn)換為各個(gè)table節(jié)點(diǎn)的結(jié)構(gòu)體時(shí),采用如下方法1)初始化一個(gè)空數(shù)組T,用于保存各個(gè)table結(jié)構(gòu)體;2)初始化一個(gè)棧,設(shè)從棧底到棧頂元素依次標(biāo)記為a,a[1],a[2],a[3],…,且0=a=a[1]=a[2]=a[3]=…;并設(shè)置一個(gè)棧元素指針p,指向棧頂元素。由于初始時(shí)棧內(nèi)沒(méi)有元素,可假設(shè)p指向一個(gè)虛擬元素a[-1];3)掃描待處理的Html文檔,如果遇到<table>標(biāo)記,即遇到一個(gè)新的table節(jié)點(diǎn)時(shí),將棧元素指針p向上移一格,然后將棧元素指針p指向的元素的值加1,設(shè)此時(shí)棧元素指針p指向的棧元素為a[k],那么table節(jié)點(diǎn)A的坐標(biāo)就是從棧底元素a到a[k]所構(gòu)成的序列,即向量(a,a[1],a[2],…,a[k]),由此得到table節(jié)點(diǎn)A的坐標(biāo);4)如果遇到</table>節(jié)點(diǎn),即一個(gè)table節(jié)點(diǎn)結(jié)束時(shí),將棧元素指針p向下移一格,此時(shí)構(gòu)造一個(gè)新table結(jié)構(gòu)體,把當(dāng)前table節(jié)點(diǎn)的坐標(biāo)和所包含的信息存于此table結(jié)構(gòu)體中,然后把此結(jié)構(gòu)體添加到數(shù)組T的末尾位置;5)如果遇到其它字符,設(shè)棧元素指針p指向的棧元素為a[k],那么當(dāng)前正在掃描的table節(jié)點(diǎn)的坐標(biāo)就是從棧底元素a到a[k]所構(gòu)成的序列,即向量(a,a[1],a[2],…,a[k]),把此字符添加到坐標(biāo)為(a,a[1],a[2],…,a[k])的table節(jié)點(diǎn)所包含的信息里。6)如果還沒(méi)有掃描到Html文檔末尾,則繼續(xù)掃描,轉(zhuǎn)入第3)步,否則結(jié)束,返回保存了Html樹(shù)層次信息的數(shù)組T。(2)將由相同模版生成的Html樹(shù)的各層次數(shù)據(jù)做對(duì)比,過(guò)濾數(shù)據(jù),刪除不需要的數(shù)據(jù)信息;在本實(shí)施例中,首先將所有網(wǎng)頁(yè)按時(shí)間順序排序,設(shè)網(wǎng)頁(yè)集合為S,從網(wǎng)頁(yè)集合S中取出時(shí)間相鄰的兩個(gè)網(wǎng)頁(yè)W1,W2;解析網(wǎng)頁(yè)W1,W2的Html樹(shù),得到每個(gè)網(wǎng)頁(yè)中table節(jié)點(diǎn)的坐標(biāo)和其所包含的信息;比較W1,W2的Html樹(shù),過(guò)濾數(shù)據(jù),刪除不需要的信息,具體采用如下方法1)經(jīng)過(guò)步驟(1)后得到網(wǎng)頁(yè)W1的結(jié)構(gòu)體數(shù)組為T1;2)經(jīng)過(guò)步驟(1)后得到網(wǎng)頁(yè)W2的結(jié)構(gòu)體數(shù)組為T2;3)遍歷T1中每個(gè)table結(jié)構(gòu)體,對(duì)T1中每個(gè)結(jié)構(gòu)體,設(shè)為S1進(jìn)行如下操作a)遍歷T2,在T2中找到與S1坐標(biāo)值相同的結(jié)構(gòu)體,設(shè)為S2;b)判斷S1包含的信息是否與S2包含的信息中相同(鏈接文字除外),則在T1中刪除S1,在T2中刪除S2。(3)將Html樹(shù)中各層次的table節(jié)點(diǎn)內(nèi)的數(shù)據(jù)進(jìn)行細(xì)化識(shí)別,區(qū)分出標(biāo)題信息和內(nèi)容信息;經(jīng)過(guò)步驟(2)后,不需要的廣告信息已經(jīng)被刪除,但是還需要對(duì)未被過(guò)濾的table結(jié)構(gòu)體進(jìn)行內(nèi)容的細(xì)化識(shí)別,識(shí)別出標(biāo)題信息和內(nèi)容信息,通常新聞的標(biāo)題一般都以大號(hào)黑體形式出現(xiàn),這在Html中,是通過(guò)<th>,<b>,<strong>,<h1>,<h2>等標(biāo)記實(shí)現(xiàn)的,這些元素可稱之為標(biāo)題元素。因此可以采取以下具體步驟,來(lái)實(shí)現(xiàn)table結(jié)構(gòu)體內(nèi)容的細(xì)化識(shí)別。1)對(duì)table節(jié)點(diǎn)內(nèi)的結(jié)構(gòu)體,判斷該結(jié)構(gòu)體信息中有沒(méi)有標(biāo)題元素;2)如果該結(jié)構(gòu)體的標(biāo)題元素多于1個(gè),那么取第一個(gè)作為本結(jié)構(gòu)體的標(biāo)題,如果沒(méi)有標(biāo)題元素,說(shuō)明本table結(jié)構(gòu)體標(biāo)題為空。(4)重組處理后的Html樹(shù)中各個(gè)節(jié)點(diǎn)內(nèi)的數(shù)據(jù),提取所需的數(shù)據(jù)信息。由步驟(1)得到的table結(jié)構(gòu)體數(shù)組T經(jīng)過(guò)步驟(2)和步驟(3)的處理后,數(shù)組T里面的每個(gè)結(jié)構(gòu)體的信息都已經(jīng)被識(shí)別了,下面要做的就是把這些數(shù)組T里面的每個(gè)table結(jié)構(gòu)體所包含的信息合并起來(lái),可采用如下方法1)初始化一個(gè)空字符串S;2)遍歷table結(jié)構(gòu)體數(shù)組T中每個(gè)table結(jié)構(gòu)體,把每個(gè)table結(jié)構(gòu)體包含的信息添加到S中;3)刪除S中的Html標(biāo)記,刪除Html標(biāo)記后的S1即為所需提取的新聞網(wǎng)頁(yè)的正文內(nèi)容。試驗(yàn)效果證明,本方抓取新聞網(wǎng)頁(yè)的準(zhǔn)確率很高,在存在改版情況下,仍能達(dá)到98%以上的準(zhǔn)確率,而且時(shí)間效率高。本發(fā)明所述的方法并不限于具體實(shí)施方式中所述的實(shí)施例,本領(lǐng)域技術(shù)人員根據(jù)本發(fā)明的技術(shù)方案得出其他的實(shí)施方式,同樣屬于本發(fā)明的技術(shù)創(chuàng)新范圍。權(quán)利要求1.一種新聞網(wǎng)頁(yè)正文信息的提取方法,包括以下步驟(1)對(duì)網(wǎng)頁(yè)進(jìn)行規(guī)范化預(yù)處理,使之符合Html語(yǔ)言標(biāo)準(zhǔn),然后依據(jù)Html語(yǔ)言中的<table>和<div>標(biāo)記,解析所有新聞網(wǎng)頁(yè)的Html數(shù)據(jù),得到Html樹(shù);(2)將由相同模版生成的Html樹(shù)的各層次數(shù)據(jù)做對(duì)比,把坐標(biāo)相同,所包含的有效信息也相同的table節(jié)點(diǎn)或div節(jié)點(diǎn)剔除;(3)將Html樹(shù)中各層次的table節(jié)點(diǎn)內(nèi)的數(shù)據(jù)進(jìn)行細(xì)化識(shí)別,區(qū)分出標(biāo)題信息和內(nèi)容信息;(4)重組處理后的Html樹(shù)中各個(gè)節(jié)點(diǎn)內(nèi)的數(shù)據(jù),提取所需的數(shù)據(jù)信息。2.如權(quán)利要求1所述的一種新聞網(wǎng)頁(yè)正文信息的提取方法,其特征是步驟(1)中解析所有新聞網(wǎng)頁(yè)的Html數(shù)據(jù),構(gòu)建Html樹(shù)時(shí),采用如下方法1)初始化一個(gè)空數(shù)組T,用于保存Html樹(shù)中的各個(gè)table結(jié)構(gòu)體;所述的table結(jié)構(gòu)體用來(lái)表示table節(jié)點(diǎn),形式如下structTable{此table節(jié)點(diǎn)的坐標(biāo);此table節(jié)點(diǎn)所包含的信息;};上述table節(jié)點(diǎn)的坐標(biāo)即table節(jié)點(diǎn)在整個(gè)Html樹(shù)中的位置用一個(gè)向量來(lái)表示,即每一個(gè)table節(jié)點(diǎn)均與一個(gè)向量v=(n1,n2,n3,...,nk)相對(duì)應(yīng),v的第i個(gè)分量ni的含義是Html樹(shù)中第i層的第ni個(gè)節(jié)點(diǎn);2)初始化一個(gè)棧,設(shè)從棧底到棧頂元素依次標(biāo)記為a,a[1],a[2],a[3],...,且0=a=a[1]=a[2]=a[3]=...;并設(shè)置一個(gè)棧元素指針p,指向棧頂元素,由于初始時(shí)棧內(nèi)沒(méi)有元素,可假設(shè)p指向一個(gè)虛擬元素a[-1];3)掃描待處理的Html文檔,如果遇到<table>標(biāo)記,即遇到一個(gè)新的table節(jié)點(diǎn)時(shí),將棧元素指針p向上移一格,然后將棧元素指針p指向的元素的值加1,設(shè)此時(shí)棧元素指針p指向的棧元素為a[k],那么table節(jié)點(diǎn)A的坐標(biāo)就是從棧底元素a到a[k]所構(gòu)成的序列,即向量(a,a[1],a[2],...,a[k]),由此得到table節(jié)點(diǎn)A的坐標(biāo);4)如果遇到</table>節(jié)點(diǎn),即一個(gè)table節(jié)點(diǎn)結(jié)束時(shí),將棧元素指針p向下移一格,此時(shí)構(gòu)造一個(gè)新table結(jié)構(gòu)體,把當(dāng)前table節(jié)點(diǎn)的坐標(biāo)和所包含的信息存于此table結(jié)構(gòu)體中,然后把此結(jié)構(gòu)體添加到數(shù)組T的末尾位置;5)如果遇到其它字符,設(shè)棧元素指針p指向的棧元素為a[k],那么當(dāng)前正在掃描的table節(jié)點(diǎn)的坐標(biāo)就是從棧底元素a到a[k]所構(gòu)成的序列,即向量(a,a[1],a[2],...,a[k]),把此字符添加到坐標(biāo)為(a,a[1],a[2],...,a[k])的table節(jié)點(diǎn)所包含的信息里。6)如果還沒(méi)有掃描到Html文檔末尾,則繼續(xù)掃描,轉(zhuǎn)入第3)步,否則結(jié)束,返回保存了Html樹(shù)層次信息的數(shù)組T。3.如權(quán)利要求1、2所述的一種新聞網(wǎng)頁(yè)正文信息的提取方法,其特征是步驟(2)中過(guò)濾數(shù)據(jù),刪除不需要的數(shù)據(jù)信息時(shí),采用如下的方法設(shè)C和D是由相同模板生成的兩個(gè)發(fā)布時(shí)間相鄰的新聞網(wǎng)頁(yè),1)經(jīng)過(guò)步驟(1)后得到網(wǎng)頁(yè)C的結(jié)構(gòu)體數(shù)組為T1;2)經(jīng)過(guò)步驟(1)后得到網(wǎng)頁(yè)D的結(jié)構(gòu)體數(shù)組為T2;3)遍歷T1中每個(gè)table結(jié)構(gòu)體,對(duì)T1中每個(gè)結(jié)構(gòu)體,設(shè)為S1并進(jìn)行如下操作a)遍歷T2,在T2中找到與S1坐標(biāo)值相同的結(jié)構(gòu)體,設(shè)為S2;b)判斷S1包含的信息是否與S2包含的信息中相同,鏈接文字除外,如果相同,則在T1中刪除S1,在T2中刪除S2。4.如權(quán)利要求1、2所述的一種新聞網(wǎng)頁(yè)正文信息的提取方法,其特征是步驟(3)中將Html樹(shù)中各層次的table節(jié)點(diǎn)內(nèi)的數(shù)據(jù)進(jìn)行細(xì)化識(shí)別,區(qū)分出標(biāo)題信息和內(nèi)容信息時(shí),采用如下的方法1)對(duì)table節(jié)點(diǎn)內(nèi)的結(jié)構(gòu)體,判斷該結(jié)構(gòu)體信息中有沒(méi)有標(biāo)題元素;2)如果該結(jié)構(gòu)體的標(biāo)題元素多于1個(gè),那么取第一個(gè)作為本結(jié)構(gòu)體的標(biāo)題,如果沒(méi)有標(biāo)題元素,說(shuō)明本table結(jié)構(gòu)體標(biāo)題為空。5.如權(quán)利要求3所述的一種新聞網(wǎng)頁(yè)正文信息的提取方法,其特征是步驟(3)中將Html樹(shù)中各層次的table節(jié)點(diǎn)內(nèi)的數(shù)據(jù)進(jìn)行細(xì)化識(shí)別,區(qū)分出標(biāo)題信息和內(nèi)容信息時(shí),采用如下的方法1)對(duì)table節(jié)點(diǎn)內(nèi)的結(jié)構(gòu)體,判斷該結(jié)構(gòu)體信息中有沒(méi)有標(biāo)題元素;2)如果該結(jié)構(gòu)體的標(biāo)題元素多于1個(gè),那么取第一個(gè)作為本結(jié)構(gòu)體的標(biāo)題,如果沒(méi)有標(biāo)題元素,說(shuō)明本table結(jié)構(gòu)體標(biāo)題為空。6.如權(quán)利要求1所述的一種新聞網(wǎng)頁(yè)正文信息的提取方法,其特征是步驟(4)中重組處理后的Html樹(shù)中各個(gè)節(jié)點(diǎn)內(nèi)的數(shù)據(jù)時(shí),采用如下方法1)初始化一個(gè)空字符串S;2)遍歷table結(jié)構(gòu)體數(shù)組T中每個(gè)table結(jié)構(gòu)體,把每個(gè)table結(jié)構(gòu)體包含的信息添加到S中;3)刪除S中的Html標(biāo)記,刪除Html標(biāo)記后的S1即為所需提取的新聞網(wǎng)頁(yè)的正文內(nèi)容。7.如權(quán)利要求5所述的一種新聞網(wǎng)頁(yè)正文信息的提取方法,其特征是步驟(4)中重組處理后的Html樹(shù)中各個(gè)節(jié)點(diǎn)內(nèi)的數(shù)據(jù)時(shí),采用如下方法1)初始化一個(gè)空字符串S;2)遍歷table結(jié)構(gòu)體數(shù)組T中每個(gè)table結(jié)構(gòu)體,把每個(gè)table結(jié)構(gòu)體包含的信息添加到S中;3)刪除S中的Html標(biāo)記,刪除Html標(biāo)記后的S1即為所需提取的新聞網(wǎng)頁(yè)的正文內(nèi)容。全文摘要本發(fā)明涉及一種新聞網(wǎng)頁(yè)正文信息的提取方法,屬于網(wǎng)頁(yè)信息分析處理
技術(shù)領(lǐng)域
?,F(xiàn)有技術(shù)中,通常采用包裝器來(lái)抽取網(wǎng)頁(yè)中感興趣的數(shù)據(jù),而包裝器是根據(jù)一定的信息模式識(shí)別知識(shí)從特定的信息源中按固定規(guī)則抽取相關(guān)內(nèi)容,并以特定形式加以表示的,包裝器所需的信息模式識(shí)別知識(shí)的獲取是一個(gè)費(fèi)時(shí)費(fèi)力且需要較高智能的工作。本發(fā)明所述的方法以堆棧數(shù)據(jù)結(jié)構(gòu),把網(wǎng)頁(yè)數(shù)據(jù)的層次結(jié)構(gòu)信息轉(zhuǎn)化為用向量表達(dá),構(gòu)建和解析Html樹(shù),然后將Html樹(shù)的各層次數(shù)據(jù)做對(duì)比,進(jìn)行數(shù)據(jù)過(guò)濾,細(xì)化、識(shí)別,和數(shù)據(jù)重組,提取所需的數(shù)據(jù)信息。采用本發(fā)明所述的方法,適用于長(zhǎng)期從一固定站點(diǎn)抓取由模版生成的新聞網(wǎng)頁(yè)中的新聞信息,速度快,準(zhǔn)確性高。文檔編號(hào)G06F17/30GK1786965SQ20051013237公開(kāi)日2006年6月14日申請(qǐng)日期2005年12月21日優(yōu)先權(quán)日2005年12月21日發(fā)明者舒文兵,吳於茜,肖建國(guó)申請(qǐng)人:北大方正集團(tuán)有限公司,北京北大方正技術(shù)研究院有限公司,北京大學(xué)
網(wǎng)友詢問(wèn)留言 已有0條留言
  • 還沒(méi)有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1