網(wǎng)頁(yè)頁(yè)面的正文提取方法和裝置制造方法
【專利摘要】本發(fā)明公開了一種網(wǎng)頁(yè)頁(yè)面的正文提取方法和裝置。其中,網(wǎng)頁(yè)頁(yè)面的正文提取方法包括:獲取待提取網(wǎng)頁(yè)頁(yè)面的超文本標(biāo)記語(yǔ)言HTML代碼,并根據(jù)HTML代碼建立待提取網(wǎng)頁(yè)頁(yè)面的樹形結(jié)構(gòu);提取樹形結(jié)構(gòu)的第一節(jié)點(diǎn)對(duì)應(yīng)的第一元素和第一節(jié)點(diǎn)的父節(jié)點(diǎn)對(duì)應(yīng)的第二元素,其中,第一節(jié)點(diǎn)為樹形結(jié)構(gòu)的葉子節(jié)點(diǎn);計(jì)算第一元素和第二元素的指標(biāo)值,其中,指標(biāo)值用于表示第一元素或者第二元素的信息量;獲取指標(biāo)值中最大指標(biāo)值對(duì)應(yīng)的元素,得到目標(biāo)元素;以及將目標(biāo)元素包含的文本作為待提取網(wǎng)頁(yè)頁(yè)面的正文進(jìn)行提取。通過(guò)本發(fā)明,解決了現(xiàn)有技術(shù)中網(wǎng)頁(yè)頁(yè)面的正文提取不夠準(zhǔn)確的問(wèn)題,進(jìn)而達(dá)到了提高網(wǎng)頁(yè)頁(yè)面的正文提取準(zhǔn)確性效果。
【專利說(shuō)明】網(wǎng)頁(yè)頁(yè)面的正文提取方法和裝置
【技術(shù)領(lǐng)域】
[0001] 本發(fā)明涉及數(shù)據(jù)處理領(lǐng)域,具體而言,涉及一種網(wǎng)頁(yè)頁(yè)面的正文提取方法和裝置。
【背景技術(shù)】
[0002] 網(wǎng)頁(yè)文本,尤其是網(wǎng)頁(yè)正文,是網(wǎng)頁(yè)中最重要的信息,同時(shí)也是大數(shù)據(jù)分析的重要 數(shù)據(jù)來(lái)源。
[0003] 現(xiàn)有技術(shù)中網(wǎng)頁(yè)正文的提取,大多是以文本密度作為參考指標(biāo)進(jìn)行提取,其中, 文本密度是指HTML(HyperTextMark-upLanguage,超文本標(biāo)記語(yǔ)言)元素的文本長(zhǎng)度占 HTML元素代碼長(zhǎng)度的比例。因?yàn)?,文本密度大的元素不一定是正文,有些文本如?lái)源、時(shí)間、 作者等元素有可能被錯(cuò)誤提取為正文;文本密度小的元素不一定不是正文,有的正文添加 了樣式信息和超鏈接,導(dǎo)致文本密度下降,所以僅以文本密度作為參考指標(biāo)進(jìn)行網(wǎng)頁(yè)正文 提取的方式,容易造成提取錯(cuò)誤。
[0004] 針對(duì)現(xiàn)有技術(shù)中網(wǎng)頁(yè)的正文提取不夠準(zhǔn)確的問(wèn)題,目前尚未提出有效的解決方 案。
【發(fā)明內(nèi)容】
[0005] 本發(fā)明的主要目的在于提供一種網(wǎng)頁(yè)頁(yè)面的正文提取方法和裝置,以解決現(xiàn)有技 術(shù)中網(wǎng)頁(yè)正文提取不夠準(zhǔn)確的問(wèn)題。
[0006] 為了實(shí)現(xiàn)上述目的,根據(jù)本發(fā)明實(shí)施例的一個(gè)方面,提供了一種網(wǎng)頁(yè)頁(yè)面的正文 提取方法。根據(jù)本發(fā)明的網(wǎng)頁(yè)頁(yè)面的正文提取方法包括:獲取待提取網(wǎng)頁(yè)頁(yè)面的超文本標(biāo) 記語(yǔ)言HTML代碼,并根據(jù)所述HTML代碼建立所述待提取網(wǎng)頁(yè)頁(yè)面的樹形結(jié)構(gòu);提取所述樹 形結(jié)構(gòu)的第一節(jié)點(diǎn)對(duì)應(yīng)的第一元素和所述第一節(jié)點(diǎn)的父節(jié)點(diǎn)對(duì)應(yīng)的第二元素,其中,所述 第一節(jié)點(diǎn)為所述樹形結(jié)構(gòu)的葉子節(jié)點(diǎn);計(jì)算所述第一元素和所述第二元素的指標(biāo)值,其中, 所述指標(biāo)值用于表示元素的信息量;獲取所述指標(biāo)值中最大指標(biāo)值對(duì)應(yīng)的元素,得到目標(biāo) 元素;以及將所述目標(biāo)元素包含的文本作為所述待提取網(wǎng)頁(yè)頁(yè)面的正文進(jìn)行提取。
[0007] 進(jìn)一步地,計(jì)算所述第一元素和所述第二元素的指標(biāo)值包括:計(jì)算第一元素Gj的 第一熵值Eslj和第一文本長(zhǎng)度Lslj,其中,j依次取1至η,η為所述第一節(jié)點(diǎn)的個(gè)數(shù);按 照公式Ilj=Eslj*(Lslj)2計(jì)算所述第一元素Gj的指標(biāo)值Ilj;計(jì)算第二元素Ai的第二 摘值Es2i和第二文本長(zhǎng)度Ls2i,其中,i依次取1至w,w為所述第一節(jié)點(diǎn)的所述父節(jié)點(diǎn)的 個(gè)數(shù);以及按照公式I2i=Es2i*(Ls2i)2計(jì)算所述第二元素Ai的指標(biāo)值I2i。
[0008] 進(jìn)一步地,按照公式Es'1/ = -ΣOai廣計(jì)算所述第一元素Gj的第 CkleSlj 一熵值EsIj,其中,SIj為所述第一元素Gj中的第一字符串,Ckl為第一字符串SIj中的字,k依次取1至q,q為所述第一字符串Slj中的字的個(gè)數(shù),P(Ckl)為字Ckl在所述第一字符 串Slj中出現(xiàn)的概率。
[0009]進(jìn)一步地,按照公式£ν2/ = -Σ 計(jì)算所述第二元素Ai的第 Ckl^Sli 二熵值Es2i,其中,S2i為所述第二元素Ai中的第二字符串,Ck2為第二字符串S2i中的字,i依次取1至P,P為所述第二字符串S2i中的字的個(gè)數(shù),P(Ck2)為字Ck2在所述第二字符 串S2i中出現(xiàn)的概率。
[0010] 進(jìn)一步地,提取所述樹形結(jié)構(gòu)中的第一節(jié)點(diǎn)對(duì)應(yīng)的第一元素和所述第一節(jié)點(diǎn)的父 節(jié)點(diǎn)對(duì)應(yīng)的第二元素包括:判斷所述第一節(jié)點(diǎn)對(duì)應(yīng)的第一元素是否為塊元素;以及在判斷 出所述第一節(jié)點(diǎn)對(duì)應(yīng)的第一元素為塊元素的情況下,提取所述第一節(jié)點(diǎn)對(duì)應(yīng)的第一元素和 所述第一節(jié)點(diǎn)的父節(jié)點(diǎn)對(duì)應(yīng)的第二元素。
[0011] 為了實(shí)現(xiàn)上述目的,根據(jù)本發(fā)明實(shí)施例的另一方面,提供了一種網(wǎng)頁(yè)頁(yè)面的正文 提取裝置。根據(jù)本發(fā)明的網(wǎng)頁(yè)頁(yè)面的正文提取裝置包括:第一獲取單元,用于獲取待提取網(wǎng) 頁(yè)頁(yè)面的超文本標(biāo)記語(yǔ)言HTML代碼,并根據(jù)所述HTML代碼建立所述待提取網(wǎng)頁(yè)頁(yè)面的樹 形結(jié)構(gòu);第一提取單元,用于提取所述樹形結(jié)構(gòu)的第一節(jié)點(diǎn)對(duì)應(yīng)的第一元素和所述第一節(jié) 點(diǎn)的父節(jié)點(diǎn)對(duì)應(yīng)的第二元素,其中,所述第一節(jié)點(diǎn)為所述樹形結(jié)構(gòu)的葉子節(jié)點(diǎn);計(jì)算單元, 用于計(jì)算所述第一元素和所述第二元素的指標(biāo)值,其中,所述指標(biāo)值用于表示元素的信息 量;第二獲取單元,用于獲取所述指標(biāo)值中最大指標(biāo)值對(duì)應(yīng)的元素,得到目標(biāo)元素;以及第 二提取單元,用于將所述目標(biāo)元素包含的文本作為所述待提取網(wǎng)頁(yè)頁(yè)面的正文進(jìn)行提取。
[0012] 進(jìn)一步地,所述計(jì)算單元包括:第一計(jì)算模塊,用于計(jì)算第一元素Gj的第一熵值 Eslj和第一文本長(zhǎng)度Lslj,其中,j依次取1至η,η為所述第一節(jié)點(diǎn)的個(gè)數(shù);第二計(jì)算模塊, 用于按照公式Ilj=Eslj*(Lslj)2計(jì)算所述第一元素Gj的指標(biāo)值Ilj;第三計(jì)算模塊,用 于計(jì)算第二元素Ai的第二熵值Es2i和第二文本長(zhǎng)度Ls2i,其中,i依次取1至w,w為所述 第一節(jié)點(diǎn)的所述父節(jié)點(diǎn)的個(gè)數(shù);以及第四計(jì)算模塊,用于按照公式I2i=Es2i*(Ls2i)2計(jì) 算所述第二元素Ai的指標(biāo)值I2i。
[0013] 進(jìn)一步地,所述第一計(jì)算模塊包括:第一計(jì)算子模塊,用于按照公式 -ΣP十算所述第一元素Gj的第一熵值Eslj,其中,Slj為所述 CHe1SlJ 第一元素Gj中的第一字符串,Ckl為第一字符串Slj中的字,k依次取1至q,q為所述第 一字符串Slj中的字的個(gè)數(shù),P(Ckl)為字Ckl在所述第一字符串Slj中出現(xiàn)的概率。
[0014] 進(jìn)一步地,所述第二計(jì)算模塊包括:第二計(jì)算子模塊,用于按照公式 &2/_ = -Σ 計(jì)算所述第二元素Ai的第二熵值Es2i,其中,S2i為所述 CkleSli 第二元素Ai中的第二字符串,Ck2為第二字符串S2i中的字,i依次取1至p,p為所述第 二字符串S2i中的字的個(gè)數(shù),P(Ck2)為字Ck2在所述第二字符串S2i中出現(xiàn)的概率。
[0015] 進(jìn)一步地,所述第一提取單元包括:判斷模塊,用于判斷所述第一節(jié)點(diǎn)對(duì)應(yīng)的第一 元素是否為塊元素;以及處理模塊,用于在判斷出所述第一節(jié)點(diǎn)對(duì)應(yīng)的第一元素為塊元素 的情況下,提取所述第一節(jié)點(diǎn)對(duì)應(yīng)的第一元素和所述第一節(jié)點(diǎn)的父節(jié)點(diǎn)對(duì)應(yīng)的第二元素。
[0016] 根據(jù)發(fā)明實(shí)施例,采用獲取待提取網(wǎng)頁(yè)頁(yè)面的HTML代碼,并根據(jù)所述HTML代碼建 立所述待提取網(wǎng)頁(yè)頁(yè)面的樹形結(jié)構(gòu);提取所述樹形結(jié)構(gòu)的第一節(jié)點(diǎn)對(duì)應(yīng)的第一元素和所述 第一節(jié)點(diǎn)的父節(jié)點(diǎn)對(duì)應(yīng)的第二元素,其中,所述第一節(jié)點(diǎn)為所述樹形結(jié)構(gòu)的葉子節(jié)點(diǎn);計(jì)算 所述第一元素和第二元素的指標(biāo)值,其中,所述指標(biāo)值用于表示所述第一元素或者第二元 素的信息量;獲取所述指標(biāo)值中最大指標(biāo)值對(duì)應(yīng)的元素,得到目標(biāo)元素;以及將所述目標(biāo) 元素包含的文本作為所述待提取網(wǎng)頁(yè)頁(yè)面的正文進(jìn)行提取。通過(guò)建立關(guān)于待提取頁(yè)面HTML 代碼的樹形結(jié)構(gòu),實(shí)現(xiàn)了對(duì)葉子節(jié)點(diǎn)對(duì)應(yīng)的元素以及葉子節(jié)點(diǎn)的父節(jié)點(diǎn)對(duì)應(yīng)的元素的確定 并提取,進(jìn)而根據(jù)提取到的元素計(jì)算出該元素的信息量,將信息量最大的一個(gè)元素包含的 文本作為網(wǎng)頁(yè)頁(yè)面的正文進(jìn)行提取,此種以信息量作為參考指標(biāo)對(duì)網(wǎng)頁(yè)頁(yè)面進(jìn)行正文提取 的方式,此種提取方式不僅考慮了元素中的文本長(zhǎng)度,還考慮了文本的混亂程度,相比較于 現(xiàn)有技術(shù)中僅以文本密度作為參考指標(biāo)進(jìn)行網(wǎng)頁(yè)頁(yè)面的正文的提取方式,也就是僅考慮文 本長(zhǎng)度占代碼長(zhǎng)度比例的提取方式,解決了現(xiàn)有技術(shù)中網(wǎng)頁(yè)頁(yè)面的正文提取不夠準(zhǔn)確的問(wèn) 題,進(jìn)而達(dá)到了提高網(wǎng)頁(yè)頁(yè)面的正文提取準(zhǔn)確性效果,為后續(xù)的大數(shù)據(jù)分析提供了較為準(zhǔn) 確的數(shù)據(jù)基礎(chǔ)。并且,此種基于建立網(wǎng)頁(yè)頁(yè)面的HTML代碼的樹形結(jié)構(gòu)的進(jìn)行網(wǎng)頁(yè)頁(yè)面正文 提取的方式,對(duì)于不同網(wǎng)頁(yè)頁(yè)面文本的不同編碼格式,無(wú)需通過(guò)單獨(dú)配置的方式來(lái)提取不 同網(wǎng)頁(yè)頁(yè)面的正文,從而達(dá)到了減少資源消耗并提高提取速度的效果。
【專利附圖】
【附圖說(shuō)明】
[0017] 構(gòu)成本申請(qǐng)的一部分的附圖用來(lái)提供對(duì)本發(fā)明的進(jìn)一步理解,本發(fā)明的示意性實(shí) 施例及其說(shuō)明用于解釋本發(fā)明,并不構(gòu)成對(duì)本發(fā)明的不當(dāng)限定。在附圖中:
[0018] 圖1是根據(jù)本發(fā)明實(shí)施例的網(wǎng)頁(yè)頁(yè)面的正文提取方法的流程圖;
[0019] 圖2是根據(jù)本發(fā)明實(shí)施例的一種可選的網(wǎng)頁(yè)頁(yè)面的正文提取方法的流程圖;以及
[0020] 圖3是根據(jù)本發(fā)明實(shí)施例的網(wǎng)頁(yè)頁(yè)面的正文提取裝置的示意圖。
【具體實(shí)施方式】
[0021 ] 為了使本【技術(shù)領(lǐng)域】的人員更好地理解本發(fā)明方案,下面將結(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í)施例,都應(yīng)當(dāng)屬于本發(fā)明保護(hù)的范 圍。
[0022] 需要說(shuō)明的是,本發(fā)明的說(shuō)明書和權(quán)利要求書及上述附圖中的術(shù)語(yǔ)"第一"、"第 二"等是用于區(qū)別類似的對(duì)象,而不必用于描述特定的順序或先后次序。應(yīng)該理解這樣使用 的數(shù)據(jù)在適當(dāng)情況下可以互換,以便這里描述的本發(fā)明的實(shí)施例能夠以除了在這里圖示或 描述的那些以外的順序?qū)嵤?。此外,術(shù)語(yǔ)"包括"和"具有"以及他們的任何變形,意圖在于 覆蓋不排他的包含,例如,包含了一系列步驟或單元的過(guò)程、方法、系統(tǒng)、產(chǎn)品或設(shè)備不必限 于清楚地列出的那些步驟或單元,而是可包括沒(méi)有清楚地列出的或?qū)τ谶@些過(guò)程、方法、產(chǎn) 品或設(shè)備固有的其它步驟或單元。
[0023] 對(duì)本發(fā)明實(shí)施例中所涉及的技術(shù)術(shù)語(yǔ)做如下解釋:
[0024] 塊元素又名塊級(jí)元素,和其對(duì)應(yīng)的是內(nèi)聯(lián)元素(inlineelement),都是html規(guī)范 中的概念。塊級(jí)元素在瀏覽器顯示時(shí),通常會(huì)以新行來(lái)開始(和結(jié)束)。
[0025] 實(shí)施例1
[0026] 根據(jù)本發(fā)明實(shí)施例,提供了一種可以用于實(shí)施本申請(qǐng)裝置實(shí)施例的方法實(shí)施例, 需要說(shuō)明的是,在附圖的流程圖示出的步驟可以在諸如一組計(jì)算機(jī)可執(zhí)行指令的計(jì)算機(jī)系 統(tǒng)中執(zhí)行,并且,雖然在流程圖中示出了邏輯順序,但是在某些情況下,可以以不同于此處 的順序執(zhí)行所示出或描述的步驟。
[0027] 根據(jù)本發(fā)明實(shí)施例,提供了一種網(wǎng)頁(yè)頁(yè)面的正文提取方法。圖1是根據(jù)本發(fā)明實(shí) 施例的網(wǎng)頁(yè)頁(yè)面的正文提取方法的流程圖,如圖1所示,該方法包括如下的步驟S102至步 驟SllO:
[0028] S102 :獲取待提取網(wǎng)頁(yè)頁(yè)面的超文本標(biāo)記語(yǔ)言HTML代碼,并根據(jù)HTML代碼建立 待提取網(wǎng)頁(yè)頁(yè)面的樹形結(jié)構(gòu),具體地,該樹形結(jié)構(gòu)是基于文檔對(duì)象模型(DocumentObject Model,簡(jiǎn)稱DOM)的樹形結(jié)構(gòu),所以此種樹形結(jié)構(gòu)也可以稱為DOM樹。
[0029] S104 :提取樹形結(jié)構(gòu)的第一節(jié)點(diǎn)對(duì)應(yīng)的第一元素和第一節(jié)點(diǎn)的父節(jié)點(diǎn)對(duì)應(yīng)的第二 元素,其中,第一節(jié)點(diǎn)為樹形結(jié)構(gòu)的葉子節(jié)點(diǎn),即提取樹形結(jié)構(gòu)(即,DOM樹)的每個(gè)葉子節(jié) 點(diǎn)對(duì)應(yīng)的第一元素和葉子節(jié)點(diǎn)的父節(jié)點(diǎn)對(duì)應(yīng)的第二元素,其中,葉子節(jié)點(diǎn)的數(shù)量與第一元 素的數(shù)量相等,葉子節(jié)點(diǎn)的父節(jié)點(diǎn)的數(shù)量與第二元素的數(shù)量相等。
[0030] S106 :計(jì)算第一元素和第二元素的指標(biāo)值,其中,指標(biāo)值用于表示元素的信息量, 即,計(jì)算每個(gè)第一元素的信息量和每個(gè)第二元素的信息量,其中,某個(gè)元素的指標(biāo)值越大, 說(shuō)明該元素的信息量越大,反之,某個(gè)元素的指標(biāo)值越小,說(shuō)明該元素的信息量越小。
[0031] S108 :獲取指標(biāo)值中最大指標(biāo)值對(duì)應(yīng)的元素,得到目標(biāo)元素,也就是,從多個(gè)第一 元素的指標(biāo)值和多個(gè)第二元素的指標(biāo)值中找出指標(biāo)值最大的元素,該元素就是目標(biāo)元素。
[0032] SllO:將目標(biāo)元素包含的文本作為待提取網(wǎng)頁(yè)頁(yè)面的正文進(jìn)行提取,S卩,目標(biāo)元素 中的文本的內(nèi)容就是需要提取的網(wǎng)頁(yè)頁(yè)面的正文。
[0033] 在本發(fā)明實(shí)施例中,通過(guò)建立關(guān)于待提取頁(yè)面HTML代碼的樹形結(jié)構(gòu),實(shí)現(xiàn)了對(duì)葉 子節(jié)點(diǎn)對(duì)應(yīng)的元素以及葉子節(jié)點(diǎn)的父節(jié)點(diǎn)對(duì)應(yīng)的元素的確定并提取,進(jìn)而根據(jù)提取到的元 素計(jì)算出該元素的信息量,將信息量最大的一個(gè)元素包含的文本作為網(wǎng)頁(yè)頁(yè)面的正文進(jìn)行 提取,此種以信息量作為參考指標(biāo)對(duì)網(wǎng)頁(yè)頁(yè)面進(jìn)行正文提取的方式,此種提取方式不僅考 慮了元素中的文本長(zhǎng)度,還考慮了文本的混亂程度,相比較于現(xiàn)有技術(shù)中僅以文本密度作 為參考指標(biāo)進(jìn)行網(wǎng)頁(yè)頁(yè)面的正文的提取方式,也就是僅考慮文本長(zhǎng)度占代碼長(zhǎng)度比例的提 取方式,解決了現(xiàn)有技術(shù)中網(wǎng)頁(yè)頁(yè)面的正文提取不夠準(zhǔn)確的問(wèn)題,進(jìn)而達(dá)到了提高網(wǎng)頁(yè)頁(yè) 面的正文提取準(zhǔn)確性效果,為后續(xù)的大數(shù)據(jù)分析提供了較為準(zhǔn)確的數(shù)據(jù)基礎(chǔ)。并且,此種基 于建立網(wǎng)頁(yè)頁(yè)面的HTML代碼的樹形結(jié)構(gòu)的進(jìn)行網(wǎng)頁(yè)頁(yè)面正文提取的方式,對(duì)于不同網(wǎng)頁(yè) 頁(yè)面文本的不同編碼格式,無(wú)需通過(guò)單獨(dú)配置的方式來(lái)提取不同網(wǎng)頁(yè)頁(yè)面的正文,從而達(dá) 到了減少資源消耗并提高提取速度的效果。
[0034] 具體地,可以通過(guò)步驟1-1至步驟1-4計(jì)算每個(gè)第一元素和每個(gè)第二元素的指標(biāo) 值,步驟1-1至步驟1-4具體如下:
[0035] 步驟1-1 :計(jì)算第一元素Gj的第一j:商值Eslj和第一文本長(zhǎng)度Lslj,其中,j依次取 1至η,η為第一節(jié)點(diǎn)的個(gè)數(shù),也就是,計(jì)算每個(gè)第一元素的第一熵值和第一文本長(zhǎng)度,其中, 第一文本長(zhǎng)度為第一元素包含的文本的字的個(gè)數(shù),第一熵值是指第一元素中包含的文本的 熵,反映了第一元素包含的文本的信息密度。例如:第一元素Gl中包含的文本有100個(gè)字, 那么第一元素Gl的文本長(zhǎng)度Lsll為100。
[0036] 步驟1-2 :按照公式Ilj=Eslj*(Lslj)2計(jì)算第一元素Gj的指標(biāo)值Ilj,也就是 根據(jù)每個(gè)第一元素的第一熵值與第一文本長(zhǎng)度平方的乘積確定出該第一元素的指標(biāo)值。
[0037] 步驟1-3 :計(jì)算第二元素Ai的第二熵值Es2i和第二文本長(zhǎng)度Ls2i,其中,i依次 取1至w,w為第一節(jié)點(diǎn)的父節(jié)點(diǎn)的個(gè)數(shù),也就是,計(jì)算每個(gè)第二元素的第二熵值和第二文本 長(zhǎng)度,其中,第二文本長(zhǎng)度為第二元素包含的文本的字的個(gè)數(shù),第二熵值是指第二元素中包 含的文本的熵,反映了第二元素包含的文本的信息密度。例如:第二元素Al中包含的文本 有300個(gè)字,那么第二元素Al的文本長(zhǎng)度Ls21為300。
[0038] 步驟1-4 :按照公式I2i=Es2i*(Ls2i)2計(jì)算第二元素Ai的指標(biāo)值I2i,也就是 根據(jù)每個(gè)第二元素的第二熵值與第二文本長(zhǎng)度平方的乘積確定出該第二元素的指標(biāo)值。
[0039] 具體地,在本發(fā)明實(shí)施例中,按照公式&^ = -Σ 計(jì)算第一 C^le51j 元素Gj的第一熵值Eslj,其中,Slj為第一元素Gj中的第一字符串,Ckl為第一字符串Slj中的字,k依次取1至q,q為第一字符串Slj中的字的個(gè)數(shù),P(Ckl)為字Ckl在第一字符 串Slj中出現(xiàn)的概率。在本發(fā)明實(shí)施例中,第一元素包含的文本中的所有字組成了該第一 元素的第一字符串,計(jì)算上述第一字符串中的每個(gè)字在該第一字符串中出現(xiàn)的頻率,得到 每個(gè)字在該第一字符串中出現(xiàn)的概率,將計(jì)算出的每個(gè)字的概率與該概率的對(duì)數(shù)相乘,將 得到的所有結(jié)果求和,再取負(fù)數(shù),就是該第一元素的第一熵值。例如:第一元素Gl中包含的 文本為"今天天氣晴。",那么第一元素Gl的第一字符串Sll為"今天天氣晴",該第一字符 串Sll共包含5個(gè)字,其中,"今"在第一字符串Sll中出現(xiàn)的概率為1/5,"天"在第一字符 串Sll中出現(xiàn)的概率為2/5,"氣"在第一字符串Sll中出現(xiàn)的概率為1/5,"晴"在第一字符 串Sll中出現(xiàn)的概率為1/5,那么第一元素Gl的第一熵值Esll可以按照下式計(jì)算:
[0040] Esll= _(l/5*log2l/5+2/5*log22/5+l/5*log2l/5+l/5*log2l/5)。
[0041] 具體地,在本發(fā)明實(shí)施例中,按照公式:&2卜-Σ取切"叩:廠仰2)計(jì)算第二 CklesH 元素Ai的第二熵值Es2i,其中,S2i為第二元素Ai中的第二字符串,Ck2為第二字符串S2i中的字,i依次取1至P,P為第二字符串S2i中的字的個(gè)數(shù),P(Ck2)為字Ck2在第二字符 串S2i中出現(xiàn)的概率。在本發(fā)明實(shí)施例中,第二元素包含的文本中的所有字組成了該第二 元素的第二字符串,計(jì)算上述第二字符串中的每個(gè)字在該第二字符串中出現(xiàn)的頻率,得到 每個(gè)字在該第二字符串中出現(xiàn)的概率,將計(jì)算出的每個(gè)字的概率與該概率的對(duì)數(shù)相乘,將 得到的所有結(jié)果求和,再取負(fù)數(shù),就是該第二元素的第二熵值。例如:第二元素Al中包含的 文本為"今天天氣晴,但是確很冷。",那么該第二元素Al的第二字符串S21為"今天天氣晴, 但是確很冷",該第二字符串S21共包含10個(gè)字,其中,"今"在第二字符串S21中出現(xiàn)的概 率為1/1〇,"天"在第二字符串S21中出現(xiàn)的概率為2/10,"氣"在第二字符串S21中出現(xiàn)的 概率為1/1〇,"晴"在第二字符串S21中出現(xiàn)的概率為1/10,"但"在第二字符串S21中出現(xiàn) 的概率為1/1〇,"是"在第二字符串S21中出現(xiàn)的概率為1/10,"確"在第二字符串S21中出 現(xiàn)的概率為1/1〇,"很"在第二字符串S21中出現(xiàn)的概率為1/10,"冷"在第二字符串S21中 出現(xiàn)的概率為1/10,那么該第二元素All的第二熵值Es21可以按照下式計(jì)算:
[0042] Es21 = -(l/10*log2l/10+2/10*log22/10+l/10*log2l/10+l/10*log2l/10+l/10*lo g2l/10+l/10*log2l/10+l/10*log2l/10+l/10*log2l/10+l/10*log2l/10)。
[0043] 優(yōu)選地,在本發(fā)明實(shí)施例中,提取樹形結(jié)構(gòu)中的第一節(jié)點(diǎn)對(duì)應(yīng)的第一元素和第一 節(jié)點(diǎn)的父節(jié)點(diǎn)對(duì)應(yīng)的第二元素包括:判斷第一節(jié)點(diǎn)對(duì)應(yīng)的第一元素是否為塊元素,其中; 在判斷出第一節(jié)點(diǎn)對(duì)應(yīng)的第一元素為塊元素的情況下,提取第一節(jié)點(diǎn)對(duì)應(yīng)的第一元素和第 一節(jié)點(diǎn)的父節(jié)點(diǎn)對(duì)應(yīng)的第二元素,也即,在判斷出第一節(jié)點(diǎn)對(duì)應(yīng)的第一元素是塊元素的情 況下,才提取第一節(jié)點(diǎn)對(duì)應(yīng)的第一元素以及該第一節(jié)點(diǎn)的父節(jié)點(diǎn)對(duì)應(yīng)的第二元素。需要說(shuō) 明的是,在判斷第一節(jié)點(diǎn)對(duì)應(yīng)的第一元素是否為塊元素時(shí),可以一次只判斷一個(gè)第一節(jié)點(diǎn) 對(duì)應(yīng)第一元素是否為塊元素,也可以一次分別判斷多個(gè)第一節(jié)點(diǎn)對(duì)應(yīng)的元素是否為塊元 素。
[0044] 在本發(fā)明實(shí)施例中,通過(guò)判斷第一節(jié)點(diǎn)的第一元素是否是塊元素,避免了將包含 文本內(nèi)容為"文本來(lái)源"、"發(fā)表時(shí)間"或者"作者"等非塊元素的第一元素進(jìn)行提取,達(dá)到了 進(jìn)一步提高網(wǎng)頁(yè)頁(yè)面的文本提取準(zhǔn)確度的效果。
[0045] 此外,本發(fā)明實(shí)施例所提供的網(wǎng)頁(yè)頁(yè)面的正文提取方法還可以按照?qǐng)D2中示出的 具體流程來(lái)執(zhí)行,即,圖2是根據(jù)本發(fā)明實(shí)施例的一種可選的網(wǎng)頁(yè)頁(yè)面的正文提取方法的 流程圖,如圖2所示,該方法包括如下的步驟S202至步驟S214 :
[0046] S202 :發(fā)送請(qǐng)求網(wǎng)頁(yè)地址,其中,該網(wǎng)頁(yè)地址為待提取網(wǎng)頁(yè)頁(yè)面對(duì)應(yīng)的網(wǎng)頁(yè)地址, 該步驟具體為向服務(wù)器發(fā)送待提取網(wǎng)頁(yè)頁(yè)面的網(wǎng)頁(yè)地址。
[0047] S204 :獲取返回的HTML代碼,具體地,獲取服務(wù)器返回的網(wǎng)頁(yè)地址對(duì)應(yīng)的網(wǎng)頁(yè)頁(yè) 面的HTML代碼,相當(dāng)于步驟S102中的獲取待提取網(wǎng)頁(yè)頁(yè)面的HTML代碼,在此不再重復(fù)說(shuō) 明。
[0048] S206 :建立DOM樹,S卩,建立網(wǎng)頁(yè)頁(yè)面的樹形結(jié)構(gòu),相當(dāng)于步驟S102中的根據(jù)HTML 代碼建立待提取網(wǎng)頁(yè)頁(yè)面的樹形結(jié)構(gòu),在此不再重復(fù)說(shuō)明。
[0049] S207 :將當(dāng)前葉子節(jié)點(diǎn)設(shè)為第一個(gè)葉子節(jié)點(diǎn)。
[0050] S208 :獲取當(dāng)前葉子節(jié)點(diǎn)對(duì)應(yīng)的元素。
[0051] S210 :判斷該元素是否為塊元素,S卩,判斷步驟S208中獲取的當(dāng)前葉子節(jié)點(diǎn)對(duì)應(yīng) 的元素是否為塊元素,在判斷出該元素是塊元素的情況下,執(zhí)行步驟S212 ;在判斷出該元 素不是塊元素的情況下,執(zhí)行步驟S211 :將當(dāng)前葉子節(jié)點(diǎn)設(shè)為下一個(gè)葉子節(jié)點(diǎn),返回步驟 S208〇
[0052] S212:計(jì)算該葉子節(jié)點(diǎn)對(duì)應(yīng)的元素的信息量,并計(jì)算該葉子節(jié)點(diǎn)的父節(jié)點(diǎn)對(duì)應(yīng)的 元素的信息量,相當(dāng)于步驟S106,S卩,在判斷出該葉子節(jié)點(diǎn)是塊元素的情況下,計(jì)算該葉子 節(jié)點(diǎn)對(duì)應(yīng)的元素的信息量,還要計(jì)算該葉子節(jié)點(diǎn)的父節(jié)點(diǎn)對(duì)應(yīng)的元素的信息量,在計(jì)算出 該葉子節(jié)點(diǎn)對(duì)應(yīng)的元素的信息量和該葉子節(jié)點(diǎn)的父節(jié)點(diǎn)對(duì)應(yīng)的元素的信息量后,執(zhí)行步驟 S213:判斷是否遍歷了全部葉子節(jié)點(diǎn),如果是,則執(zhí)行步驟S214;如果否,則執(zhí)行步驟S211 : 將當(dāng)前葉子節(jié)點(diǎn)設(shè)為下一個(gè)葉子節(jié)點(diǎn),然后返回步驟S208。
[0053] S214:將信息量最大的元素包含的文本的內(nèi)容作為待提取的正文,具體地,將計(jì)算 出的所有信息量進(jìn)行排序,信息量最大的元素包含的文本的內(nèi)容作為正文進(jìn)行提取。該步 驟相當(dāng)于步驟S110,在此不再重復(fù)說(shuō)明。
[0054] 需要說(shuō)明的是,對(duì)于前述的各方法實(shí)施例,為了簡(jiǎn)單描述,故將其都表述為一系列 的動(dòng)作組合,但是本領(lǐng)域技術(shù)人員應(yīng)該知悉,本發(fā)明并不受所描述的動(dòng)作順序的限制,因?yàn)?依據(jù)本發(fā)明,某些步驟可以采用其他順序或者同時(shí)進(jìn)行。其次,本領(lǐng)域技術(shù)人員也應(yīng)該知 悉,說(shuō)明書中所描述的實(shí)施例均屬于優(yōu)選實(shí)施例,所涉及的動(dòng)作和模塊并不一定是本發(fā)明 所必須的。
[0055] 通過(guò)以上的實(shí)施方式的描述,本領(lǐng)域的技術(shù)人員可以清楚地了解到根據(jù)上述實(shí)施 例的方法可借助軟件加必需的通用硬件平臺(tái)的方式來(lái)實(shí)現(xiàn),當(dāng)然也可以通過(guò)硬件,但很多 情況下前者是更佳的實(shí)施方式?;谶@樣的理解,本發(fā)明的技術(shù)方案本質(zhì)上或者說(shuō)對(duì)現(xiàn)有 技術(shù)做出貢獻(xiàn)的部分可以以軟件產(chǎn)品的形式體現(xiàn)出來(lái),該計(jì)算機(jī)軟件產(chǎn)品存儲(chǔ)在一個(gè)存儲(chǔ) 介質(zhì)(如ROM/RAM、磁碟、光盤)中,包括若干指令用以使得一臺(tái)終端設(shè)備(可以是手機(jī),計(jì) 算機(jī),服務(wù)器,或者網(wǎng)絡(luò)設(shè)備等)執(zhí)行本發(fā)明各個(gè)實(shí)施例所述的方法。
[0056] 實(shí)施例2
[0057] 根據(jù)本發(fā)明實(shí)施例,還提供了一種用于實(shí)施上述網(wǎng)頁(yè)頁(yè)面的正文提取方法的網(wǎng)頁(yè) 頁(yè)面的正文提取裝置,該正文提取裝置主要用于執(zhí)行本發(fā)明實(shí)施例上述內(nèi)容所提供的正文 提取方法,以下對(duì)本發(fā)明實(shí)施例所提供的網(wǎng)頁(yè)頁(yè)面的正文提取裝置做具體介紹:
[0058] 圖3是根據(jù)本發(fā)明實(shí)施例的網(wǎng)頁(yè)頁(yè)面的正文提取裝置的示意圖,如圖3所示,該正 文提取裝置主要包括第一獲取單元10、第一提取單元20、計(jì)算單元30、第二獲取單元40和 第二提取單元50,其中:
[0059] 第一獲取單元10用于獲取待提取網(wǎng)頁(yè)頁(yè)面的超文本標(biāo)記語(yǔ)言HTML代碼,并根 據(jù)HTML代碼建立待提取網(wǎng)頁(yè)頁(yè)面的樹形結(jié)構(gòu),具體地,該樹形結(jié)構(gòu)是基于文檔對(duì)象模型 (DocumentObjectModel,簡(jiǎn)稱DOM)的樹形結(jié)構(gòu),所以此種樹形結(jié)構(gòu)也可以稱為DOM樹。
[0060] 第一提取單元20用于提取樹形結(jié)構(gòu)的第一節(jié)點(diǎn)對(duì)應(yīng)的第一元素和第一節(jié)點(diǎn)的父 節(jié)點(diǎn)對(duì)應(yīng)的第二元素,其中,第一節(jié)點(diǎn)為樹形結(jié)構(gòu)的葉子節(jié)點(diǎn),即提取樹形結(jié)構(gòu)(即,DOM 樹)的每個(gè)葉子節(jié)點(diǎn)對(duì)應(yīng)的第一元素和葉子節(jié)點(diǎn)的父節(jié)點(diǎn)對(duì)應(yīng)的第二元素,其中,葉子節(jié) 點(diǎn)的數(shù)量與第一元素的數(shù)量相等,葉子節(jié)點(diǎn)的父節(jié)點(diǎn)的數(shù)量與第二元素的數(shù)量相等。
[0061] 計(jì)算單元30用于計(jì)算第一元素和第二元素的指標(biāo)值,其中,指標(biāo)值用于表示元素 的信息量,即,計(jì)算每個(gè)第一元素的信息量和每個(gè)第二元素的信息量,其中,某個(gè)元素的指 標(biāo)值越大,說(shuō)明該元素的信息量越大,反之,某個(gè)元素的指標(biāo)值越小,說(shuō)明該元素的信息量 越小。
[0062] 第二獲取單元40用于獲取指標(biāo)值中最大指標(biāo)值對(duì)應(yīng)的元素,得到目標(biāo)元素,也就 是,從多個(gè)第一元素的指標(biāo)值和多個(gè)第二元素的指標(biāo)值中找出指標(biāo)值最大的元素,該元素 就是目標(biāo)元素。
[0063] 第二提取單元50用于將目標(biāo)元素包含的文本作為待提取網(wǎng)頁(yè)頁(yè)面的正文進(jìn)行提 取,即,目標(biāo)元素中的文本的內(nèi)容就是需要提取的網(wǎng)頁(yè)頁(yè)面的正文。
[0064] 本發(fā)明實(shí)施例中,通過(guò)建立關(guān)于待提取頁(yè)面HTML代碼的樹形結(jié)構(gòu),實(shí)現(xiàn)了對(duì)葉子 節(jié)點(diǎn)對(duì)應(yīng)的元素以及葉子節(jié)點(diǎn)的父節(jié)點(diǎn)對(duì)應(yīng)的元素的確定并提取,進(jìn)而根據(jù)提取到的元素 計(jì)算出該元素的信息量,將信息量最大的一個(gè)元素包含的文本作為網(wǎng)頁(yè)頁(yè)面的正文進(jìn)行提 取,此種以信息量作為參考指標(biāo)對(duì)網(wǎng)頁(yè)頁(yè)面進(jìn)行正文提取的方式,此種提取方式不僅考慮 了元素中的文本長(zhǎng)度,還考慮了文本的混亂程度,相比較于現(xiàn)有技術(shù)中僅以文本密度作為 參考指標(biāo)進(jìn)行網(wǎng)頁(yè)頁(yè)面的正文的提取方式,也就是僅考慮文本長(zhǎng)度占代碼長(zhǎng)度比例的提取 方式,解決了現(xiàn)有技術(shù)中網(wǎng)頁(yè)頁(yè)面的正文提取不夠準(zhǔn)確的問(wèn)題,進(jìn)而達(dá)到了提高網(wǎng)頁(yè)頁(yè)面 的正文提取準(zhǔn)確性效果,為后續(xù)的大數(shù)據(jù)分析提供了較為準(zhǔn)確的數(shù)據(jù)基礎(chǔ)。并且,此種基于 建立網(wǎng)頁(yè)頁(yè)面的HTML代碼的樹形結(jié)構(gòu)的進(jìn)行網(wǎng)頁(yè)頁(yè)面正文提取的方式,對(duì)于不同網(wǎng)頁(yè)頁(yè) 面文本的不同編碼格式,無(wú)需通過(guò)單獨(dú)配置的方式來(lái)提取不同網(wǎng)頁(yè)頁(yè)面的正文,從而達(dá)到 了減少資源消耗并提高提取速度的效果。
[0065] 具體地,計(jì)算單元30包括第一計(jì)算模塊、第二計(jì)算模塊、第三計(jì)算模塊和第四計(jì) 算模塊,其中:
[0066] 第一計(jì)算模塊用于計(jì)算第一元素Gj的第一熵值EsIj和第一文本長(zhǎng)度LsIj,其中, j依次取1至η,η為第一節(jié)點(diǎn)的個(gè)數(shù),也就是,計(jì)算每個(gè)第一元素的第一熵值和第一文本長(zhǎng) 度,其中,第一文本長(zhǎng)度為第一元素包含的文本的字的個(gè)數(shù),第一熵值是指第一元素中包含 的文本的熵,反映了第一元素包含的文本的信息密度。例如:第一元素Gl中包含的文本有 100個(gè)字,那么第一元素Gl的文本長(zhǎng)度Lsll為100。
[0067] 第二計(jì)算模塊用于按照公式Ilj =Eslj*(Lslj)2計(jì)算第一元素Gj的指標(biāo)值Ilj, 也就是根據(jù)每個(gè)第一元素的第一熵值與第一文本長(zhǎng)度平方的乘積確定出該第一元素的指 標(biāo)值。
[0068] 第三計(jì)算模塊用于計(jì)算第二元素Ai的第二熵值Es2i和第二文本長(zhǎng)度Ls2i,其中, i依次取1至w,w為第一節(jié)點(diǎn)的父節(jié)點(diǎn)的個(gè)數(shù),也就是,計(jì)算每個(gè)第二元素的第二熵值和第 二文本長(zhǎng)度,其中,第二文本長(zhǎng)度為第二元素包含的文本的字的個(gè)數(shù),第二熵值是指第二元 素中包含的文本的熵,反映了第二元素包含的文本的信息密度。例如:第二元素Al中包含 的文本有300個(gè)字,那么第二元素Al的文本長(zhǎng)度Ls21為300。
[0069] 第四計(jì)算模塊用于按照公式I2i=Es2i*(Ls2i) 2計(jì)算第二元素Ai的指標(biāo)值I2i, 也就是根據(jù)每個(gè)第二元素的第二熵值與第二文本長(zhǎng)度平方的乘積確定出該第二元素的指 標(biāo)值。
[0070] 具體地,第一計(jì)算模塊包括第一計(jì)算子模塊,第一計(jì)算子模塊用于按照公式 -.,Σ巧⑶"丨叩:厚·1'1)計(jì)算第一元素Gj的第一熵值Esl j,其中,SI j為第一元素 Gj中的第一字符串,Ckl為第一字符串Slj中的字,k依次取1至q,q為第一字符串Slj中 的字的個(gè)數(shù),P(Ckl)為字Ckl在第一字符串Slj中出現(xiàn)的概率。在本發(fā)明實(shí)施例中,第一元 素包含的文本中的所有字組成了該第一元素的第一字符串,計(jì)算上述第一字符串中的每個(gè) 字在該第一字符串中出現(xiàn)的頻率,得到每個(gè)字在該第一字符串中出現(xiàn)的概率,將計(jì)算出的 每個(gè)字的概率與該概率的對(duì)數(shù)相乘,將得到的所有結(jié)果求和,再取負(fù)數(shù),就是該第一元素的 第一熵值。例如:第一元素Gl中包含的文本為"今天天氣晴。",那么第一元素Gl的第一字 符串Sll為"今天天氣晴",該第一字符串Sll共包含5個(gè)字,其中,"今"在第一字符串Sll 中出現(xiàn)的概率為1/5,"天"在第一字符串Sll中出現(xiàn)的概率為2/5,"氣"在第一字符串Sll 中出現(xiàn)的概率為1/5,"晴"在第一字符串Sll中出現(xiàn)的概率為1/5,那么第一元素Gl的第一 熵值Esll= -(l/5*log2l/5+2/5*log22/5+l/5*log2l/5+l/5*log2l/5)。
[0071] 具體地,第二計(jì)算模塊包括第二計(jì)算子模塊,第二計(jì)算子模塊用于按照公式 £λ'2/=_ΣpK義2)^)8,(^2)計(jì)算第二元素Ai的第二熵值Es2i,其中,S2i為第二元 Ck2eS2i 素Ai中的第二字符串,Ck2為第二字符串S2i中的字,i依次取1至p,p為第二字符串S2i中的字的個(gè)數(shù),P(Ck2)為字Ck2在第二字符串S2i中出現(xiàn)的概率。
[0072] 在本發(fā)明實(shí)施例中,第二元素包含的文本中的所有字組成了該第二元素的第二字 符串,計(jì)算上述第二字符串中的每個(gè)字在該第二字符串中出現(xiàn)的頻率,得到每個(gè)字在該第 二字符串中出現(xiàn)的概率,將計(jì)算出的每個(gè)字的概率與該概率的對(duì)數(shù)相乘,將得到的所有結(jié) 果求和,再取負(fù)數(shù),就是該第二元素的第二熵值。例如:第二元素Al中包含的文本為"今 天天氣晴,但是確很冷。",那么該第二元素Al的第二字符串S21為"今天天氣晴,但是確 很冷",該第二字符串S21共包含10個(gè)字,其中,"今"在第二字符串S21中出現(xiàn)的概率為 1/10,"天"在第二字符串S21中出現(xiàn)的概率為2/10,"氣"在第二字符串S21中出現(xiàn)的概率 為1/10,"晴"在第二字符串S21中出現(xiàn)的概率為1/10,"但"在第二字符串S21中出現(xiàn)的概 率為1/1〇,"是"在第二字符串S21中出現(xiàn)的概率為1/10,"確"在第二字符串S21中出現(xiàn)的 概率為1/1〇,"很"在第二字符串S21中出現(xiàn)的概率為1/10,"冷"在第二字符串S21中出現(xiàn) 的概率為1/10,那么該第二元素All的第二熵值Es21可以按照下式計(jì)算:
[0073] Es21 = -(l/10*log2l/10+2/10*log22/10+l/10*log2l/10+l/10*log2l/10+l/10*lo g2l/10+l/10*log2l/10+l/10*log2l/10+l/10*log2l/10+l/10*log2l/10)。
[0074] 優(yōu)選地,在本發(fā)明實(shí)施例中,第一提取單元包括判斷模塊和處理模塊,其中,判斷 模塊用于判斷第一節(jié)點(diǎn)對(duì)應(yīng)的第一元素是否為塊元素;處理模塊用于在判斷出第一節(jié)點(diǎn)對(duì) 應(yīng)的第一元素為塊元素的情況下,提取第一節(jié)點(diǎn)對(duì)應(yīng)的第一元素和第一節(jié)點(diǎn)的父節(jié)點(diǎn)對(duì)應(yīng) 的第二元素。也即,在判斷出第一節(jié)點(diǎn)對(duì)應(yīng)的第一元素是塊元素的情況下,才提取第一節(jié)點(diǎn) 對(duì)應(yīng)的第一元素以及該第一節(jié)點(diǎn)的父節(jié)點(diǎn)對(duì)應(yīng)的第二元素。需要說(shuō)明的是,在判斷第一節(jié) 點(diǎn)對(duì)應(yīng)的第一元素是否為塊元素時(shí),可以一次只判斷一個(gè)第一節(jié)點(diǎn)對(duì)應(yīng)第一元素是否為塊 元素,也可以一次分別判斷多個(gè)第一節(jié)點(diǎn)對(duì)應(yīng)的元素是否為塊元素。
[0075] 在本發(fā)明實(shí)施例中,通過(guò)判斷第一節(jié)點(diǎn)的第一元素是否是塊元素,避免了將包含 文本內(nèi)容為"文本來(lái)源"、"發(fā)表時(shí)間"或者"作者"等非塊元素的第一元素進(jìn)行提取,達(dá)到了 進(jìn)一步提高網(wǎng)頁(yè)頁(yè)面的文本提取準(zhǔn)確度的效果。
[0076] 從以上的描述中,可以看出,本發(fā)明解決了現(xiàn)有技術(shù)中網(wǎng)頁(yè)頁(yè)面的正文提取不夠 準(zhǔn)確的問(wèn)題,進(jìn)而達(dá)到了提高網(wǎng)頁(yè)頁(yè)面的正文提取準(zhǔn)確性效果。
[0077] 上述本發(fā)明實(shí)施例序號(hào)僅僅為了描述,不代表實(shí)施例的優(yōu)劣。
[0078] 在本發(fā)明的上述實(shí)施例中,對(duì)各個(gè)實(shí)施例的描述都各有側(cè)重,某個(gè)實(shí)施例中沒(méi)有 詳述的部分,可以參見(jiàn)其他實(shí)施例的相關(guān)描述。
[0079] 在本申請(qǐng)所提供的幾個(gè)實(shí)施例中,應(yīng)該理解到,所揭露的客戶端,可通過(guò)其它的方 式實(shí)現(xiàn)。其中,以上所描述的裝置實(shí)施例僅僅是示意性的,例如所述單元的劃分,僅僅為一 種邏輯功能劃分,實(shí)際實(shí)現(xiàn)時(shí)可以有另外的劃分方式,例如多個(gè)單元或組件可以結(jié)合或者 可以集成到另一個(gè)系統(tǒng),或一些特征可以忽略,或不執(zhí)行。另一點(diǎn),所顯示或討論的相互之 間的耦合或直接耦合或通信連接可以是通過(guò)一些接口,單元或模塊的間接耦合或通信連 接,可以是電性或其它的形式。
[0080] 所述作為分離部件說(shuō)明的單元可以是或者也可以不是物理上分開的,作為單元顯 示的部件可以是或者也可以不是物理單元,即可以位于一個(gè)地方,或者也可以分布到多個(gè) 網(wǎng)絡(luò)單元上。可以根據(jù)實(shí)際的需要選擇其中的部分或者全部單元來(lái)實(shí)現(xiàn)本實(shí)施例方案的目 的。
[0081] 另外,在本發(fā)明各個(gè)實(shí)施例中的各功能單元可以集成在一個(gè)處理單元中,也可以 是各個(gè)單元單獨(dú)物理存在,也可以兩個(gè)或兩個(gè)以上單元集成在一個(gè)單元中。上述集成的單 元既可以采用硬件的形式實(shí)現(xiàn),也可以采用軟件功能單元的形式實(shí)現(xiàn)。
[0082] 所述集成的單元如果以軟件功能單元的形式實(shí)現(xiàn)并作為獨(dú)立的產(chǎn)品銷售或使用 時(shí),可以存儲(chǔ)在一個(gè)計(jì)算機(jī)可讀取存儲(chǔ)介質(zhì)中?;谶@樣的理解,本發(fā)明的技術(shù)方案本質(zhì)上 或者說(shuō)對(duì)現(xiàn)有技術(shù)做出貢獻(xiàn)的部分或者該技術(shù)方案的全部或部分可以以軟件產(chǎn)品的形式 體現(xiàn)出來(lái),該計(jì)算機(jī)軟件產(chǎn)品存儲(chǔ)在一個(gè)存儲(chǔ)介質(zhì)中,包括若干指令用以使得一臺(tái)計(jì)算機(jī) 設(shè)備(可為個(gè)人計(jì)算機(jī)、服務(wù)器或者網(wǎng)絡(luò)設(shè)備等)執(zhí)行本發(fā)明各個(gè)實(shí)施例所述方法的全部 或部分步驟。而前述的存儲(chǔ)介質(zhì)包括:U盤、只讀存儲(chǔ)器(ROM,Read-OnlyMemory)、隨機(jī)存 取存儲(chǔ)器(RAM,RandomAccessMemory)、移動(dòng)硬盤、磁碟或者光盤等各種可以存儲(chǔ)程序代 碼的介質(zhì)。
[0083] 以上所述僅是本發(fā)明的優(yōu)選實(shí)施方式,應(yīng)當(dāng)指出,對(duì)于本【技術(shù)領(lǐng)域】的普通技術(shù)人 員來(lái)說(shuō),在不脫離本發(fā)明原理的前提下,還可以做出若干改進(jìn)和潤(rùn)飾,這些改進(jìn)和潤(rùn)飾也應(yīng) 視為本發(fā)明的保護(hù)范圍。
【權(quán)利要求】
1. 一種網(wǎng)頁(yè)頁(yè)面的正文提取方法,其特征在于,包括: 獲取待提取網(wǎng)頁(yè)頁(yè)面的超文本標(biāo)記語(yǔ)言HTML代碼,并根據(jù)所述HTML代碼建立所述待 提取網(wǎng)頁(yè)頁(yè)面的樹形結(jié)構(gòu); 提取所述樹形結(jié)構(gòu)的第一節(jié)點(diǎn)對(duì)應(yīng)的第一元素和所述第一節(jié)點(diǎn)的父節(jié)點(diǎn)對(duì)應(yīng)的第二 元素,其中,所述第一節(jié)點(diǎn)為所述樹形結(jié)構(gòu)的葉子節(jié)點(diǎn); 計(jì)算所述第一元素和所述第二元素的指標(biāo)值,其中,所述指標(biāo)值用于表示元素的信息 量; 獲取所述指標(biāo)值中最大指標(biāo)值對(duì)應(yīng)的元素,得到目標(biāo)元素;以及 將所述目標(biāo)元素包含的文本作為所述待提取網(wǎng)頁(yè)頁(yè)面的正文進(jìn)行提取。
2. 根據(jù)權(quán)利要求1所述的正文提取方法,其特征在于,計(jì)算所述第一元素和所述第二 元素的指標(biāo)值包括: 計(jì)算第一元素Gj的第一j:商值Eslj和第一文本長(zhǎng)度Lslj,其中,j依次取1至n,n為所 述第一節(jié)點(diǎn)的個(gè)數(shù); 按照公式Ilj=Eslj*(Lslj)2計(jì)算所述第一元素Gj的指標(biāo)值Ilj; 計(jì)算第二元素Ai的第二熵值Es2i和第二文本長(zhǎng)度Ls2i,其中,i依次取1至w,w為所 述第一節(jié)點(diǎn)的所述父節(jié)點(diǎn)的個(gè)數(shù);以及 按照公式I2i=Es2i*(Ls2i)2計(jì)算所述第二元素Ai的指標(biāo)值I2i。
3. 根據(jù)權(quán)利要求2所述的正文提取方法,其特征在于,按照公式
第一元素Gj中的第一字符串,Ckl為第一字符串Slj中的字,k依次取1至q,q為所述第 一字符串Slj中的字的個(gè)數(shù),P(Ckl)為字Ckl在所述第一字符串Slj中出現(xiàn)的概率。
4. 根據(jù)權(quán)利要求2所述的正文提取方法,其特征在于,按照公式
述第二元素Ai中的第二字符串,Ck2為第二字符串S2i中的字,i依次取1至p,p為所述 第二字符串S2i中的字的個(gè)數(shù),P(Ck2)為字Ck2在所述第二字符串S2i中出現(xiàn)的概率。
5. 根據(jù)權(quán)利要求1所述的正文提取方法,其特征在于,提取所述樹形結(jié)構(gòu)中的第一節(jié) 點(diǎn)對(duì)應(yīng)的第一元素和所述第一節(jié)點(diǎn)的父節(jié)點(diǎn)對(duì)應(yīng)的第二元素包括: 判斷所述第一節(jié)點(diǎn)對(duì)應(yīng)的第一元素是否為塊元素;以及 在判斷出所述第一節(jié)點(diǎn)對(duì)應(yīng)的第一元素為塊元素的情況下,提取所述第一節(jié)點(diǎn)對(duì)應(yīng)的 第一元素和所述第一節(jié)點(diǎn)的父節(jié)點(diǎn)對(duì)應(yīng)的第二元素。
6. -種網(wǎng)頁(yè)頁(yè)面的正文提取裝置,其特征在于,包括: 第一獲取單元,用于獲取待提取網(wǎng)頁(yè)頁(yè)面的超文本標(biāo)記語(yǔ)言HTML代碼,并根據(jù)所述HTML代碼建立所述待提取網(wǎng)頁(yè)頁(yè)面的樹形結(jié)構(gòu); 第一提取單元,用于提取所述樹形結(jié)構(gòu)的第一節(jié)點(diǎn)對(duì)應(yīng)的第一元素和所述第一節(jié)點(diǎn)的 父節(jié)點(diǎn)對(duì)應(yīng)的第二元素,其中,所述第一節(jié)點(diǎn)為所述樹形結(jié)構(gòu)的葉子節(jié)點(diǎn); 計(jì)算單元,用于計(jì)算所述第一元素和所述第二元素的指標(biāo)值,其中,所述指標(biāo)值用于表 示元素的信息量; 第二獲取單元,用于獲取所述指標(biāo)值中最大指標(biāo)值對(duì)應(yīng)的元素,得到目標(biāo)元素;以及 第二提取單元,用于將所述目標(biāo)元素包含的文本作為所述待提取網(wǎng)頁(yè)頁(yè)面的正文進(jìn)行 提取。
7. 根據(jù)權(quán)利要求6所述的正文提取裝置,其特征在于,所述計(jì)算單元包括: 第一計(jì)算模塊,用于計(jì)算第一元素Gj的第一熵值Eslj和第一文本長(zhǎng)度Lslj,其中,j依次取1至n,n為所述第一節(jié)點(diǎn)的個(gè)數(shù); 第二計(jì)算模塊,用于按照公式IIj=Eslj*(Lslj)2計(jì)算所述第一元素Gj的指標(biāo)值 Ilj; 第三計(jì)算模塊,用于計(jì)算第二元素Ai的第二熵值Es2i和第二文本長(zhǎng)度Ls2i,其中,i依次取1至w,w為所述第一節(jié)點(diǎn)的所述父節(jié)點(diǎn)的個(gè)數(shù);以及 第四計(jì)算模塊,用于按照公式I2i=Es2i* (Ls2i)2計(jì)算所述第二元素Ai的指標(biāo)值I2i。
8. 根據(jù)權(quán)利要求7所述的正文提取裝置,其特征在于,所述第一計(jì)算模塊包括:
Gj的第一熵值Eslj,其中,Slj為所述第一元素Gj中的第一字符串,Ckl為第一字符串Slj中的字,k依次取1至q,q為所述第一字符串Slj中的字的個(gè)數(shù),P(Ckl)為字Ckl在所述 第一字符串Slj中出現(xiàn)的概率。
9. 根據(jù)權(quán)利要求7所述的正文提取裝置,其特征在于,所述第二計(jì)算模塊包括:
Ai的第二熵值Es2i,其中,S2i為所述第二元素Ai中的第二字符串,Ck2為第二字符串S2i中的字,i依次取1至P,P為所述第二字符串S2i中的字的個(gè)數(shù),P(Ck2)為字Ck2在所述 第二字符串S2i中出現(xiàn)的概率。
10. 根據(jù)權(quán)利要求6所述的正文提取裝置,其特征在于,所述第一提取單元包括: 判斷模塊,用于判斷所述第一節(jié)點(diǎn)對(duì)應(yīng)的第一元素是否為塊元素;以及 處理模塊,用于在判斷出所述第一節(jié)點(diǎn)對(duì)應(yīng)的第一元素為塊元素的情況下,提取所述 第一節(jié)點(diǎn)對(duì)應(yīng)的第一元素和所述第一節(jié)點(diǎn)的父節(jié)點(diǎn)對(duì)應(yīng)的第二元素。
【文檔編號(hào)】G06F17/30GK104484449SQ201410827773
【公開日】2015年4月1日 申請(qǐng)日期:2014年12月25日 優(yōu)先權(quán)日:2014年12月25日
【發(fā)明者】侯明午 申請(qǐng)人:北京國(guó)雙科技有限公司