一種網(wǎng)頁(yè)正文提取方法及裝置的制造方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及數(shù)據(jù)處理技術(shù)領(lǐng)域,特別涉及一種網(wǎng)頁(yè)正文提取方法及裝置。
【背景技術(shù)】
[0002]隨著網(wǎng)頁(yè)信息資源快速的發(fā)展,每天都會(huì)產(chǎn)生很多網(wǎng)頁(yè)。網(wǎng)頁(yè)中可以包括正文信息和一些廣告信息。如何從網(wǎng)頁(yè)中提取出正文,變得十分重要。
[0003]現(xiàn)有技術(shù)中,通過(guò)網(wǎng)頁(yè)中標(biāo)簽之間的嵌套關(guān)系先從HTML(Hyper Text Mark-upLanguage,超文本標(biāo)記語(yǔ)言文件)網(wǎng)頁(yè)中解析出DOM(Document Object Model,文件對(duì)象模型)樹(shù),然后遍歷所有DOM樹(shù),依據(jù)正文信息在DOM樹(shù)中的分布規(guī)律確定正文的位置。
[0004]通過(guò)上述描述可見(jiàn),現(xiàn)有技術(shù)中提取網(wǎng)頁(yè)正文的方法需要遍歷所有DOM樹(shù),提取網(wǎng)頁(yè)正文的速度較慢。
【發(fā)明內(nèi)容】
[0005]有鑒于此,本發(fā)明提供了一種網(wǎng)頁(yè)正文提取方法及裝置,能夠提高提取網(wǎng)頁(yè)正文的速度。
[0006]本發(fā)明提供了一種網(wǎng)頁(yè)正文提取方法,包括:
[0007]提取待提取網(wǎng)頁(yè)的所有語(yǔ)義塊;
[0008]將所述待提取網(wǎng)頁(yè)均勻分割成多個(gè)區(qū)域塊;
[0009]對(duì)所有區(qū)域塊進(jìn)行預(yù)設(shè)個(gè)數(shù)次隨機(jī)抽樣;
[0010]確定被抽中的區(qū)域塊所在的語(yǔ)義塊;
[0011]計(jì)算出每個(gè)語(yǔ)義塊的抽樣分布概率;
[0012]確定抽樣分布概率大于等于預(yù)設(shè)概率的語(yǔ)義塊為網(wǎng)頁(yè)正文所在的語(yǔ)義塊。
[0013]進(jìn)一步地,所述提取待提取網(wǎng)頁(yè)的所有語(yǔ)義塊,包括:
[0014]S1:對(duì)所述待提取網(wǎng)頁(yè)的HTML源碼建立文件對(duì)象模型DOM樹(shù);
[0015]S2:根據(jù)所述DOM樹(shù)獲得所述待提取網(wǎng)頁(yè)的所有語(yǔ)義塊。
[0016]進(jìn)一步地,所述S2,包括:
[0017]Sll:對(duì)所述DOM樹(shù)進(jìn)行頁(yè)面分塊,提取出所有的頁(yè)面塊;
[0018]S12:根據(jù)所述頁(yè)面塊,檢測(cè)出頁(yè)面塊之間的所有分割條;
[0019]S13:根據(jù)所述分割條對(duì)所述頁(yè)面塊進(jìn)行合并,得到合并后的頁(yè)面塊;
[0020]S14:獲取合并后的頁(yè)面塊的內(nèi)容相關(guān)度,判斷當(dāng)前頁(yè)面塊的內(nèi)容相關(guān)度是否大于等于預(yù)設(shè)值,如果是,則確定當(dāng)前頁(yè)面塊為語(yǔ)義塊,否則,建立當(dāng)前頁(yè)面塊的DOM樹(shù),返回步驟 Sll0
[0021]進(jìn)一步地,在所述SI之前,還包括:
[0022]對(duì)所述待提取網(wǎng)頁(yè)進(jìn)行網(wǎng)頁(yè)糾錯(cuò),獲得DOM樹(shù)結(jié)構(gòu)完整的待提取網(wǎng)頁(yè)。
[0023]進(jìn)一步地,還包括:記錄每個(gè)語(yǔ)義塊的坐標(biāo)值和每個(gè)區(qū)域塊的坐標(biāo)值;
[0024]所述確定被抽中的區(qū)域塊所在的語(yǔ)義塊,包括:
[0025]根據(jù)所述每個(gè)語(yǔ)義塊的坐標(biāo)值和所述每個(gè)區(qū)域塊的坐標(biāo)值,確定被抽中的區(qū)域塊所在的語(yǔ)義塊。
[0026]另一方面,本發(fā)明提供了一種網(wǎng)頁(yè)正文提取裝置,包括:
[0027]提取單元,用于提取待提取網(wǎng)頁(yè)的所有語(yǔ)義塊;
[0028]分割單元,用于將所述待提取網(wǎng)頁(yè)均勻分割成多個(gè)區(qū)域塊;
[0029]抽樣單元,用于對(duì)所有區(qū)域塊進(jìn)行預(yù)設(shè)個(gè)數(shù)次隨機(jī)抽樣;
[0030]語(yǔ)義塊確定單元,用于確定被抽中的區(qū)域塊所在的語(yǔ)義塊;
[0031]計(jì)算單元,用于計(jì)算出每個(gè)語(yǔ)義塊的抽樣分布概率;
[0032]正文確定單元,用于確定抽樣分布概率大于等于預(yù)設(shè)概率的語(yǔ)義塊為網(wǎng)頁(yè)正文所在的語(yǔ)義塊。
[0033]進(jìn)一步地,所述提取單元,包括:
[0034]建立子單元,用于對(duì)所述待提取網(wǎng)頁(yè)的HTML源碼建立文件對(duì)象模型DOM樹(shù);
[0035]提取子單元,用于根據(jù)所述建立子單元建立的所述DOM樹(shù)獲得所述待提取網(wǎng)頁(yè)的所有語(yǔ)義塊。
[0036]進(jìn)一步地,所述提取子單元,包括:
[0037]頁(yè)面塊提取子單元,用于對(duì)所述建立子單元建立的所述DOM樹(shù)進(jìn)行頁(yè)面分塊,提取出所有的頁(yè)面塊,并對(duì)判斷子單元建立的所述DOM數(shù)進(jìn)行頁(yè)面分塊,提取出所有頁(yè)面塊;
[0038]檢測(cè)子單元,用于根據(jù)所述頁(yè)面塊提取子單元提取出的所述頁(yè)面塊,檢測(cè)出頁(yè)面塊之間的所有分割條;
[0039]合并子單元,用于根據(jù)檢測(cè)子單元檢測(cè)出的所述分割條對(duì)所述頁(yè)面塊進(jìn)行合并,得到合并后的頁(yè)面塊;
[0040]判斷子單元,用于獲取所述合并子單元得到的合并后的頁(yè)面塊的內(nèi)容相關(guān)度,判斷當(dāng)前頁(yè)面塊的內(nèi)容相關(guān)度是否大于等于預(yù)設(shè)值,當(dāng)判斷結(jié)果為是時(shí),確定當(dāng)前頁(yè)面塊為語(yǔ)義塊,當(dāng)判斷結(jié)果為是時(shí),建立當(dāng)前頁(yè)面塊的DOM樹(shù),通知所述頁(yè)面塊提取子單元。
[0041]進(jìn)一步地,還包括:
[0042]糾錯(cuò)子單元,用于對(duì)所述待提取網(wǎng)頁(yè)進(jìn)行網(wǎng)頁(yè)糾錯(cuò),獲得DOM樹(shù)結(jié)構(gòu)完整的待提取網(wǎng)頁(yè)。
[0043]進(jìn)一步地,還包括:記錄單元,用于記錄每個(gè)語(yǔ)義塊的坐標(biāo)值和每個(gè)區(qū)域塊的坐標(biāo)值;
[0044]所述語(yǔ)義塊確定單元,用于根據(jù)所述每個(gè)語(yǔ)義塊的坐標(biāo)值和所述每個(gè)區(qū)域塊的坐標(biāo)值,確定被抽中的區(qū)域塊所在的語(yǔ)義塊。
[0045]本發(fā)明提供了一種網(wǎng)頁(yè)正文提取方法及裝置,提取待提取網(wǎng)頁(yè)的所有語(yǔ)義塊,將所述待提取網(wǎng)頁(yè)均勻分割成多個(gè)區(qū)域塊,對(duì)區(qū)域塊進(jìn)行隨機(jī)抽樣,確定被抽中的區(qū)域塊所在的語(yǔ)義塊,計(jì)算出每個(gè)語(yǔ)義塊的抽樣分布概率,通過(guò)每個(gè)語(yǔ)義塊的抽樣分布概率來(lái)表征每個(gè)語(yǔ)義塊的面積大小,當(dāng)語(yǔ)義塊的抽樣分布概率大時(shí),說(shuō)明該語(yǔ)義塊的面積較大,該語(yǔ)義塊為網(wǎng)頁(yè)正文所在的語(yǔ)義塊的概率也大,當(dāng)語(yǔ)義塊的抽樣分布概率大于等于預(yù)設(shè)概率時(shí),則確定該語(yǔ)義塊為網(wǎng)頁(yè)正文所在的語(yǔ)義塊,這種方法只需進(jìn)行簡(jiǎn)單的隨機(jī)抽樣計(jì)算即可,無(wú)需對(duì)待提取網(wǎng)頁(yè)的DOM樹(shù)進(jìn)行遍歷,能夠提高提取網(wǎng)頁(yè)正文的速度。
【附圖說(shuō)明】
[0046]為了更清楚地說(shuō)明本發(fā)明實(shí)施例或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對(duì)實(shí)施例或現(xiàn)有技術(shù)描述中所需要使用的附圖作簡(jiǎn)單地介紹,顯而易見(jiàn)地,下面描述中的附圖是本發(fā)明的一些實(shí)施例,對(duì)于本領(lǐng)域普通技術(shù)人員來(lái)講,在不付出創(chuàng)造性勞動(dòng)的前提下,還可以根據(jù)這些附圖獲得其他的附圖。
[0047]圖1是本發(fā)明一實(shí)施例提供的一種網(wǎng)頁(yè)正文提取方法的流程圖;
[0048]圖2是本發(fā)明一實(shí)施例提供的一種網(wǎng)頁(yè)正文提取裝置的示意圖。
【具體實(shí)施方式】
[0049]為使本發(fā)明實(shí)施例的目的、技術(shù)方案和優(yōu)點(diǎn)更加清楚,下面將結(jié)合本發(fā)明實(shí)施例中的附圖,對(duì)本發(fā)明實(shí)施例中的技術(shù)方案進(jìn)行清楚、完整地描述,顯然,所描述的實(shí)施例是本發(fā)明一部分實(shí)施例,而不是全部的實(shí)施例,基于本發(fā)明中的實(shí)施例,本領(lǐng)域普通技術(shù)人員在沒(méi)有做出創(chuàng)造性勞動(dòng)的前提下所獲得的所有其他實(shí)施例,都屬于本發(fā)明保護(hù)的范圍。
[0050]如圖1所示,本發(fā)明實(shí)施例提供了一種網(wǎng)頁(yè)正文提取方法,該方法可以包括以下步驟:
[0051]步驟101:提取待提取網(wǎng)頁(yè)的所有語(yǔ)義塊;
[0052]步驟102:將所述待提取網(wǎng)頁(yè)均勻分割成多個(gè)區(qū)域塊;
[0053]步驟103:對(duì)所有區(qū)域塊進(jìn)行預(yù)設(shè)個(gè)數(shù)次隨機(jī)抽樣;
[0054]步驟104:確定被抽中的區(qū)域塊所在的語(yǔ)義塊;
[0055]步驟105:計(jì)算出每個(gè)語(yǔ)義塊的抽樣分布概率;
[0056]步驟106:確定抽樣分布概率大于等于預(yù)設(shè)概率的語(yǔ)義塊為網(wǎng)頁(yè)正文所在的語(yǔ)義塊。
[0057]通過(guò)本發(fā)明實(shí)施例提供的一種網(wǎng)頁(yè)正文提取方法,提取待提取網(wǎng)頁(yè)的所有語(yǔ)義塊,將所述待提取網(wǎng)頁(yè)均勻分割成多個(gè)區(qū)域塊,對(duì)區(qū)域塊進(jìn)行隨機(jī)抽樣,確定被抽中的區(qū)域塊所在的語(yǔ)義塊,計(jì)算出每個(gè)語(yǔ)義塊的抽樣分布概率,通過(guò)每個(gè)語(yǔ)義塊的抽樣分布概率來(lái)表征每個(gè)語(yǔ)義塊的面積大小,當(dāng)語(yǔ)義塊的抽樣分布概率大時(shí),說(shuō)明該語(yǔ)義塊的面積較大,該語(yǔ)義塊為網(wǎng)頁(yè)正文所在的語(yǔ)義塊的概率也大,當(dāng)語(yǔ)義塊的抽樣分布概率大于等于預(yù)設(shè)概率時(shí),則確定該語(yǔ)義塊為網(wǎng)頁(yè)正文所在的語(yǔ)義塊,這種方法只需進(jìn)行簡(jiǎn)單的隨機(jī)抽樣計(jì)算即可,無(wú)需對(duì)待提取網(wǎng)頁(yè)的DOM樹(shù)進(jìn)行遍歷,能夠提高提取網(wǎng)頁(yè)正文的速度。
[0058]為了能夠更加準(zhǔn)確的提取出待提取網(wǎng)頁(yè)的所有語(yǔ)義塊,所述提取待提取網(wǎng)頁(yè)的所有語(yǔ)義塊,包括:
[0059]S1:對(duì)所述待提取網(wǎng)頁(yè)的HTML源碼建立DOM樹(shù);
[0060]S2:根據(jù)所述DOM樹(shù)獲得所述待提取網(wǎng)頁(yè)的所有語(yǔ)義塊。
[0061]在一種可能的實(shí)現(xiàn)方式中,所述S2,包括:
[0062]Sll:對(duì)所述DOM樹(shù)進(jìn)行頁(yè)面分塊,提取出所有的頁(yè)面塊;
[0063]S12:根據(jù)所述頁(yè)面塊,檢測(cè)出頁(yè)面塊之間的所有分割條;
[0064]S13:根據(jù)所述分割條對(duì)所述頁(yè)面塊進(jìn)行合并,得到合并后的頁(yè)面塊;
[0065]S14:獲取合并后的頁(yè)面塊的內(nèi)容相關(guān)度,判斷當(dāng)前頁(yè)面塊的內(nèi)容相關(guān)度是否大于等于預(yù)設(shè)值,如果是,則確定當(dāng)前頁(yè)面塊為語(yǔ)義塊,否則,建立當(dāng)前頁(yè)面塊的DOM樹(shù),返回步驟 Sllo
[0066]在該實(shí)現(xiàn)方式中,為了使得每個(gè)語(yǔ)義塊中內(nèi)容的相關(guān)性較高,需要保證每個(gè)輸出的語(yǔ)義塊的內(nèi)容相關(guān)度較高。在輸出語(yǔ)義塊之前對(duì)每個(gè)合并后的頁(yè)面塊進(jìn)行內(nèi)容相關(guān)度的判斷,當(dāng)頁(yè)面塊的內(nèi)容相關(guān)度大于等于預(yù)設(shè)值時(shí),該頁(yè)面塊滿足要求,確定該頁(yè)面塊為語(yǔ)義塊;如果有合并后的頁(yè)面塊的內(nèi)容相關(guān)度小于預(yù)設(shè)值,則繼續(xù)對(duì)這類語(yǔ)義塊進(jìn)行頁(yè)面分塊,直到所有的頁(yè)面塊的內(nèi)容相關(guān)度都大于等于預(yù)設(shè)值。另外,分割條包括橫向和縱向的分割條。
[0067]由于HTML在編寫過(guò)程中存在不規(guī)范現(xiàn)象,為了能夠獲得準(zhǔn)確的DOM樹(shù),需要對(duì)待提取網(wǎng)頁(yè)進(jìn)行網(wǎng)頁(yè)糾錯(cuò),使待提取網(wǎng)頁(yè)規(guī)范。在所述Si之前,還包括:
[0068]對(duì)所述待提取網(wǎng)頁(yè)進(jìn)行網(wǎng)頁(yè)糾錯(cuò),獲得DOM樹(shù)結(jié)構(gòu)完整的待提取網(wǎng)頁(yè)。
[0069]舉例來(lái)說(shuō),所述對(duì)所述待提取網(wǎng)頁(yè)進(jìn)行網(wǎng)頁(yè)糾錯(cuò),包括:對(duì)所述待提取網(wǎng)頁(yè)進(jìn)行HTML標(biāo)簽補(bǔ)全、錯(cuò)誤標(biāo)簽去除、腳本、代碼注釋去除。
[0070]為了能夠準(zhǔn)確的確定被抽中的區(qū)域塊所在的語(yǔ)義塊。該方法還包括:記錄每個(gè)語(yǔ)義塊的坐標(biāo)值和每個(gè)區(qū)域塊的坐標(biāo)值;
[0071]所述確定被抽中的區(qū)域塊所在的語(yǔ)義塊,包括:
[0072]根據(jù)所述每個(gè)語(yǔ)義塊的坐標(biāo)值和所述每個(gè)區(qū)域塊的坐標(biāo)值,確定被抽中的區(qū)域塊所在的語(yǔ)義塊。
[0073]舉例來(lái)說(shuō),待提取網(wǎng)頁(yè)對(duì)應(yīng)的多個(gè)區(qū)域塊和語(yǔ)義塊均為矩形,每個(gè)區(qū)域塊和每個(gè)語(yǔ)義塊均可以通過(guò)一條對(duì)角線上的兩個(gè)頂點(diǎn)來(lái)確定。
[0074]另外,在步驟102中,可以根據(jù)預(yù)設(shè)的精確度將所述待提取網(wǎng)頁(yè)均勻分割成多個(gè)區(qū)域塊,從網(wǎng)頁(yè)的橫向和縱向?qū)λ龃崛【W(wǎng)頁(yè)進(jìn)行分割。其中