一種基于主題的Web頁(yè)面清洗方法【專(zhuān)利摘要】本發(fā)明屬于計(jì)算機(jī)科學(xué)與【
技術(shù)領(lǐng)域:
】,涉及一種基于主題的Web頁(yè)面清洗方法,包括:確定主題領(lǐng)域;采集樣本頁(yè)面,并對(duì)樣本頁(yè)面的網(wǎng)頁(yè)結(jié)構(gòu)進(jìn)行分析,確定頁(yè)面元素樹(shù)形結(jié)構(gòu);確定抽取內(nèi)容標(biāo)簽邊界;根據(jù)標(biāo)簽邊界定義正則表達(dá)式匹配規(guī)則,利用多個(gè)抽取規(guī)則組成抽取規(guī)則模板;對(duì)待清洗頁(yè)面進(jìn)行清洗預(yù)處理,剔除容易分辨的“噪音”內(nèi)容;利用已生成的抽取規(guī)則模板進(jìn)行頁(yè)面清洗,得到清洗后的頁(yè)面。本發(fā)明直接在頁(yè)面中抽取有用信息,大大降低了頁(yè)面清洗的復(fù)雜度和困難度。針對(duì)Web頁(yè)面標(biāo)簽的復(fù)雜多樣性和局部固定性,采用正則表達(dá)式直接匹配和抽取需要的標(biāo)簽,保留有用信息并自動(dòng)剔除掉無(wú)用信息,可有效地實(shí)現(xiàn)頁(yè)面清洗的目的?!緦?zhuān)利說(shuō)明】一種基于主題的Web頁(yè)面清洗方法【
技術(shù)領(lǐng)域:
】[0001]本發(fā)明屬于計(jì)算機(jī)科學(xué)與【
技術(shù)領(lǐng)域:
】,涉及一種基于主題的Web頁(yè)面清洗方法?!?br>背景技術(shù):
】[0002]當(dāng)今互聯(lián)網(wǎng)上的資源信息依然集中在各式各樣的Web頁(yè)面中,由于Web頁(yè)面內(nèi)容豐富,結(jié)構(gòu)復(fù)雜,而有時(shí)我們關(guān)心的也許只是頁(yè)面當(dāng)中很小一部分內(nèi)容塊。如何針對(duì)不同的網(wǎng)頁(yè)結(jié)構(gòu)去除頁(yè)面中大量無(wú)用的信息,而只獲取到所需要的數(shù)據(jù),為人們更好的提供檢索服務(wù),這就成為了Web資源處理過(guò)程中一個(gè)重要的工作,頁(yè)面清洗就是為達(dá)到這一目標(biāo)而出現(xiàn)。[0003]目前通用的頁(yè)面清洗方法主要分為三個(gè)步驟:第一步將頁(yè)面當(dāng)中的樣式表、腳本以及注釋等無(wú)關(guān)信息去除掉。第二步將頁(yè)面分塊,包括圖像塊、文本塊和鏈接塊等等。第三步按照指定規(guī)則對(duì)各塊做進(jìn)一步篩選,例如從鏈接塊中分離出廣告鏈接、導(dǎo)航鏈接等無(wú)用信息,從文本塊中分離出公告、廣告等非關(guān)鍵信息。經(jīng)過(guò)上述幾步處理之后,頁(yè)面在結(jié)構(gòu)和語(yǔ)義上就被劃分為細(xì)粒度的信息塊,使后續(xù)的信息加工處理工作能夠順利進(jìn)行。[0004]現(xiàn)在比較流行的頁(yè)面清洗方法有以下兩類(lèi):[0005]—是基于樣本學(xué)習(xí)策略的頁(yè)面清洗方法。該方法基于對(duì)大量米集樣本的學(xué)習(xí),分析所需清洗頁(yè)面的內(nèi)容塊,從而保留必要的采集信息。這種清洗方法對(duì)于相似頁(yè)面清洗效率高,清洗的準(zhǔn)確度和精度都很高,但是對(duì)于異構(gòu)的頁(yè)面效率明顯降低,適用范圍不廣。同時(shí),該方法前期的學(xué)習(xí)過(guò)程需要借助大量的樣本頁(yè)面,樣本頁(yè)面質(zhì)量的好壞決定了清洗的效能,樣本學(xué)習(xí)也是一個(gè)比較耗時(shí)的過(guò)程,因此該方法的依賴性強(qiáng),前期投入和開(kāi)銷(xiāo)大。[0006]二是基于頁(yè)面DOM解析策略的頁(yè)面清洗方法。該方法是目前適用范圍最廣的一種頁(yè)面清洗方法,它的中心思想是依賴于對(duì)頁(yè)面文檔結(jié)構(gòu)模型DOM的分析。經(jīng)過(guò)對(duì)頁(yè)面DOM的分析和學(xué)習(xí)得到一系列“噪聲”信息,然后把這些無(wú)用的信息去除,從而保留必要的采集信息。這種方法不同于上述方法,由于是基于頁(yè)面DOM的分析和判斷,對(duì)不同的“噪聲”信息可以根據(jù)情況設(shè)定不同的標(biāo)準(zhǔn),因此它對(duì)異構(gòu)頁(yè)面的清洗效果較好,使用范圍也比較廣。但是由于是基于DOM的方法,對(duì)系統(tǒng)內(nèi)存的開(kāi)銷(xiāo)較大,同時(shí)清洗的時(shí)間效率也不是很高。[0007]可以看出,目前頁(yè)面清洗方法的設(shè)計(jì)思路都比較相似,都是基于樣本學(xué)習(xí)和頁(yè)面DOM分析來(lái)實(shí)現(xiàn),這些方式的算法過(guò)于復(fù)雜,對(duì)于特定結(jié)構(gòu)的網(wǎng)頁(yè)抽取效率高,對(duì)于異構(gòu)網(wǎng)頁(yè)處理效果不好,這種機(jī)制高度依賴網(wǎng)頁(yè)結(jié)構(gòu)的相似性,但是對(duì)于當(dāng)今互聯(lián)網(wǎng)頁(yè)面的異構(gòu)性和復(fù)雜性,這種機(jī)制的處理結(jié)果比較不理想,而且此算法本身實(shí)現(xiàn)復(fù)雜,不利于更新?!?br/>發(fā)明內(nèi)容】[0008]針對(duì)現(xiàn)有技術(shù)中存在的算法復(fù)雜、效率低、成本高等問(wèn)題,本發(fā)明提出了一種基于主題正則表達(dá)式匹配抽取策略的頁(yè)面清洗方法。[0009]為了實(shí)現(xiàn)上述目的,本發(fā)明采用以下技術(shù)方案:[0010]首先,對(duì)待清洗頁(yè)面的頁(yè)面結(jié)構(gòu)特征進(jìn)行分析,具體包含確定待清洗頁(yè)面的頁(yè)面主題領(lǐng)域、確定頁(yè)面的樣本以及確定抽取內(nèi)容標(biāo)簽邊界。[0011]其次,根據(jù)確定的內(nèi)容標(biāo)簽邊界定義匹配抽取規(guī)則的正則表達(dá)式。[0012]然后,進(jìn)行頁(yè)面清洗前的預(yù)處理工作,包括對(duì)頁(yè)面的標(biāo)簽和內(nèi)容進(jìn)行標(biāo)準(zhǔn)格式化,把頁(yè)面標(biāo)簽和內(nèi)容的形式盡量標(biāo)準(zhǔn)化,以降低算法的難度,提高匹配抽取過(guò)程的效率。[0013]最后,利用匹配規(guī)則進(jìn)行頁(yè)面清洗,得到清洗后的頁(yè)面內(nèi)容。[0014]與現(xiàn)有技術(shù)相比,本發(fā)明具有以下優(yōu)點(diǎn):[0015]本發(fā)明將傳統(tǒng)頁(yè)面清洗工作的從在頁(yè)面中“找”出“噪聲”信息變成直接在頁(yè)面中抽取有用信息,大大降低了頁(yè)面清洗的復(fù)雜度和困難度。針對(duì)Web頁(yè)面標(biāo)簽的復(fù)雜多樣性和局部固定性,采用正則表達(dá)式直接匹配和抽取需要的標(biāo)簽,保留有用信息并自動(dòng)剔除掉無(wú)用信息,可有效地實(shí)現(xiàn)頁(yè)面清洗的目的。本發(fā)明避開(kāi)了傳統(tǒng)頁(yè)面清洗技術(shù)的缺陷,簡(jiǎn)單實(shí)用,清洗效率和準(zhǔn)確性都有所提高,同時(shí)節(jié)約了系統(tǒng)的開(kāi)銷(xiāo)。這種個(gè)性化、有針對(duì)性的設(shè)計(jì)思想不僅能降低目前頁(yè)面清洗方法的難度,同時(shí)還能提高頁(yè)面的清洗效率,更能適應(yīng)目前Web信息采集技術(shù)基于主題、定向、個(gè)性化的發(fā)展趨勢(shì)?!緦?zhuān)利附圖】【附圖說(shuō)明】[0016]圖1為本發(fā)明所涉及的方法流程圖;[0017]圖2為旅游網(wǎng)頁(yè)酒店信息實(shí)例;[0018]圖3為網(wǎng)頁(yè)結(jié)構(gòu)圖;[0019]圖4為頁(yè)面dl標(biāo)簽片段;[0020]圖5為頁(yè)面ul標(biāo)簽片段?!揪唧w實(shí)施方式】[0021]下面根據(jù)附圖和具體實(shí)施例對(duì)本發(fā)明做進(jìn)一步說(shuō)明。[0022]本發(fā)明所述方法的流程圖如圖1所示,包括如下步驟:[0023]步驟一,確定主題領(lǐng)域:人工采集和選取多個(gè)樣本頁(yè)面進(jìn)行分析,提取出關(guān)鍵詞,由關(guān)鍵詞確定頁(yè)面內(nèi)容的主題范圍,最終確定主題領(lǐng)域。[0024]由于本方法是基于主題的,因此頁(yè)面主題的確定能大大提高清洗的準(zhǔn)確性和效率。[0025]本實(shí)施選取旅游為主題。旅游信息網(wǎng)頁(yè)是一類(lèi)有很強(qiáng)開(kāi)發(fā)價(jià)值的網(wǎng)頁(yè),它具有結(jié)構(gòu)穩(wěn)定、信息量大、實(shí)用價(jià)值高、需求廣泛等特點(diǎn)??紤]上述這些特點(diǎn),如果對(duì)這樣的網(wǎng)頁(yè)進(jìn)行傳統(tǒng)的頁(yè)面清洗工作,沒(méi)有針對(duì)性,顯然不能滿足需求。由于這類(lèi)網(wǎng)頁(yè)在各大網(wǎng)站的功能相近,所起的作用相似,因此網(wǎng)頁(yè)的結(jié)構(gòu)相對(duì)比較穩(wěn)定,不會(huì)受到某個(gè)具體網(wǎng)站的約束,適合進(jìn)行大批量統(tǒng)一采集處理,例如攜程網(wǎng)、途牛網(wǎng)、去哪兒網(wǎng)的網(wǎng)頁(yè)整體結(jié)構(gòu)就基本一樣。[0026]步驟二,采集樣本頁(yè)面,并對(duì)樣本頁(yè)面的網(wǎng)頁(yè)結(jié)構(gòu)進(jìn)行分析,確定頁(yè)面元素樹(shù)形結(jié)構(gòu)。具體方法如下:[0027](I)采集樣本頁(yè)面。[0028]圖2是針對(duì)去哪兒網(wǎng)采集的一個(gè)旅游信息樣本頁(yè)面,是有關(guān)酒店信息的一個(gè)實(shí)例,對(duì)網(wǎng)頁(yè)結(jié)構(gòu)展開(kāi)如圖3所示。從圖中的可以看出,此網(wǎng)頁(yè)的結(jié)構(gòu)十分清晰,需要的旅游信息也就是圖中酒店信息單元這一部分。因此,不需要使用傳統(tǒng)的頁(yè)面清洗方法,一步步分析清除掉不需要的內(nèi)容塊直至保留需要的內(nèi)容塊,而只需要把<dl>與</dl>之間的內(nèi)容直接匹配出來(lái)即可,這樣也同樣能夠達(dá)到保留所需信息,過(guò)濾“噪聲”信息的頁(yè)面清洗目的。[0029](2)對(duì)樣本頁(yè)面結(jié)構(gòu)分析,確定頁(yè)面元素樹(shù)形結(jié)構(gòu)。[0030]分析樣本網(wǎng)頁(yè)的結(jié)構(gòu)圖可以發(fā)現(xiàn),<dl>與</dl>標(biāo)簽之間的內(nèi)容也是結(jié)構(gòu)化的。從上述實(shí)例篩選下述片段進(jìn)行分析,如圖4所示。這是酒店信息單元模塊,包含了某酒店周邊一些重要地理位置的信息,其中的數(shù)據(jù)信息正是需要采集的。如果再次對(duì)這個(gè)單元模塊信息進(jìn)行匹配,就能更精確地定位采集數(shù)據(jù),而使頁(yè)面清洗工作更加深入徹底,為后面的信息抽取工作提供最大程度的幫助。上面的每一條酒店信息的元數(shù)據(jù)都是進(jìn)行信息重組和再現(xiàn)的最好素材。[0031]步驟三,確定抽取內(nèi)容標(biāo)簽邊界。[0032]由上述對(duì)樣本網(wǎng)頁(yè)的分析可知,抽取內(nèi)容標(biāo)簽的邊界為<ul>,它包含了即將抽取的主題內(nèi)容。[0033]步驟四,根據(jù)標(biāo)簽邊界定義正則表達(dá)式匹配規(guī)則,利用多個(gè)抽取規(guī)則組成抽取規(guī)則模板。具體方法如下:[0034](I)根據(jù)邊界標(biāo)簽定義正則表達(dá)式匹配規(guī)則。[0035]正則表達(dá)式匹配規(guī)則的定義和匹配抽取標(biāo)簽的思路一樣,選取<ul>標(biāo)簽做為標(biāo)簽邊界,如圖5所示。匹配抽取工作分為兩步進(jìn)行,每一步都需要定義一個(gè)Pattern對(duì)象:[0036](a)匹配外層<ul>標(biāo)簽。[0037](b)針對(duì)第一步的匹配結(jié)果匹配內(nèi)層的<a>標(biāo)簽并抽取其內(nèi)容。[0038]第一個(gè)Pattern對(duì)象構(gòu)造的正則表達(dá)式抽取規(guī)則如下:【權(quán)利要求】1.一種基于主題的Web頁(yè)面清洗方法,其特征在于,直接在頁(yè)面中抽取有用信息,針對(duì)Web頁(yè)面標(biāo)簽的復(fù)雜多樣性和局部固定性,采用正則表達(dá)式直接匹配和抽取需要的標(biāo)簽,保留有用信息并自動(dòng)剔除掉無(wú)用信息;包括以下步驟:步驟一,確定主題領(lǐng)域:人工采集和選取多個(gè)樣本頁(yè)面進(jìn)行分析,提取出關(guān)鍵詞,由關(guān)鍵詞確定頁(yè)面內(nèi)容的主題范圍,最終確定主題領(lǐng)域;步驟二,采集樣本頁(yè)面,并對(duì)樣本頁(yè)面的網(wǎng)頁(yè)結(jié)構(gòu)進(jìn)行分析,確定頁(yè)面元素樹(shù)形結(jié)構(gòu);步驟三,確定包含即將抽取的主題內(nèi)容的抽取內(nèi)容標(biāo)簽邊界<ul>;步驟四,根據(jù)標(biāo)簽邊界定義正則表達(dá)式匹配規(guī)則,利用多個(gè)抽取規(guī)則組成抽取規(guī)則模板;步驟五,對(duì)待清洗頁(yè)面進(jìn)行清洗預(yù)處理,剔除容易分辨的“噪音”內(nèi)容;步驟六,利用已生成的抽取規(guī)則模板進(jìn)行頁(yè)面清洗,得到清洗后的頁(yè)面。2.根據(jù)權(quán)利要求1所述的一種基于主題的Web頁(yè)面清洗方法,其特征在于,步驟二采集樣本頁(yè)面不需要使用傳統(tǒng)的頁(yè)面清洗方法,一步步分析清除掉不需要的內(nèi)容塊直至保留需要的內(nèi)容塊,而只需要把<dl>與</dl>之間的內(nèi)容直接匹配出來(lái)即可,這樣同樣達(dá)到保留所需信息,過(guò)濾“噪聲”信息的頁(yè)面清洗目的。3.根據(jù)權(quán)利要求1所述的一種基于主題的Web頁(yè)面清洗方法,其特征在于,步驟四定義正則表達(dá)式匹配規(guī)則分為兩步進(jìn)行,每一步都需要定義一個(gè)Pattern對(duì)象:(a)匹配外層<ul>標(biāo)簽;(b)針對(duì)(a)的匹配結(jié)果匹配內(nèi)層的<a>標(biāo)簽并抽取其內(nèi)容;第一個(gè)Pattern對(duì)象構(gòu)造的正則表達(dá)式抽取規(guī)則如下:Patternpatternl=Pattern.compile(<ul(['>]*)>(.*)?</ul>,,,Pattern.DOTALLIPattern.MULTILINE)上面的Pattern可以把整個(gè)<ul>標(biāo)簽從頁(yè)面中匹配出來(lái),其中“<ul”表示該匹配標(biāo)簽以此開(kāi)頭;“(>]*)”表示可以匹配除“〉”以外所有的字符,可以出現(xiàn)任意多次,并且對(duì)其進(jìn)行分組,實(shí)際代表Ul標(biāo)簽的屬性;“(.*)?,,表示ul標(biāo)簽體的內(nèi)容,就是需要采集的信息塊;“〈/ul>”是ul標(biāo)簽的結(jié)束標(biāo)志;后面的“Pattern.DOTALL|Pattern.MULTILINE”是compile方法的可選參數(shù),表示此正則表達(dá)式可以進(jìn)行多行匹配,并且對(duì)字母大小寫(xiě)不敏感;第二個(gè)Pattern對(duì)象構(gòu)造的正則表達(dá)式抽取規(guī)則如下:PatternpatternI=Pattern.compile(“〈ahref=\\“(「\\“I*)\\,,(.*)?>(.*)?</a>,Pattern.DOTALLIPattern.MULTILINE)上面的Pattern可以匹配出<ul>里的<a>標(biāo)簽,“〈ahref=”表示匹配標(biāo)簽以此開(kāi)頭;“\\“(\\“]*)\\””表示href屬性的值,也就是超鏈接的地址(.*)?>”表示<a>標(biāo)簽的其它屬性;“(.*)?</a>”表示<a>標(biāo)簽的內(nèi)容以及結(jié)束標(biāo)志,Pattern.DOTALL|Pattern.MULTILINE”是compile方法的可選參數(shù),表示此正則表達(dá)式可以進(jìn)行多行匹配,并且對(duì)字母大小寫(xiě)不敏感。4.根據(jù)權(quán)利要求1所述的一種基于主題的Web頁(yè)面清洗方法,其特征在于,步驟五對(duì)待清洗頁(yè)面進(jìn)行清洗預(yù)處理的方法如下:(I)規(guī)定“噪音”內(nèi)容范疇;一般旅游信息數(shù)據(jù)都存在于頁(yè)面的正文段落、列表和表格中,同時(shí)考慮其它必要信息的提取,最后得出頁(yè)面匹配需要抽取的常見(jiàn)標(biāo)簽大致有如下幾種:〈Meta>、<a>、<>、<dl>、<ul>、〈table〉;清洗后的頁(yè)面必須符合以下規(guī)范:(a)標(biāo)簽的封閉符“〈”和“〉”,只能出現(xiàn)在包含網(wǎng)頁(yè)標(biāo)簽的地方,如有其它用途,必須使用它們的轉(zhuǎn)義字符“<”和“>”代替;(b)標(biāo)簽的屬性值如果存在,則必須把它們放在成對(duì)的單引號(hào)之間;(C)標(biāo)簽的嵌套順序必須是正確的;Cd)網(wǎng)頁(yè)中的單標(biāo)記節(jié)點(diǎn),末尾都必須加標(biāo)簽閉合標(biāo)志“〈./>”;Ce)如果不是單標(biāo)記節(jié)點(diǎn),那么標(biāo)簽必須由起始標(biāo)簽和結(jié)束標(biāo)簽組成;“〈...>”和“〈/...>,,;(2)剔除屬于“噪音”內(nèi)容的頁(yè)面標(biāo)簽及其內(nèi)容;將“噪音”標(biāo)簽做為標(biāo)簽邊界生成匹配抽取`規(guī)則進(jìn)行清洗?!疚臋n編號(hào)】G06F17/30GK103440315SQ201310378986【公開(kāi)日】2013年12月11日申請(qǐng)日期:2013年8月27日優(yōu)先權(quán)日:2013年8月27日【發(fā)明者】沈琦,宋清明,張猛,湯艷申請(qǐng)人:北京工業(yè)大學(xué)