專利名稱::一種網(wǎng)頁中非正文文本的識(shí)別系統(tǒng)及方法
技術(shù)領(lǐng)域:
:本發(fā)明涉及正文抽取
技術(shù)領(lǐng)域:
,特別涉及一種網(wǎng)頁中非正文文本的識(shí)別系統(tǒng)及方法。
背景技術(shù):
:正文抽取在搜索引擎、移動(dòng)閱讀等領(lǐng)域有著越來越重要的作用。正文抽取常用的技術(shù)有基于規(guī)則、基于DOM(DocumentObjectModel,文檔對(duì)象模型)樹、基于標(biāo)記窗、基于最大文本塊等。這些方法都需要對(duì)網(wǎng)站中的非正文文本,比如廣告、網(wǎng)站聲明等,進(jìn)行排除。如圖Ia所示是一段網(wǎng)站聲明的代碼段示意圖,圖Ib是圖Ia中代碼段在網(wǎng)頁中的實(shí)際展示效果圖,這種網(wǎng)站聲明在網(wǎng)頁中非常常見,對(duì)于用戶閱讀價(jià)值不大,都需要在正文抽取時(shí)進(jìn)行排除。然而,如何有效地識(shí)別這些非正文文本,是一個(gè)難題?,F(xiàn)有技術(shù)中主要采用垃圾關(guān)鍵詞密度的方法進(jìn)行非正文文本識(shí)別。在基于垃圾關(guān)鍵詞識(shí)別非正文文本時(shí),需要有垃圾關(guān)鍵詞構(gòu)成的詞典,并且不斷對(duì)詞典進(jìn)行更新。對(duì)于詞典的更新,只有在發(fā)現(xiàn)問題后才能加入新的垃圾關(guān)鍵詞。因此,這種方法對(duì)于問題的解決具有嚴(yán)重的滯后性,而且當(dāng)面對(duì)全互聯(lián)網(wǎng)的海量數(shù)據(jù)時(shí),這種滯后性顯的更加突出。
發(fā)明內(nèi)容本發(fā)明要解決的技術(shù)問題是如何提供一種網(wǎng)頁中非正文文本的識(shí)別系統(tǒng)及方法,以克服現(xiàn)有方法對(duì)于非正文文本識(shí)別的滯后問題。為解決上述技術(shù)問題,本發(fā)明提供一種網(wǎng)頁中非正文文本的識(shí)別系統(tǒng),所述系統(tǒng)包括網(wǎng)頁抓取器、DOM樹構(gòu)建單元、DOM樹分析單元、文本統(tǒng)計(jì)單元和文本識(shí)別單元;所述網(wǎng)頁抓取器適于抓取目標(biāo)網(wǎng)站的所有網(wǎng)頁的數(shù)據(jù);所述DOM樹構(gòu)建單元,適于構(gòu)建目標(biāo)網(wǎng)站的每個(gè)網(wǎng)頁對(duì)應(yīng)的DOM樹;所述DOM樹分析單元,適于根據(jù)所述DOM樹找出所述網(wǎng)頁中的單元文本段;所述文本統(tǒng)計(jì)單元,適于統(tǒng)計(jì)所述單元文本段在所述目標(biāo)網(wǎng)站的所有網(wǎng)頁中的出現(xiàn)次數(shù);所述文本識(shí)別單元,適于在所述出現(xiàn)次數(shù)大于預(yù)定閾值時(shí),將所述單元文本段識(shí)別為非正文文本。其中,所述DOM樹構(gòu)建單元采用網(wǎng)頁語言對(duì)應(yīng)的解析器。其中,所述DOM樹分析單元包括節(jié)點(diǎn)訪問模塊和文本段劃分模塊;所述節(jié)點(diǎn)訪問模塊,適于從所述DOM樹的根節(jié)點(diǎn)開始,依次訪問所述DOM樹中的節(jié)點(diǎn),并將訪問到的當(dāng)前節(jié)點(diǎn)發(fā)送給所述文本段劃分模塊;以及適于判斷所述DOM樹中是否還有需要訪問的節(jié)點(diǎn),如果是,將相應(yīng)的節(jié)點(diǎn)作為新的當(dāng)前節(jié)點(diǎn)發(fā)送給所述文本段劃分模塊;所述文本段劃分模塊,適于判斷當(dāng)前節(jié)點(diǎn)對(duì)應(yīng)的文本段是否滿足單元文本段的條件,并且在滿足條件時(shí),將所述當(dāng)前節(jié)點(diǎn)對(duì)應(yīng)的文本段作為單元文本段,并且通知所述節(jié)點(diǎn)訪問模塊停止對(duì)所述當(dāng)前節(jié)點(diǎn)的后代節(jié)點(diǎn)的訪問。其中,所述節(jié)點(diǎn)訪問模塊,適于從所述DOM樹的根節(jié)點(diǎn)開始,按照廣度優(yōu)先算法依次訪問所述DOM樹中的節(jié)點(diǎn),并將訪問到的當(dāng)前節(jié)點(diǎn)發(fā)送給所述文本段劃分模塊;以及適于判斷所述DOM樹中是否還有需要訪問的當(dāng)前節(jié)點(diǎn)的同層節(jié)點(diǎn)或者下層節(jié)點(diǎn),如果是,將相應(yīng)的同層節(jié)點(diǎn)或者下層節(jié)點(diǎn)作為新的當(dāng)前節(jié)點(diǎn)發(fā)送給所述文本段劃分模塊。其中,當(dāng)所述當(dāng)前節(jié)點(diǎn)到其后代節(jié)點(diǎn)的最長(zhǎng)路徑小于等于預(yù)定長(zhǎng)度,并且所述當(dāng)前節(jié)點(diǎn)的后代節(jié)點(diǎn)中不包含復(fù)雜節(jié)點(diǎn)時(shí),認(rèn)為所述當(dāng)前節(jié)點(diǎn)對(duì)應(yīng)的文本段滿足單元文本段的條件。其中,所述復(fù)雜節(jié)點(diǎn)包括標(biāo)簽table、tr、td、ul、ol、frame、select、input、marquee和/或map對(duì)應(yīng)的節(jié)點(diǎn)。其中,所述文本統(tǒng)計(jì)單元包括哈希運(yùn)算模塊和統(tǒng)計(jì)模塊;所述哈希運(yùn)算模塊,適于對(duì)所述単元文本段進(jìn)行哈希運(yùn)算,得到結(jié)果鍵值;所述統(tǒng)計(jì)模塊,適于根據(jù)所述結(jié)果鍵值統(tǒng)計(jì)所述單元文本段在所述目標(biāo)網(wǎng)站的所有網(wǎng)頁中的出現(xiàn)次數(shù)。其中,所述文本識(shí)別單元,還適于在所述出現(xiàn)次數(shù)小于等于所述預(yù)定閾值時(shí),將所述單元文本段識(shí)別為正文文本。本發(fā)明還提供一種網(wǎng)頁中非正文文本的識(shí)別方法,其包括步驟A:使用網(wǎng)頁抓取器抓取目標(biāo)網(wǎng)站的所有網(wǎng)頁的數(shù)據(jù);B:構(gòu)建目標(biāo)網(wǎng)站的每個(gè)網(wǎng)頁對(duì)應(yīng)的DOM樹;C:根據(jù)所述DOM樹找出所述網(wǎng)頁中的單元文本段;D:統(tǒng)計(jì)所述單元文本段在所述目標(biāo)網(wǎng)站的所有網(wǎng)頁中的出現(xiàn)次數(shù);E:根據(jù)所述出現(xiàn)次數(shù),判斷所述單元文本段是否是非正文文本。其中,所述步驟B中,采用網(wǎng)頁語言對(duì)應(yīng)的解析器構(gòu)建目標(biāo)網(wǎng)站的每個(gè)網(wǎng)頁對(duì)應(yīng)的DOM樹。其中,所述步驟C中具體包括步驟Cl:從所述DOM樹的根節(jié)點(diǎn)開始,依次訪問所述DOM樹中的節(jié)點(diǎn);C2:判斷當(dāng)前節(jié)點(diǎn)對(duì)應(yīng)的文本段是否滿足単元文本段的條件,如果是,停止對(duì)所述當(dāng)前節(jié)點(diǎn)的后代節(jié)點(diǎn)的訪問,將所述當(dāng)前節(jié)點(diǎn)對(duì)應(yīng)的文本段作為單元文本段,執(zhí)行步驟C3;否則,直接執(zhí)行步驟C3;C3:判斷所述DOM樹中是否還有需要訪問的節(jié)點(diǎn),如果是,將相應(yīng)的節(jié)點(diǎn)作為新的當(dāng)前節(jié)點(diǎn),執(zhí)行步驟C2;否則,執(zhí)行所述步驟D。其中,所述步驟C2具體包括步驟C21:判斷當(dāng)前節(jié)點(diǎn)是否滿足以下條件所述當(dāng)前節(jié)點(diǎn)到其后代節(jié)點(diǎn)的最長(zhǎng)路徑小于等于預(yù)定長(zhǎng)度,并且所述當(dāng)前節(jié)點(diǎn)的后代節(jié)點(diǎn)中不包含復(fù)雜節(jié)點(diǎn);如果是,執(zhí)行步驟C22;否則,執(zhí)行步驟C3;C22:停止對(duì)所述當(dāng)前節(jié)點(diǎn)的后代節(jié)點(diǎn)的訪問,將所述當(dāng)前節(jié)點(diǎn)對(duì)應(yīng)的文本段作為単元文本段,執(zhí)行步驟C3。其中,所述復(fù)雜節(jié)點(diǎn)包括標(biāo)簽table、tr、td、ul、ol、frame、select、input、marquee和/或map對(duì)應(yīng)的節(jié)點(diǎn)。其中,所述步驟Cl中,按照廣度優(yōu)先算法依次訪問所述DOM樹中的節(jié)點(diǎn);所述步驟C3具體包括步驟C31:判斷所述DOM樹中是否還有未訪問的所述當(dāng)前節(jié)點(diǎn)的同層節(jié)點(diǎn),如果是,將所述同層節(jié)點(diǎn)作為新的當(dāng)前節(jié)點(diǎn),執(zhí)行步驟C2;否則,執(zhí)行步驟C32;C32:判斷所述DOM樹中是否還有需要訪問的所述當(dāng)前節(jié)點(diǎn)的下層節(jié)點(diǎn),如果是,將所述下層節(jié)點(diǎn)作為新的當(dāng)前節(jié)點(diǎn),執(zhí)行步驟C2;否則,執(zhí)行所述步驟D。其中,所述步驟D具體包括步驟Dl:對(duì)所述単元文本段進(jìn)行哈希運(yùn)算,得到結(jié)果鍵值;D2:根據(jù)所述結(jié)果鍵值統(tǒng)計(jì)所述單元文本段在所述目標(biāo)網(wǎng)站的所有網(wǎng)頁中的出現(xiàn)次數(shù)。其中,所述步驟E具體包括步驟判斷所述出現(xiàn)次數(shù)是否大于預(yù)定閾值,如果是,將所述単元文本段識(shí)別為非正文文本;否則,將所述單元文本段識(shí)別為正文文本。本發(fā)明的網(wǎng)頁中非正文文本的識(shí)別系統(tǒng)及方法,采用DOM樹獲取每個(gè)網(wǎng)頁的單元文本段,進(jìn)而對(duì)単元文本段在目標(biāo)網(wǎng)站中出現(xiàn)的次數(shù)進(jìn)行統(tǒng)計(jì),并將其出現(xiàn)次數(shù)與預(yù)定閾值進(jìn)行比較,從而識(shí)別出網(wǎng)站上的非正文文本,克服了現(xiàn)有方法對(duì)于非正文文本識(shí)別的滯后問題,并且具有較高的識(shí)別準(zhǔn)確度,在搜索引擎中具有廣泛的應(yīng)用前景。圖Ia是一段網(wǎng)站聲明的代碼段不意圖;圖Ib是圖Ia中代碼段在網(wǎng)頁中的實(shí)際展示效果圖;圖2是本發(fā)明實(shí)施例所述網(wǎng)頁中非正文文本的識(shí)別系統(tǒng)的模塊結(jié)構(gòu)圖;圖3是所述DOM樹分析單元的內(nèi)部模塊結(jié)構(gòu)圖;圖4是所述文本統(tǒng)計(jì)單元的內(nèi)部模塊結(jié)構(gòu)圖;圖5是本發(fā)明實(shí)施例的網(wǎng)頁中非正文文本的識(shí)別方法的流程圖;圖6是HTML網(wǎng)頁對(duì)應(yīng)的DOM樹示意圖;圖7是所述步驟C的流程圖;圖8是所述步驟D的流程圖;圖9是單元文本段統(tǒng)計(jì)原理示意圖。具體實(shí)施例方式下面結(jié)合附圖和實(shí)施例,對(duì)本發(fā)明的具體實(shí)施方式作進(jìn)ー步詳細(xì)描述。以下實(shí)施例用于說明本發(fā)明,但不用來限制本發(fā)明的范圍。圖2是本發(fā)明實(shí)施例所述網(wǎng)頁中非正文文本的識(shí)別系統(tǒng)的模塊結(jié)構(gòu)圖,如圖2所示,所述系統(tǒng)包括網(wǎng)頁抓取器100、DOM樹構(gòu)建單元200、DOM樹分析単元300、文本統(tǒng)計(jì)單元400和文本識(shí)別單元500。所述網(wǎng)頁抓取器100適于抓取目標(biāo)網(wǎng)站的所有網(wǎng)頁的數(shù)據(jù),其一般可以采用網(wǎng)絡(luò)蜘蛛、網(wǎng)頁爬蟲、捜索機(jī)器人或網(wǎng)絡(luò)抓取腳本程序。所述DOM樹構(gòu)建單元200,適于構(gòu)建所述目標(biāo)網(wǎng)站的每個(gè)網(wǎng)頁對(duì)應(yīng)的DOM樹。所述DOM樹構(gòu)建單元采用網(wǎng)頁語言對(duì)應(yīng)的解析器,并且對(duì)于HTML網(wǎng)頁,采用HTML解析器。所述DOM樹分析単元300,適于根據(jù)所述DOM樹找出所述網(wǎng)頁中的單元文本段。圖3是所述DOM樹分析單元的內(nèi)部模塊結(jié)構(gòu)圖,如圖3所示,所述DOM樹分析單元300包括節(jié)點(diǎn)訪問模塊301和文本段劃分模塊302。所述節(jié)點(diǎn)訪問模塊301,適于從所述DOM樹的根節(jié)點(diǎn)開始,依次訪問所述DOM樹中的節(jié)點(diǎn),并將訪問到的當(dāng)前節(jié)點(diǎn)發(fā)送給所述文本段劃分模塊302;以及適于判斷所述DOM樹中是否還有需要訪問的節(jié)點(diǎn),如果是,將相應(yīng)的節(jié)點(diǎn)作為新的當(dāng)前節(jié)點(diǎn)發(fā)送給所述文本段劃分模塊302。其中,所述節(jié)點(diǎn)訪問模塊301可以按照廣度優(yōu)先算法、深度優(yōu)先算法或者其他搜索算法訪問所述DOM樹中的節(jié)點(diǎn)。由于所述DOM樹分析単元300在判定當(dāng)前節(jié)點(diǎn)對(duì)應(yīng)的文本段為單元文本段時(shí),將停止對(duì)當(dāng)前節(jié)點(diǎn)的后代節(jié)點(diǎn)的訪問,因此,所述節(jié)點(diǎn)訪問模塊301,優(yōu)選適于按照廣度優(yōu)先算法依次訪問所述DOM樹中的節(jié)點(diǎn),并將訪問到的當(dāng)前節(jié)點(diǎn)發(fā)送給所述文本段劃分模塊302;以及適于判斷所述DOM樹中是否還有需要訪問的當(dāng)前節(jié)點(diǎn)的同層節(jié)點(diǎn)或者下層節(jié)點(diǎn),如果是,將相應(yīng)的同層節(jié)點(diǎn)或者下層節(jié)點(diǎn)作為新的當(dāng)前節(jié)點(diǎn)發(fā)送給所述文本段劃分模塊302。其中,廣度優(yōu)先算法又稱作寬度優(yōu)先捜索,或橫向優(yōu)先搜索,是ー種從根節(jié)點(diǎn)開始,自上層至下層,沿著樹的寬度遍歷樹的節(jié)點(diǎn)的算法。所述文本段劃分模塊302,適于判斷當(dāng)前節(jié)點(diǎn)對(duì)應(yīng)的文本段是否滿足単元文本段的條件,并且在滿足條件吋,將所述當(dāng)前節(jié)點(diǎn)對(duì)應(yīng)的文本段作為單元文本段,并且通知所述節(jié)點(diǎn)訪問模塊301停止對(duì)所述當(dāng)前節(jié)點(diǎn)的后代節(jié)點(diǎn)的訪問。其中,當(dāng)所述當(dāng)前節(jié)點(diǎn)到其后代節(jié)點(diǎn)的最長(zhǎng)路徑小于等于預(yù)定長(zhǎng)度,并且所述當(dāng)前節(jié)點(diǎn)的后代節(jié)點(diǎn)中不包含復(fù)雜節(jié)點(diǎn)時(shí),認(rèn)為所述當(dāng)前節(jié)點(diǎn)對(duì)應(yīng)的文本段滿足單元文本段的條件。所述復(fù)雜節(jié)點(diǎn)包括標(biāo)簽table、tr、td、ul、ol、frame>select、input、marquee和/或map對(duì)應(yīng)的節(jié)點(diǎn)。所述文本統(tǒng)計(jì)單元400,適于統(tǒng)計(jì)所述単元文本段在所述目標(biāo)網(wǎng)站的所有網(wǎng)頁中的出現(xiàn)次數(shù)。圖4是所述文本統(tǒng)計(jì)單元的內(nèi)部模塊結(jié)構(gòu)圖,如圖4所示,所述文本統(tǒng)計(jì)單元400進(jìn)ー步包括哈希運(yùn)算模塊401和統(tǒng)計(jì)模塊402。所述哈希運(yùn)算模塊401,適于對(duì)所述單元文本段進(jìn)行哈希運(yùn)算,得到結(jié)果鍵值。所述統(tǒng)計(jì)模塊402,適于根據(jù)所述結(jié)果鍵值統(tǒng)計(jì)所述單元文本段在所述目標(biāo)網(wǎng)站的所有網(wǎng)頁中的出現(xiàn)次數(shù)。所述文本識(shí)別單元500,適于判斷所述出現(xiàn)次數(shù)是否大于預(yù)定閾值,如果是,將所述單元文本段識(shí)別為非正文文本;否則,將所述單元文本段識(shí)別為正文文本。圖5是本發(fā)明實(shí)施例的網(wǎng)頁中非正文文本的識(shí)別方法的流程圖,如圖5所示,對(duì)應(yīng)所述系統(tǒng),所述方法包括步驟A:使用網(wǎng)頁抓取器抓取目標(biāo)網(wǎng)站的所有網(wǎng)頁的數(shù)據(jù)。所述網(wǎng)頁抓取器一般可以是網(wǎng)絡(luò)蜘蛛、網(wǎng)頁爬蟲、搜索機(jī)器人或網(wǎng)絡(luò)抓取腳本程序。所述網(wǎng)頁可以采用HTML(HypertextMarkupLanguage,超文本標(biāo)記語言)、XML(extensiblemarkuplanguage,可擴(kuò)展標(biāo)記語言)、XHTML(extensibleHypertextMarkupLanguage,可擴(kuò)展超文本標(biāo)記語言)等標(biāo)記語言,為簡(jiǎn)單起見,后續(xù)均以HTML網(wǎng)頁為例說明。這里的所有網(wǎng)頁包括所述目標(biāo)網(wǎng)站的主網(wǎng)頁和子網(wǎng)頁。B:構(gòu)建目標(biāo)網(wǎng)站的每個(gè)網(wǎng)頁對(duì)應(yīng)的DOM樹。本實(shí)施例中采用HTML解析器構(gòu)建目標(biāo)網(wǎng)站的每個(gè)網(wǎng)頁對(duì)應(yīng)的DOM樹,本領(lǐng)域技術(shù)人員容易想到,當(dāng)所述網(wǎng)頁采用其他標(biāo)記語言時(shí),可以采用相應(yīng)的解析器,比如采用XML解析器構(gòu)建XML網(wǎng)頁對(duì)應(yīng)的DOM樹。圖6是HTML網(wǎng)頁對(duì)應(yīng)的DOM樹示意圖,如圖6所示,DOM樹中的節(jié)點(diǎn)對(duì)應(yīng)于HTML代碼中的標(biāo)簽或者文本。C:根據(jù)所述DOM樹找出所述網(wǎng)頁中的單元文本段。圖7是所述步驟C的流程圖,如圖7所示,所述步驟C中具體包括步驟Cl:從所述DOM樹的根節(jié)點(diǎn)開始,依次訪問所述DOM樹中的節(jié)點(diǎn)。C2:判斷當(dāng)前節(jié)點(diǎn)對(duì)應(yīng)的文本段是否滿足単元文本段的條件,如果是,停止對(duì)所述當(dāng)前節(jié)點(diǎn)的后代節(jié)點(diǎn)的訪問,將所述當(dāng)前節(jié)點(diǎn)對(duì)應(yīng)的文本段作為單元文本段,執(zhí)行步驟C3;否則,直接執(zhí)行步驟C3。所述步驟C2具體包括步驟C21:判斷當(dāng)前節(jié)點(diǎn)是否滿足以下條件所述當(dāng)前節(jié)點(diǎn)到其后代節(jié)點(diǎn)的最長(zhǎng)路徑小于等于預(yù)定長(zhǎng)度,并且所述當(dāng)前節(jié)點(diǎn)的后代節(jié)點(diǎn)中不包含復(fù)雜節(jié)點(diǎn);如果是,執(zhí)行步驟C22;否則,執(zhí)行步驟C3。本步驟的含義是,當(dāng)所述當(dāng)前節(jié)點(diǎn)同時(shí)滿足,所述當(dāng)前節(jié)點(diǎn)到其后代節(jié)點(diǎn)的最長(zhǎng)路徑小于等于預(yù)定長(zhǎng)度,并且所述當(dāng)前節(jié)點(diǎn)的后代節(jié)點(diǎn)中不包含復(fù)雜節(jié)點(diǎn)吋,將所述當(dāng)前節(jié)點(diǎn)對(duì)應(yīng)的文本段作為單元文本段。仍以圖6為例,圖6中左側(cè)div節(jié)點(diǎn)與其最遠(yuǎn)的后代節(jié)點(diǎn)的距離為3,小于預(yù)定距離4,同時(shí),其后代節(jié)點(diǎn)中不含所述復(fù)雜節(jié)點(diǎn),因此,圖6中左側(cè)div節(jié)點(diǎn)對(duì)應(yīng)的文本段被識(shí)別為單元文本段。需要說明的是,對(duì)所述單元文本段的識(shí)別與所述當(dāng)前節(jié)點(diǎn)的標(biāo)簽名稱無關(guān)。所述后代節(jié)點(diǎn)包括所述當(dāng)前節(jié)點(diǎn)的各子孫節(jié)點(diǎn),即在所述當(dāng)前節(jié)點(diǎn)所在分支上并且位于所述當(dāng)前節(jié)點(diǎn)下層的所有節(jié)點(diǎn)。對(duì)于所述預(yù)定長(zhǎng)度的設(shè)定以及所述復(fù)雜節(jié)點(diǎn)所包括節(jié)點(diǎn)的范圍可以根據(jù)實(shí)際使用情況適時(shí)調(diào)整。比如,所述預(yù)定長(zhǎng)度可以設(shè)置為3或者4或者5,本實(shí)施例中,所述預(yù)定長(zhǎng)度優(yōu)選為4。仍以圖6中的DOM樹為例,對(duì)于圖6中左側(cè)的div節(jié)點(diǎn),當(dāng)其作為當(dāng)前節(jié)點(diǎn)時(shí),其對(duì)應(yīng)的分支為div->p->a->text2,該div節(jié)點(diǎn)距離其最遠(yuǎn)的后代節(jié)點(diǎn)text2的距離為3,小于預(yù)定長(zhǎng)度4。本實(shí)施例中,所述復(fù)雜節(jié)點(diǎn)包括標(biāo)簽table、tr、td、ul、ol、frame、select、input、marquee矛ロ/或map對(duì)放的節(jié)。C22:停止對(duì)所述當(dāng)前節(jié)點(diǎn)的后代節(jié)點(diǎn)的訪問,將所述當(dāng)前節(jié)點(diǎn)對(duì)應(yīng)的文本段作為単元文本段,執(zhí)行步驟C3。C3:判斷所述DOM樹中是否還有需要訪問的節(jié)點(diǎn),如果是,將相應(yīng)的節(jié)點(diǎn)作為新的當(dāng)前節(jié)點(diǎn),執(zhí)行步驟C2;否則,執(zhí)行所述步驟D。所述步驟Cl中,可以采用廣度優(yōu)先算法、深度優(yōu)先算法或者其他捜索算法訪問所述DOM樹中的節(jié)點(diǎn)。由于本發(fā)明實(shí)施例所述方法在判定當(dāng)前節(jié)點(diǎn)對(duì)應(yīng)的文本段為單元文本段時(shí),將停止對(duì)當(dāng)前節(jié)點(diǎn)的后代節(jié)點(diǎn)的訪問,因此,所述步驟Cl中優(yōu)選采用廣度優(yōu)先算法。當(dāng)所述步驟Cl中,按照廣度優(yōu)先算法依次訪問所述DOM樹中的節(jié)點(diǎn)時(shí),所述步驟C3具體包括步驟C31:判斷所述DOM樹中是否還有未訪問的所述當(dāng)前節(jié)點(diǎn)的同層節(jié)點(diǎn),如果是,將所述同層節(jié)點(diǎn)作為新的當(dāng)前節(jié)點(diǎn),執(zhí)行步驟C2;否則,執(zhí)行步驟C32。所述同層節(jié)點(diǎn)是指與所述當(dāng)前節(jié)點(diǎn)處于同一層的節(jié)點(diǎn),其可以是所述當(dāng)前節(jié)點(diǎn)的兄弟節(jié)點(diǎn),也可以是所述當(dāng)前節(jié)點(diǎn)的非兄弟節(jié)點(diǎn)(如圖6中的text2節(jié)點(diǎn)與text3節(jié)點(diǎn)是同層節(jié)點(diǎn)但不是兄弟節(jié)點(diǎn))。C32:判斷所述DOM樹中是否還有需要訪問的所述當(dāng)前節(jié)點(diǎn)的下層節(jié)點(diǎn),如果是,將所述下層節(jié)點(diǎn)作為新的當(dāng)前節(jié)點(diǎn),執(zhí)行步驟C2;否則,執(zhí)行所述步驟D。需要說明的是,當(dāng)所述當(dāng)前節(jié)點(diǎn)對(duì)應(yīng)的文本段被識(shí)別為単元文本段時(shí),所述當(dāng)前節(jié)點(diǎn)的后代節(jié)點(diǎn)無需再被訪問。D:統(tǒng)計(jì)所述單元文本段在所述目標(biāo)網(wǎng)站的所有網(wǎng)頁中的出現(xiàn)次數(shù)。圖8是所述步驟D的流程圖,如圖8所示,所述步驟D具體包括步驟Dl:對(duì)所述単元文本段進(jìn)行哈希運(yùn)算,得到結(jié)果鍵值。本實(shí)施例中,采用MD5(MessageDigestAlgorithm5,消息摘要算法第五版)算法對(duì)所述單元文本段進(jìn)行哈希運(yùn)算,當(dāng)然本領(lǐng)域技術(shù)人員容易想到還可以利用其他類似算法進(jìn)行哈希運(yùn)算。本實(shí)施例中,在對(duì)所述出現(xiàn)次數(shù)進(jìn)行統(tǒng)計(jì)時(shí),建立了以所述結(jié)果鍵值為key,以所述出現(xiàn)次數(shù)為value的key-value表格,進(jìn)而根據(jù)所述key-value表格判斷姆個(gè)key值對(duì)應(yīng)的value值是否大于所述預(yù)定閾值,以識(shí)別出每個(gè)key值對(duì)應(yīng)的単元文本段是否是非正文文本。D2:根據(jù)所述結(jié)果鍵值統(tǒng)計(jì)所述單元文本段在所述目標(biāo)網(wǎng)站的所有網(wǎng)頁中的出現(xiàn)次數(shù)。E:根據(jù)所述出現(xiàn)次數(shù),判斷所述單元文本段是否是非正文文本。所述步驟E具體包括步驟判斷所述出現(xiàn)次數(shù)是否大于預(yù)定閾值,如果是,將所述單元文本段識(shí)別為非正文文本;否則,將所述單元文本段識(shí)別為正文文本。圖9是單元文本段統(tǒng)計(jì)原理示意圖,如圖9所示,各所述單元文本段出現(xiàn)次數(shù)的統(tǒng)計(jì)范圍為所述目標(biāo)網(wǎng)站的所有網(wǎng)頁。其中,所述預(yù)定閾值可以根據(jù)實(shí)際使用情況進(jìn)行調(diào)整,比如預(yù)定閾值可以優(yōu)選為100,或者90、150等等。本發(fā)明實(shí)施例所述網(wǎng)頁中非正文文本的識(shí)別系統(tǒng)及方法,采用DOM樹獲取每個(gè)網(wǎng)頁的單元文本段,進(jìn)而對(duì)単元文本段在目標(biāo)網(wǎng)站中出現(xiàn)的次數(shù)進(jìn)行統(tǒng)計(jì),并將其出現(xiàn)次數(shù)與預(yù)定閾值進(jìn)行比較,從而識(shí)別出網(wǎng)站上的非正文文本,克服了現(xiàn)有方法對(duì)于非正文文本識(shí)別的滯后問題,并且具有較高的識(shí)別準(zhǔn)確度,在搜索引擎中具有廣泛的應(yīng)用前景。以上實(shí)施方式僅用于說明本發(fā)明,而并非對(duì)本發(fā)明的限制,有關(guān)
技術(shù)領(lǐng)域:
的普通技術(shù)人員,在不脫離本發(fā)明的精神和范圍的情況下,還可以做出各種變化和變型,因此所有等同的技術(shù)方案也屬于本發(fā)明的范疇,本發(fā)明的專利保護(hù)范圍應(yīng)由權(quán)利要求限定。權(quán)利要求1.一種網(wǎng)頁中非正文文本的識(shí)別系統(tǒng),其特征在于,所述系統(tǒng)包括網(wǎng)頁抓取器、DOM樹構(gòu)建單元、DOM樹分析單元、文本統(tǒng)計(jì)單元和文本識(shí)別單元;所述網(wǎng)頁抓取器適于抓取目標(biāo)網(wǎng)站的所有網(wǎng)頁的數(shù)據(jù);所述DOM樹構(gòu)建單元,適于構(gòu)建目標(biāo)網(wǎng)站的每個(gè)網(wǎng)頁對(duì)應(yīng)的DOM樹;所述DOM樹分析單元,適于根據(jù)所述DOM樹找出所述網(wǎng)頁中的單元文本段;所述文本統(tǒng)計(jì)單元,適于統(tǒng)計(jì)所述單元文本段在所述目標(biāo)網(wǎng)站的所有網(wǎng)頁中的出現(xiàn)次數(shù);所述文本識(shí)別單元,適于在所述出現(xiàn)次數(shù)大于預(yù)定閾值時(shí),將所述單元文本段識(shí)別為非正文文本。2.如權(quán)利要求I所述的系統(tǒng),其特征在于,所述DOM樹構(gòu)建單元采用網(wǎng)頁語言對(duì)應(yīng)的解析器。3.如權(quán)利要求I所述的系統(tǒng),其特征在于,所述DOM樹分析單元包括節(jié)點(diǎn)訪問模塊和文本段劃分模塊;所述節(jié)點(diǎn)訪問模塊,適于從所述DOM樹的根節(jié)點(diǎn)開始,依次訪問所述DOM樹中的節(jié)點(diǎn),并將訪問到的當(dāng)前節(jié)點(diǎn)發(fā)送給所述文本段劃分模塊;以及適于判斷所述DOM樹中是否還有需要訪問的節(jié)點(diǎn),如果是,將相應(yīng)的節(jié)點(diǎn)作為新的當(dāng)前節(jié)點(diǎn)發(fā)送給所述文本段劃分模塊;所述文本段劃分模塊,適于判斷當(dāng)前節(jié)點(diǎn)對(duì)應(yīng)的文本段是否滿足單元文本段的條件,并且在滿足條件時(shí),將所述當(dāng)前節(jié)點(diǎn)對(duì)應(yīng)的文本段作為單元文本段,并且通知所述節(jié)點(diǎn)訪問模塊停止對(duì)所述當(dāng)前節(jié)點(diǎn)的后代節(jié)點(diǎn)的訪問。4.如權(quán)利要求3所述的系統(tǒng),其特征在于,所述節(jié)點(diǎn)訪問模塊,適于從所述DOM樹的根節(jié)點(diǎn)開始,按照廣度優(yōu)先算法依次訪問所述DOM樹中的節(jié)點(diǎn),并將訪問到的當(dāng)前節(jié)點(diǎn)發(fā)送給所述文本段劃分模塊;以及適于判斷所述DOM樹中是否還有需要訪問的當(dāng)前節(jié)點(diǎn)的同層節(jié)點(diǎn)或者下層節(jié)點(diǎn),如果是,將相應(yīng)的同層節(jié)點(diǎn)或者下層節(jié)點(diǎn)作為新的當(dāng)前節(jié)點(diǎn)發(fā)送給所述文本段劃分模塊。5.如權(quán)利要求3所述的系統(tǒng),其特征在于,當(dāng)所述當(dāng)前節(jié)點(diǎn)到其后代節(jié)點(diǎn)的最長(zhǎng)路徑小于等于預(yù)定長(zhǎng)度,并且所述當(dāng)前節(jié)點(diǎn)的后代節(jié)點(diǎn)中不包含復(fù)雜節(jié)點(diǎn)時(shí),認(rèn)為所述當(dāng)前節(jié)點(diǎn)對(duì)應(yīng)的文本段滿足單元文本段的條件。6.如權(quán)利要求5所述的系統(tǒng),其特征在于,所述復(fù)雜節(jié)點(diǎn)包括標(biāo)簽table、tr、td、ul、ol、frame>select、input、marquee和/或map對(duì)應(yīng)的節(jié)點(diǎn)。7.如權(quán)利要求I所述的系統(tǒng),其特征在于,所述文本統(tǒng)計(jì)單元包括哈希運(yùn)算模塊和統(tǒng)計(jì)豐吳塊;所述哈希運(yùn)算模塊,適于對(duì)所述單元文本段進(jìn)行哈希運(yùn)算,得到結(jié)果鍵值;所述統(tǒng)計(jì)模塊,適于根據(jù)所述結(jié)果鍵值統(tǒng)計(jì)所述單元文本段在所述目標(biāo)網(wǎng)站的所有網(wǎng)頁中的出現(xiàn)次數(shù)。8.如權(quán)利要求I所述的系統(tǒng),其特征在于,所述文本識(shí)別單元,還適于在所述出現(xiàn)次數(shù)小于等于所述預(yù)定閾值時(shí),將所述單元文本段識(shí)別為正文文本。9.一種網(wǎng)頁中非正文文本的識(shí)別方法,其特征在于,包括步驟A:使用網(wǎng)頁抓取器抓取目標(biāo)網(wǎng)站的所有網(wǎng)頁的數(shù)據(jù);B:構(gòu)建目標(biāo)網(wǎng)站的每個(gè)網(wǎng)頁對(duì)應(yīng)的DOM樹;C:根據(jù)所述DOM樹找出所述網(wǎng)頁中的單元文本段;D:統(tǒng)計(jì)所述單元文本段在所述目標(biāo)網(wǎng)站的所有網(wǎng)頁中的出現(xiàn)次數(shù);E:根據(jù)所述出現(xiàn)次數(shù),判斷所述單元文本段是否是非正文文本。10.如權(quán)利要求9所述的方法,其特征在于,所述步驟B中,采用網(wǎng)頁語言對(duì)應(yīng)的解析器構(gòu)建目標(biāo)網(wǎng)站的每個(gè)網(wǎng)頁對(duì)應(yīng)的DOM樹。11.如權(quán)利要求9所述的方法,其特征在于,所述步驟C中具體包括步驟Cl:從所述DOM樹的根節(jié)點(diǎn)開始,依次訪問所述DOM樹中的節(jié)點(diǎn);C2:判斷當(dāng)前節(jié)點(diǎn)對(duì)應(yīng)的文本段是否滿足單元文本段的條件,如果是,停止對(duì)所述當(dāng)前節(jié)點(diǎn)的后代節(jié)點(diǎn)的訪問,將所述當(dāng)前節(jié)點(diǎn)對(duì)應(yīng)的文本段作為單元文本段,執(zhí)行步驟C3;否貝U,直接執(zhí)行步驟C3;C3:判斷所述DOM樹中是否還有需要訪問的節(jié)點(diǎn),如果是,將相應(yīng)的節(jié)點(diǎn)作為新的當(dāng)前節(jié)點(diǎn),執(zhí)行步驟C2;否則,執(zhí)行所述步驟D。12.如權(quán)利要求11所述的方法,其特征在于,所述步驟C2具體包括步驟C21:判斷當(dāng)前節(jié)點(diǎn)是否滿足以下條件所述當(dāng)前節(jié)點(diǎn)到其后代節(jié)點(diǎn)的最長(zhǎng)路徑小于等于預(yù)定長(zhǎng)度,并且所述當(dāng)前節(jié)點(diǎn)的后代節(jié)點(diǎn)中不包含復(fù)雜節(jié)點(diǎn);如果是,執(zhí)行步驟C22;否則,執(zhí)行步驟C3;C22:停止對(duì)所述當(dāng)前節(jié)點(diǎn)的后代節(jié)點(diǎn)的訪問,將所述當(dāng)前節(jié)點(diǎn)對(duì)應(yīng)的文本段作為單元文本段,執(zhí)行步驟C3。13.如權(quán)利要求12所述的方法,其特征在于,所述復(fù)雜節(jié)點(diǎn)包括標(biāo)簽table、tr>td、ul、ol、frame>select、input、marquee和/或map對(duì)應(yīng)的節(jié)點(diǎn)。14.如權(quán)利要求11所述的方法,其特征在于,所述步驟Cl中,按照廣度優(yōu)先算法依次訪問所述DOM樹中的節(jié)點(diǎn);所述步驟C3具體包括步驟C31:判斷所述DOM樹中是否還有未訪問的所述當(dāng)前節(jié)點(diǎn)的同層節(jié)點(diǎn),如果是,將所述同層節(jié)點(diǎn)作為新的當(dāng)前節(jié)點(diǎn),執(zhí)行步驟C2;否則,執(zhí)行步驟C32;C32:判斷所述DOM樹中是否還有需要訪問的所述當(dāng)前節(jié)點(diǎn)的下層節(jié)點(diǎn),如果是,將所述下層節(jié)點(diǎn)作為新的當(dāng)前節(jié)點(diǎn),執(zhí)行步驟C2;否則,執(zhí)行所述步驟D。15.如權(quán)利要求9所述的方法,其特征在于,所述步驟D具體包括步驟Dl:對(duì)所述單元文本段進(jìn)行哈希運(yùn)算,得到結(jié)果鍵值;D2:根據(jù)所述結(jié)果鍵值統(tǒng)計(jì)所述單元文本段在所述目標(biāo)網(wǎng)站的所有網(wǎng)頁中的出現(xiàn)次數(shù)。16.如權(quán)利要求9所述的方法,其特征在于,所述步驟E具體包括步驟判斷所述出現(xiàn)次數(shù)是否大于預(yù)定閾值,如果是,將所述單元文本段識(shí)別為非正文文本;否則,將所述單元文本段識(shí)別為正文文本。全文摘要本發(fā)明公開了一種網(wǎng)頁中非正文文本的識(shí)別系統(tǒng)及方法,涉及正文抽取領(lǐng)域。所述系統(tǒng)包括網(wǎng)頁抓取器適于抓取目標(biāo)網(wǎng)站的所有網(wǎng)頁的數(shù)據(jù);DOM樹構(gòu)建單元,適于構(gòu)建目標(biāo)網(wǎng)站的每個(gè)網(wǎng)頁對(duì)應(yīng)的DOM樹;DOM樹分析單元,適于根據(jù)DOM樹找出網(wǎng)頁中的單元文本段;文本統(tǒng)計(jì)單元,適于統(tǒng)計(jì)單元文本段在目標(biāo)網(wǎng)站的所有網(wǎng)頁中的出現(xiàn)次數(shù);文本識(shí)別單元,適于在所述出現(xiàn)次數(shù)大于預(yù)定閾值時(shí),將所述單元文本段識(shí)別為非正文文本。所述系統(tǒng)及方法,克服了現(xiàn)有方法對(duì)于非正文文本識(shí)別的滯后問題,并且具有較高的識(shí)別準(zhǔn)確度。文檔編號(hào)G06F17/30GK102779172SQ20121021438公開日2012年11月14日申請(qǐng)日期2012年6月25日優(yōu)先權(quán)日2012年6月25日發(fā)明者王志剛申請(qǐng)人:北京奇虎科技有限公司,奇智軟件(北京)有限公司