專利名稱:一種基于標(biāo)點(diǎn)連續(xù)性的通用網(wǎng)頁正文提取方法及其系統(tǒng)的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及計(jì)算機(jī)技術(shù)領(lǐng)域,特別是涉及一種基于標(biāo)點(diǎn)連續(xù)性的通用網(wǎng)頁正文提取方法及其系統(tǒng)。
背景技術(shù):
隨著互聯(lián)網(wǎng)的飛速發(fā)展,越來越多的企業(yè)和個(gè)人把信息公布于網(wǎng)上。每天,互聯(lián)網(wǎng)上都有成千上萬的網(wǎng)頁產(chǎn)生,人們可以跨越時(shí)間和空間界限來共享大量信息,互聯(lián)網(wǎng)已經(jīng)成為了世界上一個(gè)最大的信息源。在這個(gè)浩如煙海的信息海洋中,如何幫助人們快速的提取有效的信息成為一個(gè)重要的課題。網(wǎng)頁作為互聯(lián)網(wǎng)上最為廣泛的信息載體,包含了絕大部分的互聯(lián)網(wǎng)信息,成為了搜索引擎和普通用戶獲取信息的最常用手段。但是,以網(wǎng)頁為獲取信息的單元是不足夠的, 因?yàn)榫W(wǎng)頁往往包含了多種主題的信息,如包含導(dǎo)航塊、廣告塊、版權(quán)聲明塊,信息塊等等。對于息的獲取者而目,信息塊往往是其唯一關(guān)心的對象。其余的息成為了噪聲。對于如何去除網(wǎng)頁噪聲,自動(dòng)提取信息塊已有不少研究I.基于文檔對象模型(DOM, Document Object Model)的信息提取HTML是一種規(guī)范,一種標(biāo)準(zhǔn),它通過標(biāo)記符號(hào)來標(biāo)記要顯示的網(wǎng)頁中的各個(gè)部分。 通過提取HTML文檔中的標(biāo)記可以生成一顆DOM樹,再對樹中的特定節(jié)點(diǎn)(Table、Div,P)等進(jìn)行處理來得到網(wǎng)頁有用信息,如《基于統(tǒng)計(jì)的網(wǎng)頁正文信息抽取方法的研究》中認(rèn)為網(wǎng)頁的正文信息(有用信息)一般存在于一個(gè)Table節(jié)點(diǎn)中,通過統(tǒng)計(jì)節(jié)點(diǎn)中中文文字的信息得到特定的Table節(jié)點(diǎn),提取其中的文字得到網(wǎng)頁的有用正文。此類研究還有《基于標(biāo)記窗的網(wǎng)頁正文信息提取方法》等?;贒OM的網(wǎng)頁正文提取方法存在幾個(gè)問題不少的網(wǎng)頁不是結(jié)構(gòu)良好的,形成的DOM樹可能不規(guī)范;HTML作為標(biāo)記語言關(guān)注于如何顯示網(wǎng)頁,一般不關(guān)心網(wǎng)頁的分塊和語義信息;不同網(wǎng)站的網(wǎng)頁排版往往不同(正文的信息不一定都包含在一個(gè)Table節(jié)點(diǎn)中)。2.基于視覺的信息提取從人類的角度來看,當(dāng)一個(gè)用戶觀察Web頁面的時(shí)候,它總是會(huì)自然而然的把一個(gè)語義塊作為一個(gè)單一對象來看待,而不會(huì)管Web頁面的內(nèi)部結(jié)構(gòu)是如何描述的。通常情況下,在分辨語義塊的時(shí)候,用戶會(huì)使用一些視覺因素來進(jìn)行幫助,比如背景顏色、字體顏色和大小、邊框、邏輯塊和邏輯塊之間的間距等等。因此如果充分的使用Web頁面的視覺提示,并結(jié)合DOM樹進(jìn)行頁面語義分塊,則可以彌補(bǔ)僅使用DOM樹所帶來的一些缺憾。這類方法的代表是《VIPS :基于視覺的頁面分割算法》,基于視覺的正文提取方法需要獲取頁面的視覺因素,這是一個(gè)計(jì)算量比較大的過程,而且如果頁面的視覺因素通過不同的文件進(jìn)行控制(如通過CSS層疊樣式表文件進(jìn)行控制),導(dǎo)致了獲取網(wǎng)頁還需要獲取其相關(guān)的控制文件,需要多次請求,效率比較低下。而且對于網(wǎng)頁風(fēng)格不是十分良好的情況,基于視覺的正文提取精確度也會(huì)比較低下。3.基于規(guī)則制定和機(jī)器學(xué)習(xí)的方法
這種方法是基于機(jī)器學(xué)習(xí)的,通常使用數(shù)據(jù)挖掘中的分類技術(shù)通過設(shè)定一系列的與網(wǎng)頁正文相關(guān)的屬性,對大量(越多越好)的網(wǎng)頁訓(xùn)練集進(jìn)行訓(xùn)練得到能夠判斷一個(gè)網(wǎng)頁的某個(gè)區(qū)塊是不是正文區(qū)塊的一個(gè)分類器,再用訓(xùn)練后的分類器指導(dǎo)獲取網(wǎng)頁的正文。這類方法在訓(xùn)練過程中需要對于訓(xùn)練集中的網(wǎng)頁正文塊進(jìn)行標(biāo)識(shí),這是一個(gè)工作量很大的過程。而且不同的網(wǎng)站規(guī)則往往不盡相同,能得到一個(gè)通用的規(guī)則難度很大,同樣也因?yàn)槿绱?,?dǎo)致了網(wǎng)頁正文提取的精確度比較低。上述三種提取方法中基于DOM的統(tǒng)計(jì)信息的方法針對于網(wǎng)站風(fēng)格良好,排版較一致的網(wǎng)頁,而由于開發(fā)者的不同,HTML網(wǎng)頁標(biāo)簽應(yīng)用的復(fù)雜多樣化,網(wǎng)站的排版布局往往也是千變?nèi)f化,已有研究的實(shí)驗(yàn)網(wǎng)頁大多基于正規(guī)的門戶網(wǎng)站,方法的通用性比較差?;谝曈X信息的方法需要的計(jì)算量大,視覺啟發(fā)規(guī)則對于不同網(wǎng)站也不一定通用(比如對于標(biāo)題的啟發(fā)規(guī)則塊A文字的字體是否比塊B的大,塊A、塊B的字體顏色是否不同,對于不同網(wǎng)站就不可能完全通用),基于視覺信息的方法對于CSS控制的頁面排版的網(wǎng)頁會(huì)有很大的限制,而現(xiàn)在越來越多的網(wǎng)頁版面控制采用CSS,所以該方法的實(shí)際應(yīng)用較少,通用性不強(qiáng)。基于機(jī)器學(xué)習(xí)的方法的難點(diǎn)主要有兩個(gè)第一個(gè)是網(wǎng)頁訓(xùn)練集的數(shù)據(jù)量大小直接和分類器的提取準(zhǔn)確率相關(guān),需要人工標(biāo)注網(wǎng)頁正文的區(qū)域,工作量繁重。第二個(gè)難點(diǎn)是是否存在一個(gè)可以判斷網(wǎng)頁正文區(qū)間并且具有較高準(zhǔn)確率的通用的規(guī)則集,現(xiàn)在還沒有研究證明。
發(fā)明內(nèi)容
本發(fā)明的目的在于克服現(xiàn)有技術(shù)之不足,提供一種基于標(biāo)點(diǎn)連續(xù)性的通用網(wǎng)頁正文提取方法及其系統(tǒng),是利用標(biāo)點(diǎn)的連續(xù)性來獲取網(wǎng)頁正文,具有處理速度快、適應(yīng)性強(qiáng)和通用性強(qiáng)的特點(diǎn)。本發(fā)明解決其技術(shù)問題所采用的技術(shù)方案是一種基于標(biāo)點(diǎn)連續(xù)性的通用網(wǎng)頁正文提取方法,包括如下步驟讀入文件,并把讀入的文件轉(zhuǎn)化為Unicode的字符流形式的html源代碼;對html源代碼進(jìn)行預(yù)處理,用預(yù)置的噪聲標(biāo)記來去除html源代碼中存在的一些對于網(wǎng)頁正文提取無幫助作用的字符串;生成html標(biāo)記樹,通過預(yù)置的解析工具把html源代碼表示成標(biāo)記樹的形式;對標(biāo)記樹中的正文格式信息進(jìn)行處理,用預(yù)置的特定字符去替換對應(yīng)的格式信提取文本文字的節(jié)點(diǎn)并采用過濾算法生成html標(biāo)記樹中的文字節(jié)點(diǎn)序列;定義一個(gè)文章的常用標(biāo)點(diǎn)集合P= {。,;“”…},以集合P中的節(jié)點(diǎn)對上一步驟中的文字節(jié)點(diǎn)序列進(jìn)行重新的文字劃分,對于文字節(jié)點(diǎn)中的字符如果是集合P中的標(biāo)點(diǎn), 則在標(biāo)點(diǎn)后加分隔符或空格符作為分離的標(biāo)志;利用標(biāo)點(diǎn)的延續(xù)性,抽取標(biāo)點(diǎn)連續(xù)性最高的文字塊,返回為正文。所述的抽取標(biāo)點(diǎn)連續(xù)性最高的文字塊的處理過程,包括如下步驟a.以分隔符或空格符為劃分點(diǎn)對上一步驟處理后的字符串進(jìn)行切分,切分后得到字符串?dāng)?shù)組A= [S1, s2, S3,…,sn],其中Sn為一個(gè)短句;b.遍歷數(shù)組A,把A中短句以集合P中的標(biāo)點(diǎn)為結(jié)束的短句Sm,加入到標(biāo)點(diǎn)句數(shù)組B= [si; Sj, sk,…,sn],并記錄短句的序號(hào)m ;c.依次計(jì)算集合B中元素的下標(biāo)序號(hào)差…,如果k_j大于閾值,則表示短句Sp Sk之間不存在連續(xù)性,令短句集合Si, si+1, si+2…Sp為當(dāng)前最長標(biāo)點(diǎn)連續(xù)字符串集合, 緩存為 L = (Si, si+1,si+2…SjJ ;d.重復(fù)步驟C,如果當(dāng)前獲取的最長標(biāo)點(diǎn)連續(xù)字符串集合長度大于L的長度,則替換L為當(dāng)前獲取的最長標(biāo)點(diǎn)連續(xù)字符串集合;e.數(shù)組B被處理完畢后,集合L中的文字即為網(wǎng)頁正文。本發(fā)明的一種基于標(biāo)點(diǎn)連續(xù)性的通用網(wǎng)頁正文提取方法,是利用標(biāo)點(diǎn)的連續(xù)性來獲取網(wǎng)頁的正文。本方法的依據(jù)是標(biāo)點(diǎn)符號(hào)是中文中斷句、語義切分的重要標(biāo)志,一篇無標(biāo)點(diǎn)的中文文章幾乎無法讓人正確理解文章所要表達(dá)的意思,標(biāo)點(diǎn)是中文文章中不可或缺的標(biāo)志,因此,標(biāo)點(diǎn)符號(hào)是網(wǎng)頁正文中不可或缺的一部分;而且,網(wǎng)頁的正文中通常存在著連續(xù)出現(xiàn)的標(biāo)點(diǎn);這樣,就可以判定標(biāo)點(diǎn)連續(xù)性最高的文字往往是網(wǎng)頁的正文。此處標(biāo)點(diǎn)的連續(xù)性指的是在網(wǎng)頁中對出現(xiàn)的文字,進(jìn)行分塊后每一塊文字中標(biāo)點(diǎn)存在情況的延續(xù)性。首先把待提取正文的html源文件轉(zhuǎn)化為Unicode的字符流形式,Unicode字符集能存儲(chǔ)絕大多數(shù)網(wǎng)頁的正文編碼,統(tǒng)一的編碼有利于后續(xù)的字符處理程序。接著去除噪聲標(biāo)記信息,對在html源代碼中存在一些對于網(wǎng)頁正文提取無幫助作用,反而會(huì)對正文提取造成干擾的噪聲標(biāo)記塊,需要在預(yù)處理階段進(jìn)行刪除。如script 塊 (no) script. * 〈/ (no) script〉) 一般用于輔助功能,注釋塊 ! —. * —.>) 是開發(fā)者對于網(wǎng)頁源代碼的注釋。其他如下拉列表的select塊,格式控制的style塊,跑馬燈的marquee塊,等等對于網(wǎng)頁正文的提取也是無幫助的。再接著生成html標(biāo)記樹,html即超文本標(biāo)記語言,是標(biāo)準(zhǔn)通用標(biāo)記語言的一個(gè)子集,通過neko或者h(yuǎn)tmlparser等解析工具可以方便的把html源代碼表示成標(biāo)記樹的形式。然后,對于標(biāo)記樹中的正文格式控制信息進(jìn)行處理,對于換行的格式信息如P,BR 等換行標(biāo)記進(jìn)行替換成特殊字符以便存儲(chǔ)換行信息,對于字體、顏色等文字信息,本方法并不專注于保持原文的全部字體信息所以此類如F0NT,STR0NG等標(biāo)記信息作刪除處理(因?yàn)橛锌赡軐罄m(xù)的處理造成影響)。而后,提取文本文字的節(jié)點(diǎn)。網(wǎng)頁正文提取的是文字節(jié)點(diǎn)的集合,算法過濾提取 html標(biāo)記樹中的文字節(jié)點(diǎn)序列進(jìn)行后續(xù)的處理。再接著,定義一個(gè)文章的常用標(biāo)點(diǎn)集合P= {。,;…},以集合P中的節(jié)點(diǎn)對上一步驟中的文字節(jié)點(diǎn)序列進(jìn)行重新的文字劃分對于文字節(jié)點(diǎn)中的字符如果是集合P中的標(biāo)點(diǎn),則在標(biāo)點(diǎn)后加分隔字符(空格符)作為分尚的標(biāo)志。最后,利用標(biāo)點(diǎn)的延續(xù)性,抽取標(biāo)點(diǎn)連續(xù)性最高的文字塊,返回為正文。一種基于標(biāo)點(diǎn)連續(xù)性的通用網(wǎng)頁正文提取系統(tǒng),包括讀入模塊,該讀入模塊用來讀入文件,并把讀入的文件轉(zhuǎn)化為Unicode的字符流形式的html源代碼;去除噪聲標(biāo)記信息模塊,該去除噪聲標(biāo)記信息模塊用來對html源代碼進(jìn)行預(yù)處理,用預(yù)置的噪聲標(biāo)記來去除html源代碼中存在的一些對于網(wǎng)頁正文提取無幫助作用的字符串;
生成html標(biāo)記樹模塊,該生成html標(biāo)記樹模塊用來生成html標(biāo)記樹,通過預(yù)置的解析工具把html源代碼表示成標(biāo)記樹的形式;處理正文格式信息模塊,該處理正文格式信息模塊用來對標(biāo)記樹中的正文格式信息進(jìn)行處理,用預(yù)置的特定字符去替換對應(yīng)的格式信息;提取文本節(jié)點(diǎn)生成文本句子序列模塊,該提取文本節(jié)點(diǎn)生成文本句子序列模塊用來提取文本文字的節(jié)點(diǎn)并采用過濾算法生成html標(biāo)記樹中的文字節(jié)點(diǎn)序列;利用常用的標(biāo)點(diǎn)對文本序列塊重新分句模塊,該利用常用的標(biāo)點(diǎn)對文本序列塊重新分句模塊用來定義一個(gè)文章的常用標(biāo)點(diǎn)集合P= {。,;…},以集合P中的節(jié)點(diǎn)對上一步驟中的文字節(jié)點(diǎn)序列進(jìn)行重新的文字劃分,對于文字節(jié)點(diǎn)中的字符如果是集合P中的標(biāo)點(diǎn),則在標(biāo)點(diǎn)后加分隔符或空格符作為分離的標(biāo)志;利用標(biāo)點(diǎn)的連續(xù)性原理提取最長連續(xù)正文模塊,該利用標(biāo)點(diǎn)的連續(xù)性原理提取最長連續(xù)正文模塊用來利用標(biāo)點(diǎn)的延續(xù)性,抽取標(biāo)點(diǎn)連續(xù)性最高的文字塊,返回為正文。本發(fā)明的有益效果是,由于采用了讀入文件,轉(zhuǎn)化為Unicode ;去除噪聲標(biāo)記信息;生成html標(biāo)記樹;處理正文格式信息;提取文本節(jié)點(diǎn)生成文本句子序列;利用常用的標(biāo)點(diǎn)對文本序列塊重新分句;利用標(biāo)點(diǎn)的連續(xù)性原理提取最長連續(xù)正文等處理步驟來實(shí)現(xiàn)通用網(wǎng)頁正文提取,相對于現(xiàn)有技術(shù),具有如下優(yōu)點(diǎn)I、標(biāo)點(diǎn)符號(hào)是網(wǎng)頁正文必要部分,所以方法具有很高的通用性。2、標(biāo)點(diǎn)符號(hào)只處理文字串,無需分析網(wǎng)頁的各種結(jié)果信息,性能上具有比較大的優(yōu)勢,適合于實(shí)時(shí)的網(wǎng)頁正文提取。3、即使頁面結(jié)果復(fù)雜,含有多種干擾信息,該方法也能有效的提取網(wǎng)頁的正文部分,方法的針對性很強(qiáng)。4、標(biāo)點(diǎn)連續(xù)性最長的網(wǎng)頁文字為網(wǎng)頁的正文,也保證了網(wǎng)頁正文提取的精確度。以下結(jié)合附圖及實(shí)施例對本發(fā)明作進(jìn)一步詳細(xì)說明;但本發(fā)明的一種基于標(biāo)點(diǎn)連續(xù)性的通用網(wǎng)頁正文提取方法及其系統(tǒng)不局限于實(shí)施例。
圖I是一則網(wǎng)頁新聞頁面的示意圖;圖2是本發(fā)明方法的流程示意圖;圖3是本發(fā)明的html標(biāo)記樹的結(jié)構(gòu)示意圖。
具體實(shí)施例方式實(shí)施例,請參見圖I所示,圖I是一則網(wǎng)頁新聞頁面的示意圖,由圖I可以看出,新聞的正文中連續(xù)的標(biāo)點(diǎn)出現(xiàn)是必然的?;跇?biāo)點(diǎn)連續(xù)性的正文提取方法和基于視覺的正文提取有相同的點(diǎn)基于視覺的方法中正文區(qū)塊是標(biāo)點(diǎn)連續(xù)性最強(qiáng)的區(qū)塊。參見圖2所示,本發(fā)明的一種基于標(biāo)點(diǎn)連續(xù)性的通用網(wǎng)頁正文提取方法,包括如下步驟步驟SI :讀入文件,并把讀入的文件轉(zhuǎn)化為Unicode的字符流形式的html源代碼;即對應(yīng)于圖2的“讀入文件,轉(zhuǎn)化Unicode”框;步驟S2 :對html源代碼進(jìn)行預(yù)處理,用預(yù)置的噪聲標(biāo)記來去除html源代碼中存在的一些對于網(wǎng)頁正文提取無幫助作用的字符串;即對應(yīng)于圖2的“去除噪聲標(biāo)記信息” 框;步驟S3 :生成html標(biāo)記樹,通過預(yù)置的解析工具把html源代碼表示成標(biāo)記樹的形式;即對應(yīng)于圖2的“生成html標(biāo)記樹”框;步驟S4 :對標(biāo)記樹中的正文格式信息進(jìn)行處理,用預(yù)置的特定字符去替換對應(yīng)的格式信息;即對應(yīng)于圖2的“處理正文格式信息”框;步驟S5 :提取文本文字的節(jié)點(diǎn)并采用過濾算法生成html標(biāo)記樹中的文字節(jié)點(diǎn)序列;即對應(yīng)于圖2的“提取文本節(jié)點(diǎn)生成文本句子序列”框;步驟S6:定義一個(gè)文章的常用標(biāo)點(diǎn)集合P= {。,; …},以集合P中的節(jié)點(diǎn)對步驟S5中的文字節(jié)點(diǎn)序列進(jìn)行重新的文字劃分,對于文字節(jié)點(diǎn)中的字符如果是集合P中的標(biāo)點(diǎn),則在標(biāo)點(diǎn)后加分隔符或空格符作為分離的標(biāo)志;即對應(yīng)于圖2的“利用常用的標(biāo)點(diǎn)對文本序列塊重新分句”框;步驟S7 :利用標(biāo)點(diǎn)的延續(xù)性,抽取標(biāo)點(diǎn)連續(xù)性最高的文字塊,返回為正文;即對應(yīng)于圖2的“利用標(biāo)點(diǎn)的連續(xù)性原理提取最長連續(xù)正文模塊”框。其中,所述的抽取標(biāo)點(diǎn)連續(xù)性最高的文字塊的處理過程,包括如下步驟步驟a.以分隔符或空格符為劃分點(diǎn)對步驟S6處理后的字符串進(jìn)行切分,切分后得到字符串?dāng)?shù)組A = [Sl, s2, S3,…,sn],其中Sn為一個(gè)短句;步驟b.遍歷數(shù)組A,把A中短句以集合P中的標(biāo)點(diǎn)為結(jié)束的短句Sni,加入到標(biāo)點(diǎn)句數(shù)組B= [si; Sj, sk,…,sn],并記錄短句的序號(hào)m ;步驟c.依次計(jì)算集合B中元素的下標(biāo)序號(hào)差j_i,k_j…,如果k_j大于閾值,則表示短句Sp Sk之間不存在連續(xù)性,令短句集合Si,si+1, si+2-Sp為當(dāng)前最長標(biāo)點(diǎn)連續(xù)字符串集合,緩存為L = (Si, si+1,si+2…Sj};步驟d.重復(fù)步驟C,如果當(dāng)前獲取的最長標(biāo)點(diǎn)連續(xù)字符串集合長度大于L的長度, 則替換L為當(dāng)前獲取的最長標(biāo)點(diǎn)連續(xù)字符串集合;步驟e.數(shù)組B被處理完畢后,集合L中的文字即為網(wǎng)頁正文。本發(fā)明的一種基于標(biāo)點(diǎn)連續(xù)性的通用網(wǎng)頁正文提取方法,是利用標(biāo)點(diǎn)的連續(xù)性來獲取網(wǎng)頁的正文。本方法的依據(jù)是標(biāo)點(diǎn)符號(hào)是中文中斷句、語義切分的重要標(biāo)志,一篇無標(biāo)點(diǎn)的中文文章幾乎無法讓人正確理解文章所要表達(dá)的意思,標(biāo)點(diǎn)是中文文章中不可或缺的標(biāo)志,因此,標(biāo)點(diǎn)符號(hào)是網(wǎng)頁正文中不可或缺的一部分;而且,網(wǎng)頁的正文中通常存在著連續(xù)出現(xiàn)的標(biāo)點(diǎn);這樣,就可以判定標(biāo)點(diǎn)連續(xù)性最高的文字往往是網(wǎng)頁的正文。此處標(biāo)點(diǎn)的連續(xù)性指的是在網(wǎng)頁中對出現(xiàn)的文字,進(jìn)行分塊后每一塊文字中標(biāo)點(diǎn)存在情況的延續(xù)性。首先把待提取正文的html源文件轉(zhuǎn)化為Unicode的字符流形式,Unicode字符集能存儲(chǔ)絕大多數(shù)網(wǎng)頁的正文編碼,統(tǒng)一的編碼有利于后續(xù)的字符處理程序。接著去除噪聲標(biāo)記信息,對在html源代碼中存在一些對于網(wǎng)頁正文提取無幫助作用,反而會(huì)對正文提取造成干擾的早上標(biāo)記塊,需要在預(yù)處理階段進(jìn)行刪除。如script 塊 (no) script. * 〈/ (no) script〉) 一般用于輔助功能,注釋塊 ! —. * —.>) 用戶開發(fā)者對于網(wǎng)頁源代碼的注釋。其他下拉列表的select塊,格式控制的style塊,跑馬燈的marquee塊,等等對于網(wǎng)頁正文的提取也是無幫助的。再接著生成html標(biāo)記樹,html即超文本標(biāo)記語言,是標(biāo)準(zhǔn)通用標(biāo)記語言的一個(gè)子集,通過neko或者h(yuǎn)tmlparser等解析工具可以方便的把html源代碼表示成標(biāo)記樹的形式;如圖3所示。然后,對于標(biāo)記樹中的正文格式控制信息進(jìn)行處理,對于換行的格式信息如P,BR 等換行標(biāo)記進(jìn)行替換成特殊字符以便存儲(chǔ)換行信息,對于字體、顏色等文字信息,本方法并不專注于保持原文的全部字體信息所以此類如F0NT,STR0NG等標(biāo)記信息作刪除處理(因?yàn)橛锌赡軐罄m(xù)的處理造成影響)。而后,提取文本文字的節(jié)點(diǎn)。網(wǎng)頁正文提取的是文字節(jié)點(diǎn)的集合,算法過濾提取 html標(biāo)記樹中的文字節(jié)點(diǎn)序列進(jìn)行后續(xù)的處理。再接著,定義一個(gè)文章的常用標(biāo)點(diǎn)集合P= {。,;…},以集合P中的節(jié)點(diǎn)對上一步驟中的文字節(jié)點(diǎn)序列進(jìn)行重新的文字劃分對于文字節(jié)點(diǎn)中的字符如果是集合P中的標(biāo)點(diǎn),則在標(biāo)點(diǎn)后加分隔字符(空格符)作為分尚的標(biāo)志。具體算法java表達(dá)如下
權(quán)利要求
1.一種基于標(biāo)點(diǎn)連續(xù)性的通用網(wǎng)頁正文提取方法,其特征在于包括如下步驟讀入文件,并把讀入的文件轉(zhuǎn)化為Unicode的字符流形式的html源代碼;對html源代碼進(jìn)行預(yù)處理,用預(yù)置的噪聲標(biāo)記來去除html源代碼中存在的一些對于網(wǎng)頁正文提取無幫助作用的字符串;生成html標(biāo)記樹,通過預(yù)置的解析工具把html源代碼表示成標(biāo)記樹的形式;對標(biāo)記樹中的正文格式信息進(jìn)行處理,用預(yù)置的特定字符去替換對應(yīng)的格式信息; 提取文本文字的節(jié)點(diǎn)并采用過濾算法生成html標(biāo)記樹中的文字節(jié)點(diǎn)序列;定義一個(gè)文章的常用標(biāo)點(diǎn)集合P= {。,; …},以集合P中的節(jié)點(diǎn)對上一步驟中的文字節(jié)點(diǎn)序列進(jìn)行重新的文字劃分,對于文字節(jié)點(diǎn)中的字符如果是集合P中的標(biāo)點(diǎn),則在標(biāo)點(diǎn)后加分隔符或空格符作為分離的標(biāo)志;利用標(biāo)點(diǎn)的延續(xù)性,抽取標(biāo)點(diǎn)連續(xù)性最高的文字塊,返回為正文。
2.根據(jù)權(quán)利要求I所述的基于標(biāo)點(diǎn)連續(xù)性的通用網(wǎng)頁正文提取方法,其特征在于所述的抽取標(biāo)點(diǎn)連續(xù)性最高的文字塊的處理過程,包括如下步驟a.以分隔符或空格符為劃分點(diǎn)對上一步驟處理后的字符串進(jìn)行切分,切分后得到字符串?dāng)?shù)組A = [S1, s2, S3, ···, sn],其中Sn為一個(gè)短句;b.遍歷數(shù)組A,把A中短句以集合P中的標(biāo)點(diǎn)為結(jié)束的短句Sm,加入到標(biāo)點(diǎn)句數(shù)組B= [Si, S」,sk, ···, sn],并記錄短句的序號(hào)m ;c.依次計(jì)算集合B中元素的下標(biāo)序號(hào)差j-i,k-j···,如果k-j大于閾值,則表示短句 Sj, Sk之間不存在連續(xù)性,令短句集合Si,si+1, si+2··· Sp為當(dāng)前最長標(biāo)點(diǎn)連續(xù)字符串集合,緩為 L — {Sj j Si+1 j Si+2... Sj};d.重復(fù)步驟C,如果當(dāng)前獲取的最長標(biāo)點(diǎn)連續(xù)字符串集合長度大于L的長度,則替換L 為當(dāng)前獲取的最長標(biāo)點(diǎn)連續(xù)字符串集合;e.數(shù)組B被處理完畢后,集合L中的文字即為網(wǎng)頁正文。
3.一種基于標(biāo)點(diǎn)連續(xù)性的通用網(wǎng)頁正文提取系統(tǒng),其特征在于包括讀入模塊,該讀入模塊用來讀入文件,并把讀入的文件轉(zhuǎn)化為Unicode的字符流形式的html源代碼;去除噪聲標(biāo)記信息模塊,該去除噪聲標(biāo)記信息模塊用來對html源代碼進(jìn)行預(yù)處理, 用預(yù)置的噪聲標(biāo)記來去除html源代碼中存在的一些對于網(wǎng)頁正文提取無幫助作用的字符串;生成html標(biāo)記樹模塊,該生成html標(biāo)記樹模塊用來生成html標(biāo)記樹,通過預(yù)置的解析工具把html源代碼表示成標(biāo)記樹的形式;處理正文格式信息模塊,該處理正文格式信息模塊用來對標(biāo)記樹中的正文格式信息進(jìn)行處理,用預(yù)置的特定字符去替換對應(yīng)的格式信息;提取文本節(jié)點(diǎn)生成文本句子序列模塊,該提取文本節(jié)點(diǎn)生成文本句子序列模塊用來提取文本文字的節(jié)點(diǎn)并采用過濾算法生成html標(biāo)記樹中的文字節(jié)點(diǎn)序列;利用常用的標(biāo)點(diǎn)對文本序列塊重新分句模塊,該利用常用的標(biāo)點(diǎn)對文本序列塊重新分句模塊用來定義一個(gè)文章的常用標(biāo)點(diǎn)集合P= {。,;…},以集合P中的節(jié)點(diǎn)對上一步驟中的文字節(jié)點(diǎn)序列進(jìn)行重新的文字劃分,對于文字節(jié)點(diǎn)中的字符如果是集合P中的標(biāo)點(diǎn),貝1J在標(biāo)點(diǎn)后加分隔符或空格符作為分離的標(biāo)志;利用標(biāo)點(diǎn)的連續(xù)性原理提取最長連續(xù)正文模塊,該利用標(biāo)點(diǎn)的連續(xù)性原理提取最長連續(xù)正文模塊用來利用標(biāo)點(diǎn)的延續(xù)性,抽取標(biāo)點(diǎn)連續(xù)性最高的文字塊,返回為正文。
全文摘要
本發(fā)明公開了一種基于標(biāo)點(diǎn)連續(xù)性的通用網(wǎng)頁正文提取方法及其系統(tǒng),包括讀入文件,轉(zhuǎn)化為Unicode的處理步驟;去除噪聲標(biāo)記信息的處理步驟;生成html標(biāo)記樹的處理步驟;處理正文格式信息的處理步驟;提取文本節(jié)點(diǎn)生成文本句子序列的處理步驟;利用常用的標(biāo)點(diǎn)對文本序列塊重新分句的處理步驟和利用標(biāo)點(diǎn)的連續(xù)性原理提取最長連續(xù)正文的處理步驟。這種利用標(biāo)點(diǎn)的連續(xù)性來獲取網(wǎng)頁正文的方式,具有處理速度快、適應(yīng)性強(qiáng)和通用性強(qiáng)的特點(diǎn)。
文檔編號(hào)G06F7/20GK102591612SQ20111044670
公開日2012年7月18日 申請日期2011年12月27日 優(yōu)先權(quán)日2011年12月27日
發(fā)明者張雪峰, 胡海斌, 趙庸 申請人:廈門市美亞柏科信息股份有限公司