專利名稱:一種文章類型網(wǎng)頁智能抽取系統(tǒng)及其方法
技術(shù)領(lǐng)域:
本發(fā)明涉及一種在互聯(lián)網(wǎng)中進行文章實時智能抓取的系統(tǒng)及其方法,可以應(yīng)用于需要大規(guī)模精準(zhǔn)、實時地抓取文章的門戶網(wǎng)站、搜索引擎網(wǎng)站等互聯(lián)網(wǎng)領(lǐng)域。
背景技術(shù):
互聯(lián)網(wǎng)門戶類網(wǎng)站每天都有大量的文章轉(zhuǎn)載需求,并且對文章的質(zhì)量要求很高。 現(xiàn)有很多抓取系統(tǒng)可以滿足這個需求,但是它們都困擾于下面三個問題1)采用機器自動生成抽取包裝器技術(shù)的抓取系統(tǒng)可以大量抓取文章,但是無法做到文章的精準(zhǔn)抽取,抓取文章的可用性低;2)采用人工生成抽取包裝器技術(shù)的抓取系統(tǒng)文章抽取結(jié)果精準(zhǔn),但是要對互聯(lián)網(wǎng)上千個網(wǎng)站進行抽取包裝器的生成和更新維護工作,普通垂直爬蟲無法很好擔(dān)負(fù)這一工作,只能依賴大量的人力參與;3)安全、高效的實時抓取技術(shù)。在要求高實時性抓取的時候,需要對抓取網(wǎng)站服務(wù)器頻繁的發(fā)起鏈接和下載請求,這將會給對方服務(wù)器造成很大的壓力,進而會導(dǎo)致對方采用封禁策略如拒絕訪問等來保證服務(wù)器正常工作,這將導(dǎo)致抓取失敗。同時高實時的抓取需求,非常耗費網(wǎng)絡(luò)、服務(wù)器等硬件資源,導(dǎo)致成本上升。本發(fā)明專利較好的解決了上述問題。本發(fā)明專利還具有更多傳統(tǒng)抓取系統(tǒng)沒有的優(yōu)點通過同站學(xué)習(xí)可以自動將網(wǎng)站中非文章頁面比如頻道頁、專題頁、列表頁、廣告頁過濾;可以對抓取文章進行近似文檔排重;可以對抓取文章進行語義理解,自動分類,自動生成摘要和關(guān)鍵詞;可以準(zhǔn)確尋找某文章數(shù)目50以內(nèi)的分頁序列并對分頁內(nèi)容進行順序合并;可以對網(wǎng)站抓取范圍進行靈活配置。支持抓取網(wǎng)站、頻道、任意頁面上一個或多個列表區(qū)域所屬的文章。在實際應(yīng)用中,本抓取系統(tǒng)轉(zhuǎn)載文章質(zhì)量很高,可以直接對外發(fā)布面向用戶,同時自動適應(yīng)上千個抓取網(wǎng)站的模版變化,極大的減少了抓取需要的人力參與,在大面積改善門戶類網(wǎng)站的新聞覆蓋度和實時性同時,也降低了門戶類網(wǎng)站的人力成本。在所有門戶類網(wǎng)站中,本專利都有應(yīng)用場景,可以有效改善其新聞的覆蓋度和實時性,同時降低人力成本。同時新聞類搜索引擎中,本專利也可以應(yīng)用。信息抽取領(lǐng)域現(xiàn)在有很多技術(shù)方案,核心都是如何生成和維護抽取包裝器。技術(shù)上主要分下面兩類1)采用機器自動生成抽取包裝器技術(shù)的抽取系統(tǒng)可以大量抓取文章,但是無法做到文章的精準(zhǔn)抽取,抓取文章的可用性低;2)采用人工生成抽取包裝器技術(shù)的抽取系統(tǒng),文章抽取結(jié)果精準(zhǔn),但是要對互聯(lián)
8網(wǎng)上千個網(wǎng)站進行抽取包裝器的生成和更新維護工作,只能依賴大量的人力參與;本發(fā)明專利的抽取模塊以自主研發(fā)的“基于同站學(xué)習(xí)和自動規(guī)則生成的文章自動抽取”方法為核心,很好地解決了上面兩個問題。在實際應(yīng)用中,本技術(shù)方案實現(xiàn)了抽取包裝器的機器自動生成和維護,使抽取不需要大量的人力參與;同時還實現(xiàn)了文章的精準(zhǔn)抽取,抽取結(jié)果很少冗余和遺漏,可用性很
尚ο本發(fā)明中涉及一下技術(shù)術(shù)語,解釋如下她MtMI^網(wǎng)頁信息抽取是信息抽取中的一類,網(wǎng)頁信息抽取的包裝器生成技術(shù)目前發(fā)展成為一個較為獨立的領(lǐng)域。包裝器是由一系列抽取規(guī)則以及應(yīng)用這些規(guī)則的計算機代碼組成的,專門從特定信息源中抽取需要的信息并返回結(jié)果的程序;胃〒雕占-;^口能帕·件成說fiig^由耳又射去本發(fā)明包含的一個包裝器自動生成方法,可以精準(zhǔn)智能的從網(wǎng)頁中抽取出文章信息;同站學(xué)習(xí)桉網(wǎng)站為單位,收集一個網(wǎng)站足夠量的網(wǎng)頁,一起講行機器統(tǒng)計學(xué)習(xí), 進而從中生成需要的規(guī)則;爬蟲(或者抓取爬蟲)抓取系統(tǒng)中單獨指負(fù)責(zé)網(wǎng)頁下載的模塊;本系統(tǒng)研發(fā)的抽取包裝器包括兩個庫Style樹或者路徑庫Style的集合庫。Style指的是某個DOM節(jié)點在DOM樹中進行節(jié)點上尋,直到到 body節(jié)點,構(gòu)建出的這樣一條路徑及其權(quán)重信息。在庫中,路徑都以網(wǎng)站為單位組織,同路徑合并成一條,并記錄頻率作為權(quán)重;模式庫此處所謂模式包括1) 一個是方法中分段后每一段的如下特征碼模式=md5((內(nèi)容text/img) + 段落 tag 前向遍歷序列 +site name) +value其中value是權(quán)重信息,也即模式的出現(xiàn)頻率。2)還有一個是對這些段進行統(tǒng)計學(xué)習(xí)后生成的自動正則模式=正則。
發(fā)明內(nèi)容
本發(fā)明的文章類型網(wǎng)頁智能抽取系統(tǒng)包括(1)待抽取網(wǎng)頁載入模塊,定時查詢本地索引,發(fā)現(xiàn)新索引就按照索引將網(wǎng)頁載入系統(tǒng)內(nèi)存中;(2)包裝器查詢模塊,對所有待抽取的網(wǎng)頁,查詢具體抽取包裝器信息,如果查詢到,就按照抽取包裝器,進入抽取模塊,進行具體抽取,否則,將網(wǎng)頁標(biāo)記為抽取失敗;(3)網(wǎng)頁抽取模塊,從網(wǎng)頁中抽取出具體文章信息,借助已有的抽取包裝器;(4)抽取失敗網(wǎng)頁收集模塊,將本輪抽取失敗的網(wǎng)頁收集起來,按網(wǎng)站分類,以方便進行集中學(xué)習(xí);(5)學(xué)習(xí)判斷模塊,按同網(wǎng)站查詢抽取失敗網(wǎng)頁集合,根據(jù)每一網(wǎng)站的失敗網(wǎng)頁數(shù)量,計算此網(wǎng)站本輪抽取成功失敗比例,決定是否進入網(wǎng)頁學(xué)習(xí)模塊;
(6)網(wǎng)頁學(xué)習(xí)模塊,對所有失敗網(wǎng)頁進行機器學(xué)習(xí),最后生成新的抽取包裝器;(7)抽取包裝器管理模塊,對系統(tǒng)的抽取包裝器進行管理,也即對路徑庫和模式庫進行管理,,并提供包裝器使用接口給網(wǎng)頁抽取模塊,提供包裝器更新接口給網(wǎng)頁學(xué)習(xí)模塊。所述網(wǎng)頁抽取模塊還包括HTML解析模塊,對傳入網(wǎng)頁,解析html構(gòu)建DOM樹;正文域?qū)ふ夷K,根據(jù)包裝器信息,尋找正文域;文章頭和分頁信息提取模塊,用于提取文章頭信息和文章分頁信息;正文域修正模塊,用于修正正文域;正文域分塊模塊,用于對正文域分塊,同時進行分塊屬性判定和冗余分塊去除;分段過濾模塊,用于對正文域進行分段,同時逐段過濾;數(shù)據(jù)整理模塊,用于合并和整理信息,形成文章類型結(jié)果;
數(shù)據(jù)整理模塊,用于生成最后文章信息。所述網(wǎng)頁學(xué)習(xí)模塊還包括HTML解析模塊,對傳入網(wǎng)頁,解析html構(gòu)建DOM樹;正文域?qū)ふ夷K,用于尋找正文域;路徑庫更新模塊,用于入庫合并,同時對路徑庫進行整理;文章頭和分頁信息提取模塊,用于提取文章頭信息和文章分頁信息;正文域修正模塊,用于修正正文域;正文域分塊模塊,用于對正文域分塊,同時進行分塊屬性判定和冗余分塊去除;分段學(xué)習(xí)模塊,進行正文域分段,逐段構(gòu)建模式,入模式庫合并;模式歸納模塊,對所有模式進行歸納,生成規(guī)則,入模式庫合并;包裝器整理模塊,對系統(tǒng)包裝器進行整理,去除已經(jīng)無效的信息。所述正文域分塊模塊,還包括頻繁模式識別模塊,采用MDR方法來識別頻繁模式;分塊模塊,對得到的頻繁模式,進行分塊標(biāo)題尋找、分塊父節(jié)點上尋,以得到最合適的分塊節(jié)點組合,然后組合形成分塊;分塊標(biāo)記模塊,在正文域DOM樹中對所有識別出來的分塊進行標(biāo)記。本發(fā)明的文章類型網(wǎng)頁智能抽取方法包括如下步驟步驟1,待抽取網(wǎng)頁載入。每隔一段時間就載入所有待抽取的網(wǎng)頁集合;如果沒有待抽取網(wǎng)頁,直接進入步驟6;步驟2,包裝器查詢。對所有待抽取的網(wǎng)頁,查詢具體抽取包裝器信息,如果查詢到,就進入步驟4,進行具體抽??;否則,抽取失敗,進入步驟5 ;步驟3,網(wǎng)頁抽取。按照包裝器,對網(wǎng)頁進行具體抽取,抽取結(jié)束后將抽取結(jié)果組織成文章類型;步驟4,標(biāo)記抽取失敗。將抽取失敗網(wǎng)頁標(biāo)記,以方便步驟6收集,同時轉(zhuǎn)步驟2 ;步驟5,收集所有抽取失敗網(wǎng)頁,形成抽取失敗網(wǎng)頁集合;步驟6,學(xué)習(xí)判斷。按同網(wǎng)站查詢抽取失敗網(wǎng)頁集合,對每一網(wǎng)站的失敗網(wǎng)頁集合, 判斷此網(wǎng)站本輪抽取成功失敗比例,決定是否進行機器學(xué)習(xí);如果學(xué)習(xí),加入待學(xué)習(xí)網(wǎng)頁集合;步驟7,網(wǎng)頁學(xué)習(xí)。對每一個網(wǎng)站的所有失敗網(wǎng)頁進行學(xué)習(xí),生成新的抽取包裝器;步驟8,抽取包裝器管理。將新的抽取包裝器放入包裝器集合中;步驟9,結(jié)束。本發(fā)明的文章類型網(wǎng)頁智能抽取方法核心環(huán)節(jié)是抽取環(huán)節(jié)、學(xué)習(xí)環(huán)節(jié)。抽取環(huán)節(jié), 即,上述步驟3,包括如下步驟步驟3. 1,HTML解析。對傳入網(wǎng)頁,解析html構(gòu)建DOM樹;先對html做預(yù)處理,包括字符格式轉(zhuǎn)換,script/style內(nèi)容過濾,不可視字符剔除等;然后根據(jù)html代碼及html規(guī)范,采用HtmlParser組件來解析網(wǎng)頁并得到DOM樹;步驟3. 2,尋找正文域;在抽取包裝器的style樹中查詢此網(wǎng)站的定位路徑,提取出正文域路徑,然后按照路徑,在DOM樹中遍歷,定位到具體DOM節(jié)點,這個節(jié)點就是我們要找的正文域;步驟3. 3,提取文章頭信息和文章分頁信息;文章頭信息,主要是文章標(biāo)題信息的提取步驟包括(1)提取正文域內(nèi)開頭的若干行,分別計算這些行的標(biāo)題匹配度并提取最大,得到域內(nèi)的候選標(biāo)題行;此處“行”是指根據(jù)html的換行標(biāo)簽比如<br>、
等對整個網(wǎng)頁的 DOM樹進行分割后形成的一些相鄰dom節(jié)點集合,以及其對應(yīng)的html代碼;(2)正文域前邊的若干行,分別計算這些行的標(biāo)題匹配度并提取最大,得到域前的候選標(biāo)題行;(3)然后,根據(jù)啟發(fā)規(guī)則及標(biāo)題匹配度比較,從中選擇一個做標(biāo)題;標(biāo)題匹配度的衡量公式如下Pt = a*(l-lenpunc/lenall)+b*(l-lentitle/lenmax title)+c*(l-lenkeyw。rds/lenmax
keywords^ u 乂丄丄 ciiSummerysummery^乂丄丄 authortext /lenmax_authortext) +f*WH+g*Hlen其中Ienpunc是行中標(biāo)點符號長度;Ienall是行中所有文字長度;Ientitle是行內(nèi)容和網(wǎng)頁中title字段內(nèi)容的編輯距離;Ienmax title是行內(nèi)容和網(wǎng)頁中title字段內(nèi)容中的最大值;Keywords指的是網(wǎng)頁自帶的關(guān)鍵詞信息;summery指的是網(wǎng)頁自帶的摘要字段; authortext指的是網(wǎng)頁url對應(yīng)的錨文字;這三種類型變量意義和上述類似;WH是標(biāo)簽類型加權(quán),行所屬的所有節(jié)點中出現(xiàn)hi h2…center等標(biāo)簽,會給節(jié)點加權(quán);Hlen是節(jié)點內(nèi)容長度加權(quán),在大量統(tǒng)計后發(fā)現(xiàn),標(biāo)題長度在16-23間最常見,其它區(qū)間都有各自的分布概率,以此計算出節(jié)點的長度加權(quán);a,b,c, d,e, f,g是各個因素的影響因子,在應(yīng)用中可以修正。文章分頁信息,其識別方法是,在正文域的尾部尋找若干行,逐行進行數(shù)字序列發(fā)現(xiàn);如果發(fā)現(xiàn)了連續(xù)的數(shù)字序列,比如“1,2,3,4,5,6…”等,而且這些數(shù)字本身帶有的url 鏈接信息和本網(wǎng)頁屬于一個網(wǎng)站,則識別成功。
步驟3. 4,修正正文域;借助于新聞文章格式的提示幫助,結(jié)合上面步驟的文章頭信息,文章尾信息(分頁信息),可以修正正文域,使其更加盡量精確1)在域前尋找到文章頭(標(biāo)題、時間等)后,對正文域修正文章頭在域內(nèi),剪去文章頭以前信息;文章頭在域外,合并之間部分入正文域;2)在域尾尋找到文章尾信息后(分頁等)如果文章尾在域內(nèi),則剪去域中尾后部分;如果文章尾在域外,不修正。步驟3. 5,對正文域分塊;包括分塊和分塊屬性判定及冗余分塊去除兩個步驟;其中分塊的步驟如下步驟3. 5. 1,采用MDR方法來識別頻繁模式(這個方法是Bing Iiu提出的);步驟3. 5. 2,對得到的模式,進行分塊標(biāo)題尋找、分塊等父節(jié)點上尋,以得到最合適的分塊節(jié)點組合;然后組合形成分塊;步驟3. 5. 3,在正文域DOM樹中對所有識別出來的分塊進行標(biāo)記;同時,在構(gòu)建分塊樹時依據(jù)以下準(zhǔn)則(1)同父所有子節(jié)點中,標(biāo)記出的分塊之間節(jié)點也是一個分塊,第一個分塊之前的節(jié)點是一個分塊,最后邊分塊之后節(jié)點是一個分塊;(2)如果節(jié)點子樹中存在標(biāo)記出的分塊,則節(jié)點本身也是一個分塊;其中正文域分塊之分塊屬性判定和冗余分塊去除;具體去除方法是(1)在得到的分塊中,判定其鏈接文字和總體文字?jǐn)?shù)目比。(2)如果分塊的鏈接比大于閾值(0.5f),則認(rèn)為是冗余分塊,樹中去除,用hr標(biāo)簽替代;(3)對剩余的頻繁模式識別出的分塊,由于它們明確的語義信息,將為它們做好標(biāo)記,使它們在后續(xù)操作中不再拆分(比如一個電視節(jié)目表格);步驟3. 6,正文域分段過濾;對正文域分塊樹進行分段,從而得到正文分段序列。之所以要分段,是因為經(jīng)過一些觀察后發(fā)現(xiàn),冗余信息都是以段或多段的形式出現(xiàn)的,所以為了后續(xù)動作中去除冗余信息的方便,對正文域進行了段化。然后進行正文域分段之逐段過濾;(1)生成模式。對所有段,提取其html代碼,進行html片段簡化,只留下tag名稱和內(nèi)容,取md5 key,構(gòu)建成模式;模式表達(dá)如下模式=md5((內(nèi)容text/img) +段落 tag 前向遍歷序列+site name) +value其中value是權(quán)重信息,也即模式的出現(xiàn)頻率;(2)逐段過濾。將得到的模式放入包裝器的模式庫,進行入庫合并;模式庫查詢到相同模式,則模式加權(quán),也即將value字段合并加權(quán);如果沒有查找到,則入庫。步驟3. 7,數(shù)據(jù)整理,結(jié)果生成;合并整理信息,抽取摘要等,抽取成功;
步驟3. 8,抽取結(jié)束。在學(xué)習(xí)環(huán)節(jié),SP,上述步驟7,包括步驟7. 1,HMTL解析。對傳入網(wǎng)頁,解析html構(gòu)建DOM樹;步驟7. 2,尋找正文域;通過正文域識別方法來定位正文域。定位正文域的目的是初步尋找正文的合理區(qū)域,減少方法處理的Dom樹范圍,同時減少了方法的出錯概率;正文包含在一個或多個嵌套的Div、Table節(jié)點中,正文定域就是尋找最合適的這樣一個Div或Table ;通過一個信息度最高的Div或Table來實現(xiàn);信息度計算公式H = Iennot link*log(l+lenlink/lenallTxt)+a*lenn。t link*log(l+lenn。t link/lenhtml)其中a是影響因子,目前默認(rèn)為0.5;Iennot link是節(jié)點中非連接文字長度;Ienalllxt是節(jié)點中所有文字長度;1 enhtml是節(jié)點的html長度;計算時,log中參數(shù)加1,使log運算結(jié)果都> 0 ;找到這個想要的Div或者Table后,在DOM樹中回溯到body節(jié)點,回溯結(jié)束后,就形成了一條路徑;回溯過程中,記錄經(jīng)過DOM節(jié)點的位置信息,也即每一個DOM節(jié)點在父節(jié)點中的從左到右的序號。最后,得到一條DOM樹路徑,同時路徑的節(jié)點還有其位置信息步驟7. 3,路徑入庫合并;將上述路徑并入系統(tǒng)包裝器之路徑庫,并入時,同路徑合并加權(quán);如果發(fā)現(xiàn)重復(fù)的路徑,進行合并加權(quán),加權(quán)是修改DFS字段,也即將新路徑的DFS 值加入舊路徑;如果沒有發(fā)現(xiàn)重復(fù),新路徑入庫就可以了 ;步驟7. 4,提取文章頭信息和文章分頁信息;包括文章頭信息,主要是標(biāo)題信息的提取方法是(1)提取正文域內(nèi)開頭的若干行,分別計算這些行的標(biāo)題匹配度并提取最大,得到域內(nèi)的候選標(biāo)題行;(2)正文域前邊的若干行,分別計算這些行的標(biāo)題匹配度并提取最大,得到域前的候選標(biāo)題行;(3)然后,根據(jù)啟發(fā)規(guī)則及標(biāo)題匹配度比較,從中選擇一個做標(biāo)題;標(biāo)題匹配度的衡量公式如下Pt = a*(l-lenpunc/lenall)+b*(l-lentitle/lenmax title)+c*(l-lenkeyw。rds/lenmax
keywords^ u 乂丄丄 ciiSummerysummery^乂丄丄 authortext /lenmax_authortext) +f*WH+g*Hlen其中Ienpunc是行中標(biāo)點符號長度;Ienall是行中所有文字長度;Ientitle是行內(nèi)容和網(wǎng)頁中title字段內(nèi)容的編輯距離;Ienfflaxjitle是行內(nèi)容和網(wǎng)頁中title字段內(nèi)容中的最大值;
Keywords指的是網(wǎng)頁自帶的關(guān)鍵詞信息;summery指的是網(wǎng)頁自帶的摘要字段; authortext指的是網(wǎng)頁url對應(yīng)的錨文字;這三種類型變量意義和上述類似;WH是標(biāo)簽類型加權(quán),行所屬的所有節(jié)點中出現(xiàn)hi h2…center等標(biāo)簽,會給節(jié)點加權(quán);Hlen是節(jié)點內(nèi)容長度加權(quán),在大量統(tǒng)計后發(fā)現(xiàn),標(biāo)題長度在16-23間最常見,其它區(qū)間都有各自的分布概率,以此計算出節(jié)點的長度加權(quán);a,b,c, d,e, f,g是各個因素的影響因子,在應(yīng)用中可以修正。文章分頁信息識別方法是,在正文域的尾部尋找若干行,逐行進行數(shù)字序列發(fā)現(xiàn); 如果發(fā)現(xiàn)了連續(xù)的數(shù)字序列,比如“ 1,2,3,4, 5,6··· ”等,而且這些數(shù)字本身帶有的url鏈接信息和本網(wǎng)頁屬于一個網(wǎng)站,則識別成功;步驟7. 5,修正正文域;借助于新聞文章格式的提示幫助,結(jié)合上面步驟的文章頭信息,文章尾信息(分頁信息),可以修正正文域,使其更加盡量精確1)在域前尋找到文章頭(標(biāo)題、時間等)后,對正文域修正文章頭在域內(nèi),剪去文章頭以前信息;文章頭在域外,合并之間部分入正文域;2)在域尾尋找到文章尾信息后(分頁等)如果文章尾在域內(nèi),則剪去域中尾后部分;如果文章尾在域外,不修正。步驟7. 6,對正文域分塊,包括分塊以及分塊屬性判定以及冗余分塊去除;其中分塊的具體步驟如下步驟7.6. 1,采用MDR方法來識別頻繁模式(這個方法是Bing Iiu提出的);步驟7. 6. 2,對得到的頻繁模式,進行分塊標(biāo)題尋找、分塊等父節(jié)點上尋,以得到最合適的分塊節(jié)點組合;然后組合形成分塊;步驟7. 6. 3,在正文域DOM樹中對所有識別出來的分塊進行標(biāo)記;同時,在構(gòu)建分塊樹時依據(jù)以下準(zhǔn)則(1)同父所有子節(jié)點中,標(biāo)記出的分塊之間節(jié)點也是一個分塊,第一個分塊之前的節(jié)點是一個分塊,最后邊分塊之后節(jié)點是一個分塊;(2)如果節(jié)點子樹中存在標(biāo)記出的分塊,則節(jié)點本身也是一個分塊;其中分塊屬性判定和冗余分塊去除的方法如下(1)在得到的分塊中,判定其鏈接文字和總體文字?jǐn)?shù)目比。(2)如果分塊的鏈接比大于閾值(0.5f),則認(rèn)為是冗余分塊,樹中去除,用hr標(biāo)簽替代;(3)對剩余的頻繁模式識別出的分塊,由于它們明確的語義信息,將為它們做好標(biāo)記,使它們在后續(xù)操作中不再拆分(比如一個電視節(jié)目表格);步驟7. 7,分段學(xué)習(xí),先進行正文域分段;對正文域分塊樹進行分段,從而得到正文分段序列。之所以要分段,是因為經(jīng)過一些觀察后發(fā)現(xiàn),冗余信息都是以段或多段的形式出現(xiàn)的,所以為了后續(xù)動作中去除冗余信息的方便,對正文域進行了段化。
在分完段后,所有段,生成模式;模式生成過程是,對所有段,提取其html代碼,進行html片段簡化,只留下tag名稱和內(nèi)容,取mc^key,構(gòu)建成模式;模式表達(dá)如下模式=md5((內(nèi)容text/img) +段落 tag 前向遍歷序列+site name) +value其中value是權(quán)重信息,也即模式的出現(xiàn)次數(shù)。然后進行逐個模式的學(xué)習(xí)。學(xué)習(xí)方式是將得到的模式放入包裝器的模式庫,進行入庫合并。模式庫查詢到相同模式,則模式加權(quán),也即將value字段合并加權(quán);如果沒有查找到,則入庫就可以了 ;步驟7. 8,模式歸納,也即自動正則生成;模式歸納的具體步驟如下步驟7. 8. 1 對庫中所有樽式,提取原串,桉網(wǎng)站分鉬,毎鉬桉字符串相似度講行聚類,得到高內(nèi)聚的幾個分組;步驟7. 8.2 對得到毎個分纟目,其內(nèi),對毎對分段計算其合并后的if則,得到所有可能的不同正則;這些正則的出現(xiàn)頻率按高低排序,取最大的那個;再驗證第二大的那個, 如果能夠覆蓋組內(nèi)部分未覆蓋分段且權(quán)重適當(dāng),則其也是可取的模式;提取兩個分段的模式遞歸地尋找兩個分段剩余部分最優(yōu)共同片段;片段前部分就是不同,需要合并的地方;這總體是一個借助二維表格動態(tài)規(guī)劃的方法;步Ml^l:對得到的所有正則,保留那些權(quán)重高于某個閾值項的,然后加入模式庫中;模式歸納結(jié)束后,得到若干條正則;加入權(quán)重value信息,入模式庫中;步驟7. 9,結(jié)束。上述所有學(xué)習(xí)環(huán)節(jié)最后都更新了兩個庫style樹庫(路徑庫)、模式庫;將更新后的這兩個庫整理入總體包裝器庫,完成了所有學(xué)習(xí)步驟。本發(fā)明技術(shù)上主要包括如下幾個關(guān)鍵點信息抽取技術(shù)(抽取包裝器生成技術(shù))。采用人工生成和維護抽取包裝器的抓取系統(tǒng),可以精準(zhǔn)抽取文章信息,但是不能自動發(fā)現(xiàn)和適應(yīng)抓取源的變化,及時修正包裝器; 從而導(dǎo)致文章抽取出現(xiàn)失敗,且不能自動修復(fù);相應(yīng),維護人力和成本太高;現(xiàn)有采用智能技術(shù)如統(tǒng)計學(xué)習(xí)、最大熵模型、網(wǎng)頁視覺分塊方法等生成抽取包裝器的抓取系統(tǒng),可以做到自動維護抽取包裝器,從而減少了人力成本;但是實際應(yīng)用中,存在抽取錯誤(內(nèi)容冗余和缺失)較多,對全互聯(lián)網(wǎng)域的不同網(wǎng)站適應(yīng)性不強的問題;有些不能做到包裝器的及時更新修正,抓取失敗多。實時抓取技術(shù)。在要求高實時性抓取的時候,需要對抓取網(wǎng)站服務(wù)器頻繁的發(fā)起鏈接和下載請求,如果不能做好頻率控制,將給對方服務(wù)器造成很大的壓力,進而會導(dǎo)致對方采用封禁策略如拒絕訪問等來保證服務(wù)器正常工作,這將導(dǎo)致抓取失敗。同時高實時的抓取需求,極其耗費網(wǎng)絡(luò)等硬件資源,導(dǎo)致成本上升。現(xiàn)有很多抓取系統(tǒng)通過采用抓取頻率控制、增加抓取服務(wù)器的方式來保障抓取的實時性。大規(guī)模文檔近似排重技術(shù)?,F(xiàn)有很多技術(shù)和系統(tǒng)能對文檔進行近似排重,本系統(tǒng)采用自己開發(fā)的關(guān)鍵詞提取技術(shù),結(jié)合倒排索引這個一高效查找模型,實現(xiàn)了大規(guī)模文檔的快速近似排重。文章自動關(guān)鍵詞技術(shù)。常用的自動關(guān)鍵詞技術(shù),有兩個缺點,一個是不能很好的發(fā)現(xiàn)新詞和組合詞,如“利比亞動亂”;另外就是經(jīng)常會出現(xiàn)錯詞,準(zhǔn)確度不夠。本系統(tǒng)對我們常用的關(guān)鍵詞提取技術(shù)進行了改進,從而能夠更多地發(fā)現(xiàn)新詞和組合詞,能夠使關(guān)鍵詞提取更準(zhǔn)確。
圖1文章實時智能抓取系統(tǒng)模塊結(jié)構(gòu)圖;圖2文章實時智能抓取系統(tǒng)數(shù)據(jù)流程圖;圖3本發(fā)明的文章類型網(wǎng)頁智能抽取系統(tǒng)模塊結(jié)構(gòu)圖;圖4網(wǎng)頁抽取模塊的模塊結(jié)構(gòu)圖;圖5網(wǎng)頁學(xué)習(xí)模塊的模塊結(jié)構(gòu)圖;圖6正文域分塊模塊的模塊結(jié)構(gòu)圖;圖7基于同站學(xué)習(xí)和自動規(guī)則生成的文章自動抽取方法的總體流程圖;圖8基于同站學(xué)習(xí)和自動規(guī)則生成的文章自動抽取方法的總體流程圖;圖9基于同站學(xué)習(xí)和自動規(guī)則生成的文章自動抽取方法的學(xué)習(xí)環(huán)節(jié)流程圖;圖10正文域分塊模塊的數(shù)據(jù)流程圖;圖11抽取方法之正文域修正示意圖;圖12—圖19基于鳳凰網(wǎng)的網(wǎng)頁抽取示例。
具體實施例方式實時智能抓取系統(tǒng)共由5個模塊或者子系統(tǒng)構(gòu)成,如圖1所示。包括實時抓取模塊,文章類型網(wǎng)頁智能抽取系統(tǒng),文檔近似排重模塊,文檔自動分類模塊,文章發(fā)布模塊。^mM^icMmmmMm^mmmmim^^m信息抽取領(lǐng)域現(xiàn)在有很多技術(shù)方案,核心都是如何生成和維護抽取包裝器。技術(shù)上主要分下面兩類1)采用機器自動生成抽取包裝器技術(shù)的抽取系統(tǒng)可以大量抓取文章,但是無法做到文章的精準(zhǔn)抽取,抓取文章的可用性低;2)采用人工生成抽取包裝器技術(shù)的抽取系統(tǒng),文章抽取結(jié)果精準(zhǔn),但是要對互聯(lián)網(wǎng)上千個網(wǎng)站進行抽取包裝器的生成和更新維護工作,只能依賴大量的人力參與;本發(fā)明專利的抽取模塊以自主研發(fā)的“基于同站學(xué)習(xí)和自動規(guī)則生成的文章自動抽取”方法為核心,很好地解決了上面兩個問題。在實際應(yīng)用中,本技術(shù)方案實現(xiàn)了抽取包裝器的機器自動生成和維護,使抽取不需要大量的人力參與;同時還實現(xiàn)了文章的精準(zhǔn)抽取,抽取結(jié)果很少冗余和遺漏,可用性很
尚ο本發(fā)明的文章類型網(wǎng)頁智能抽取系統(tǒng)主要包括如下/L個子樽塊,如圖3 (1)待抽取網(wǎng)頁載入模塊,主要負(fù)責(zé)定時查詢本地索引,發(fā)現(xiàn)新索引就按照索引將網(wǎng)頁載入系統(tǒng)內(nèi)存中;(2)包裝器查詢模塊,對所有待抽取的網(wǎng)頁,查詢具體抽取包裝器信息,如果查詢
16到,就按照抽取包裝器,進入抽取模塊,進行具體抽取,否則,將網(wǎng)頁標(biāo)記為抽取失??;(3)網(wǎng)頁抽取模塊,負(fù)責(zé)從網(wǎng)頁中抽取出具體文章信息。借助已有的抽取包裝器;(4)抽取失敗網(wǎng)頁收集模塊,負(fù)責(zé)將本輪抽取失敗的網(wǎng)頁收集起來,按網(wǎng)站分類, 以方便進行集中學(xué)習(xí);(5)學(xué)習(xí)判斷模塊,按同網(wǎng)站查詢抽取失敗網(wǎng)頁集合,根據(jù)每一網(wǎng)站的失敗網(wǎng)頁數(shù)量,計算此網(wǎng)站本輪抽取成功失敗比例,決定是否進入網(wǎng)頁學(xué)習(xí)模塊;(6)網(wǎng)頁學(xué)習(xí)模塊,負(fù)責(zé)對所有失敗網(wǎng)頁進行機器學(xué)習(xí);最后生成新的抽取包裝器;(7)抽取包裝器管理模塊,負(fù)責(zé)對系統(tǒng)的抽取包裝器進行管理,也即對路徑庫和模式庫進行管理,,并提供包裝器使用接口給網(wǎng)頁抽取模塊,提供包裝器更新接口給網(wǎng)頁學(xué)習(xí)模塊。所述網(wǎng)頁抽取模塊還包括HTML解析模塊,對傳入網(wǎng)頁,解析html構(gòu)建DOM樹;正文域?qū)ふ夷K,根據(jù)包裝器信息,尋找正文域;文章頭和分頁信息提取模塊,用于提取文章頭信息和文章分頁信息;正文域修正模塊,用于修正正文域;正文域分塊模塊,用于對正文域分塊,同時進行分塊屬性判定和冗余分塊去除;分段過濾模塊,用于對正文域進行分段,同時逐段過濾;數(shù)據(jù)整理模塊,用于合并和整理信息,形成文章類型結(jié)果;數(shù)據(jù)整理模塊,用于生成最后文章信息。所述網(wǎng)頁學(xué)習(xí)模塊還包括HTML解析模塊,對傳入網(wǎng)頁,解析html構(gòu)建DOM樹;正文域?qū)ふ夷K,用于尋找正文域;路徑庫更新模塊,用于入庫合并,同時對路徑庫進行整理;文章頭和分頁信息提取模塊,用于提取文章頭信息和文章分頁信息;正文域修正模塊,用于修正正文域;正文域分塊模塊,用于對正文域分塊,同時進行分塊屬性判定和冗余分塊去除;分段學(xué)習(xí)模塊,進行正文域分段,逐段構(gòu)建模式,入模式庫合并;模式歸納模塊,對所有模式進行歸納,生成規(guī)則,入模式庫合并;包裝器整理模塊,對系統(tǒng)包裝器進行整理,去除已經(jīng)無效的信息。所述正文域分塊模塊,還包括頻繁模式識別模塊,采用MDR方法來識別頻繁模式;分塊模塊,對得到的頻繁模式,進行分塊標(biāo)題尋找、分塊父節(jié)點上尋,以得到最合適的分塊節(jié)點組合,然后組合形成分塊;分塊標(biāo)記模塊,在正文域DOM樹中對所有識別出來的分塊進行標(biāo)記。網(wǎng)頁抽取和學(xué)習(xí)模塊的核心是“基于同站學(xué)習(xí)和自動規(guī)則生成的文章自動抽取”方法。文章類型網(wǎng)頁智能抽取方法主要包括兩個部分抽取環(huán)節(jié)、學(xué)習(xí)環(huán)節(jié)。文章類型網(wǎng)頁智能抽取方法的總體流程圖如圖7所示,具體步驟是
步驟1,待抽取網(wǎng)頁載入。每隔一段時間就載入所有待抽取的網(wǎng)頁集合;如果沒有待抽取網(wǎng)頁,進入步驟6 ;步驟2,包裝器查詢。對所有待抽取的網(wǎng)頁,查詢具體抽取包裝器信息,如果查詢到,就進入步驟4,進行具體抽?。环駝t,抽取失敗,進入步驟5 ;步驟3,網(wǎng)頁抽取。按照包裝器,對網(wǎng)頁進行具體抽取,抽取結(jié)束后將抽取結(jié)果組織成文章類型;步驟4,標(biāo)記抽取失敗。將抽取失敗網(wǎng)頁標(biāo)記,以方便步驟6收集,同時轉(zhuǎn)步驟2 ;步驟5,收集所有抽取失敗網(wǎng)頁,形成抽取失敗網(wǎng)頁集合;步驟6,學(xué)習(xí)判斷。按同網(wǎng)站查詢抽取失敗網(wǎng)頁集合,對每一網(wǎng)站的失敗網(wǎng)頁集合, 判斷此網(wǎng)站本輪抽取成功失敗比例,決定是否進行機器學(xué)習(xí);如果學(xué)習(xí),加入待學(xué)習(xí)網(wǎng)頁集合;步驟7,網(wǎng)頁學(xué)習(xí)。對每一個網(wǎng)站的所有失敗網(wǎng)頁進行學(xué)習(xí),生成新的抽取包裝器;步驟8,抽取包裝器管理。將新的抽取包裝器放入包裝器集合中;步驟9,本輪抽取結(jié)束。抽取方法核心環(huán)節(jié)是抽取環(huán)節(jié)、學(xué)習(xí)環(huán)節(jié)。下面逐一進行具體介紹。抽取環(huán)節(jié),即,上述步驟3,流程如圖8所示步驟3. 1,HTML解析。對傳入網(wǎng)頁,解析html構(gòu)建DOM樹;先對html做預(yù)處理,包括字符格式轉(zhuǎn)換,script/style內(nèi)容過濾,不可視字符剔除等;然后根據(jù)html代碼及html規(guī)范,采用HtmlParser組件來解析網(wǎng)頁并得到DOM樹;步驟3. 2,尋找正文域;正文域指的是DOM樹中的某個DOM節(jié)點,它包含了文章的主要內(nèi)容信息。尋找方式是,在抽取包裝器的style樹中查詢此網(wǎng)站的定位路徑,提取出正文域路徑,然后按照路徑,在DOM樹中遍歷,定位到具體DOM節(jié)點,這個節(jié)點就是我們要找的正文域;步驟3. 3,提取文章頭信息和文章分頁信息;文章頭信息包括文章標(biāo)題信息,文章時間信息,文章出處信息等。提取標(biāo)題的方法大致如下(1)提取正文域內(nèi)開頭的若干行,分別計算這些行的標(biāo)題匹配度并提取最大,得到域內(nèi)的候選標(biāo)題行;此處“行”是指根據(jù)html的換行標(biāo)簽比如<br>、
等對整個網(wǎng)頁的 DOM樹進行分割后形成的一些相鄰dom節(jié)點集合,以及其對應(yīng)的html代碼;(2)正文域前邊的若干行,分別計算這些行的標(biāo)題匹配度并提取最大,得到域前的候選標(biāo)題行;(3)然后,根據(jù)啟發(fā)規(guī)則及標(biāo)題匹配度比較,從中選擇一個做標(biāo)題;標(biāo)題匹配度的衡量公式如下Pt = a*(l-lenpunc/lenall)+b*(l-lentitle/lenmax title)+c*(l-lenkeywords/lenmax
keywords^ u 乂丄丄 ciiSummerysummery^乂丄丄 authortext /lenmax_authortext) +f*WH+g*Hlen其中Ienpunc是行中標(biāo)點符號長度;Ienall是行中所有文字長度;
Ientitle是行內(nèi)容和網(wǎng)頁中title字段內(nèi)容的編輯距離;Ienfflax title是行內(nèi)容和網(wǎng)頁中title字段內(nèi)容中的最大值;Keywords指的是網(wǎng)頁自帶的關(guān)鍵詞信息;summery指的是網(wǎng)頁自帶的摘要字段; authortext指的是網(wǎng)頁url對應(yīng)的錨文字;這三種類型變量意義和上述類似;WH是標(biāo)簽類型加權(quán),行所屬的所有節(jié)點中出現(xiàn)hi h2…center等標(biāo)簽,會給節(jié)點加權(quán);Hlen是節(jié)點內(nèi)容長度加權(quán),在大量統(tǒng)計后發(fā)現(xiàn),標(biāo)題長度在16-23間最常見,其它區(qū)間都有各自的分布概率,以此計算出節(jié)點的長度加權(quán);a,b,c, d,e, f,g是各個因素的影響因子,在應(yīng)用中可以修正。文章時間信息、文章出處信息是在文章標(biāo)題位置的下面若干行中進行匹配查找, 由于正文域和標(biāo)題確定后,這個部分很小,所以識別準(zhǔn)備度很高;文章分頁信息等識別方法是,在正文域的尾部尋找若干行,逐行進行數(shù)字序列發(fā)現(xiàn);如果發(fā)現(xiàn)了連續(xù)的數(shù)字序列,比如“1,2,3,4,5,6…”等,而且這些數(shù)字本身帶有的url 鏈接信息和本網(wǎng)頁屬于一個網(wǎng)站,則識別成功;步驟3. 4,修正正文域;借助于新聞文章格式的提示幫助,結(jié)合上面步驟的文章頭信息,文章尾信息(分頁信息),可以修正正文域,使其更加盡量精確如圖6所示(其中文章尾信息指的是分頁信息),修正方式如下1)在域前尋找到文章頭(標(biāo)題、時間等)后,對正文域修正文章頭在域內(nèi),剪去文章頭以前信息;文章頭在域外,合并之間部分入正文域;2)在域尾尋找到文章尾信息后(分頁等)如果文章尾在域內(nèi),則剪去域中尾后部分;如果文章尾在域外,不修正。步驟3. 5,對正文域分塊,包括分塊以及分塊屬性判定和冗余分塊去除兩個步驟, 其中所述分塊正文域分塊目的是將頁面分成幾個完整的區(qū)域,逐個區(qū)域進行屬性判定,進而去除冗余,提高抽取結(jié)果的精準(zhǔn)度。正文域分塊方法步驟如下步驟3. 5. 1,采用MDR方法來識別頻繁模式(這個方法是Bing Iiu提出的);步驟3. 5. 2,對得到的模式,進行分塊標(biāo)題尋找、分塊等父節(jié)點上尋,以得到最合適的分塊節(jié)點組合;然后組合形成分塊;步驟3. 5. 3,在正文域DOM樹中對所有識別出來的分塊進行標(biāo)記;同時,在構(gòu)建分塊時依據(jù)以下準(zhǔn)則(1)同父所有子節(jié)點中,標(biāo)記出的分塊之間節(jié)點也是一個分塊,第一個分塊之前的節(jié)點是一個分塊,最后邊分塊之后節(jié)點是一個分塊;(2)如果節(jié)點子樹中存在標(biāo)記出的分塊,則節(jié)點本身也是一個分塊;步驟3. 6,對正文域分塊之分塊屬性判定和冗余分塊去除等;在得到的分塊中,判定其鏈接文字和總體文字?jǐn)?shù)目比;
如果分塊的鏈接比大于閾值(0. 5f),則認(rèn)為是冗余分塊,樹中去除,用hr標(biāo)簽替代;對剩余的頻繁模式識別出的分塊,由于它們明確的語義信息,將為它們做好標(biāo)記, 使它們在后續(xù)操作中不再拆分(比如一個電視節(jié)目表格);步驟3. 7,正文域分段過濾;對正文域分塊樹進行分段,從而得到正文分段序列。之所以要分段,是因為經(jīng)過一些觀察后發(fā)現(xiàn),冗余信息都是以段或多段的形式出現(xiàn)的,所以為了后續(xù)動作中去除冗余信息的方便,對正文域進行了段化。然后進行正文域分段之逐段過濾;(1)生成模式。對所有段,提取其html代碼,進行html片段簡化,只留下tag名稱和內(nèi)容,取mc^key,構(gòu)建成模式;模式表達(dá)如下模式=md5((內(nèi)容text/img) +段落 tag 前向遍歷序列+site name) +value其中value是權(quán)重信息,也即模式的出現(xiàn)頻率;(2)逐段過濾。將得到的模式放入包裝器的模式庫,進行入庫合并;模式庫查詢到相同模式,則模式加權(quán),也即將value字段合并加權(quán);如果沒有查找到,則入庫。步驟3. 8,數(shù)據(jù)整理,結(jié)果生成;合并整理信息,抽取摘要等,抽取成功;步驟3. 9,抽取結(jié)束。學(xué)習(xí)環(huán)節(jié)和抽取環(huán)節(jié)很多步驟是對應(yīng)的,有些步驟是相同的。學(xué)習(xí)環(huán)節(jié),即,上述步驟7,流程如圖9所示步驟7. 1,HMTL解析。對傳入網(wǎng)頁,解析html構(gòu)建DOM樹;同抽取環(huán)節(jié);步驟7. 2,尋找正文域;和抽取環(huán)節(jié)不同,學(xué)習(xí)環(huán)節(jié)通過正文域識別方法來定位正文域。定位定域的目的是初步尋找正文的合理區(qū)域,減少方法處理的Dom樹范圍,同時減少了方法的出錯概率;而且,實驗中發(fā)現(xiàn),很多網(wǎng)頁在正文定域這個階段就已經(jīng)正確提出了正文;根據(jù)實驗統(tǒng)計,所有的正文都會包含在一個或多個嵌套的Div、Table節(jié)點中,所以正文定域的思想就是尋找最合適的這樣一個Div或Table來;我們的方法是尋找一個信息度最高的Div或Table來;信息度計算公式H = Iennot link*log(l+lenlink/lenallTxt)+a*lenn。t link*log(l+lenn。t link/lenhtml)其中a是影響因子,目前默認(rèn)為0. 5 ;Iennot link是節(jié)點中非連接文字長度;Ienalllxt是節(jié)點中所有文字長度;1 enhtml是節(jié)點的html長度;計算墑時,log中參數(shù)加1,使log運算結(jié)果都> 0 ;
20
公式考慮鏈接文字比,可以保證找到非連接文字盡可能多的候選節(jié)點;公式考慮非連接文字和html長度比,可以保證候選節(jié)點足夠收縮避免找到的候選節(jié)點太寬泛;最后我們找到這個想要的Div或者Table,然后在DOM樹中回溯到body節(jié)點,回溯結(jié)束后,就形成了一條路徑;回溯過程中,記錄經(jīng)過DOM節(jié)點的位置信息,也即每一個DOM 節(jié)點在父節(jié)點中的從左到右的序號。最后,我們得到一條DOM樹路徑,同時路徑的節(jié)點還有其位置信息,比如"Div index = 3 DFS = 1 = = > Body index = 0 DFS = 1 = = > www. ifeng. com,,步驟7. 3,路徑入庫合并;將上述路徑并入系統(tǒng)包裝器之路徑庫,并入時,同路徑合并加權(quán);如果發(fā)現(xiàn)重復(fù)的路徑,進行合并加權(quán),加權(quán)是修改DFS字段,也即將新路徑的DFS 值加入舊路徑;如果沒有發(fā)現(xiàn)重復(fù),新路徑入庫就可以了 ;步驟7. 4,提取文章頭信息和文章分頁信息;同抽取環(huán)節(jié);步驟7. 5,修正正文域;同抽取環(huán)節(jié);步驟7. 6,對正文域分塊;同抽取環(huán)節(jié);步驟7. 7,正文域分塊之分塊屬性判定和冗余分塊去除等;同抽取環(huán)節(jié);步驟7. 8,分段學(xué)習(xí);先對正文域分段,方式同抽取環(huán)節(jié);在分完段后,所有段,生成模式;模式生成過程是,對所有段,提取其html代碼,進行html片段簡化,只留下tag名稱和內(nèi)容,取md5 key,構(gòu)建成模式;模式表達(dá)如下模式=md5((內(nèi)容text/img) + 段落 tag 前向遍歷序列 +site name) +value其中value是權(quán)重信息,也即模式的出現(xiàn)次數(shù)。然后將得到的模式放入包裝器的模式庫,進行入庫合并。模式庫查詢到相同模式, 則模式加權(quán),也即將value字段合并加權(quán);如果沒有查找到,則入庫就可以了 ;步驟7. 9,模式歸納,也即自動正則生成;模式庫中上一步驟得到的模式,有很多事可以正則合并的;如下所示,類似這些模式是應(yīng)該正則合并的“更多精彩內(nèi)容,請進健康頻道”“更多精彩圖片,請進圖片頻道”“更多精彩新聞,請進資訊頻道”合并后模式
21
“更多精彩*,請進*頻道”合并后,我們就得到了模式庫的另外一種類型的模式正則。這個過程叫做模式歸納。模式歸納的具體步驟如下步驟7. 9. 1 對庫中所有樽式,提取原串,桉網(wǎng)站分鉬,毎鉬桉字符串相似度講行聚類,得到高內(nèi)聚的幾個分組。字符串相似計算簡單分詞,以“詞”為單位,計算詞編輯距離,得到相似度;分詞時html tag為一個詞,英文一個單詞為一個詞,漢字一個字或標(biāo)點符號為一個詞;聚類方法=K-Means方法;步驟7. 9. 2 對得到每個分組,其內(nèi),對每對分段計算其合并后的正則,得到所有可能的不同正則;這些正則的可能性(出現(xiàn)頻率)按高低排序,取最大的那個(其覆蓋面必然最寬);再驗證第二大的那個,如果能夠覆蓋組內(nèi)部分未覆蓋分段且權(quán)重適當(dāng),則其也是可取的模式;如何提取兩個分段的模式遞歸地尋找兩個分段剩余部分最優(yōu)共同片段;片段前部分就是不同,需要合并的地方;這總體是一個借助二維表格動態(tài)規(guī)劃的方法;不同部分處理數(shù)字不同,則用"\d"合并;數(shù)字字母混合不同,用"\d[a-z]" 代替;其它不同,用"*"代替;如果是數(shù)字不同,則不同部分?jǐn)U展到各自所屬的所有數(shù)字序列,以提高適應(yīng)性;比如“ /imgs/89089089. jpg〃合并為〃 /imgs/\d* ? . jpg〃“ /imgs/89010197. jpg"步驟7. 9. 3 對得到的所有ιΗ則,保留那些權(quán)重高于某個閾倌項的,然后加入模式庫中;模式歸納結(jié)束后,得到若干條正則;加入權(quán)重value信息,入模式庫中;步驟7. 10,結(jié)束。上述所有學(xué)習(xí)環(huán)節(jié)最后都更新了兩個庫style樹庫(路徑庫)、模式庫;將更新后的這兩個庫整理入總體包裝器庫,完成了所有學(xué)習(xí)步驟。以下為本抽取系統(tǒng)實際操作示例。以抓取鳳凰網(wǎng)的臺灣即時新聞 http://news. ifenR. com/taiwan/rss/rtlist 0/ index, shtml為例,總個抽取系統(tǒng)的流程如下之前這個即時新聞列表中的所有網(wǎng)頁已經(jīng)被抓取,接下來進入本網(wǎng)頁抽取系統(tǒng)步驟1,待抽取網(wǎng)頁載入。每隔一段時間就載入所有待抽取的網(wǎng)頁集合;如果沒有待抽取網(wǎng)頁,進入步驟6 ;此處將抓取到的所有網(wǎng)頁載入,計有42篇;步驟2,對每一個網(wǎng)頁,進行包裝器查詢。根據(jù)這批網(wǎng)頁的域名mm. ifenR. com的提示,我們進入包裝器中,查詢具體抽取包裝器信息,如果查詢到,就進入步驟4,進行具體抽??;否則,抽取失敗,進入步驟5 ;步驟3,網(wǎng)頁抽取。按照查詢得到的抽取包裝器,對網(wǎng)頁進行具體抽取,抽取結(jié)束后將抽取結(jié)果組織成文章類型后續(xù)將以一個鏈接為“httD://newS. ifeng. com/mil/3/ detail 2011 11/21/10798106 0. shtml”的網(wǎng)頁為例,給出具體抽取實例;步驟4,標(biāo)記抽取失敗。將抽取失敗網(wǎng)頁標(biāo)記,以方便步驟6收集,同時轉(zhuǎn)步驟2 ;步驟5,收集所有抽取失敗網(wǎng)頁,形成抽取失敗網(wǎng)頁集合;此處我們共有沈篇抽取失??;步驟6,學(xué)習(xí)判斷。按同網(wǎng)站查詢抽取失敗網(wǎng)頁集合,對每一網(wǎng)站的失敗網(wǎng)頁集合, 判斷此網(wǎng)站本輪抽取成功失敗比例,決定是否進行機器學(xué)習(xí);如果學(xué)習(xí),加入待學(xué)習(xí)網(wǎng)頁集合;此處我們的抽取成功了 16個網(wǎng)頁,共有網(wǎng)頁42個,成功比例是16/42 <0.5,所以需要進行學(xué)習(xí);步驟7,網(wǎng)頁學(xué)習(xí)。對每一個網(wǎng)站的所有失敗網(wǎng)頁進行學(xué)習(xí),生成新的抽取包裝器; 學(xué)習(xí)的相應(yīng)實例將在后面給出;步驟8,抽取包裝器管理。將新的抽取包裝器放入包裝器集合中;步驟9,本輪抽取結(jié)束。在上述實例中,需要展開闡述一個具體的網(wǎng)頁抽取步驟。此處,我們用一篇網(wǎng)頁 "http://news. ifeng. com/mil/3/detail_2011_ll/21/10798106_0. shtml網(wǎng)站是 www. ifenR. com為例,演示通過我們的網(wǎng)頁抽取步驟,如何得到一篇完整而準(zhǔn)確的文章信息。系統(tǒng)讀入一輪待抽取的網(wǎng)頁,逐篇處理,其中一篇的鏈接地址是“http://neWS. ifeng. com/mil/3/detail_2011_ll/21/10798106_0. shtml網(wǎng)站是 www. ifeng. com ;如圖 12所示1. HTML解析,最后構(gòu)建出DOM樹;先需要進行網(wǎng)頁預(yù)處理;字符格式轉(zhuǎn)換,script/style內(nèi)容過濾,不可視字符剔除等;然后根據(jù)html代碼及html規(guī)范,采用HtmlParser組件來解析網(wǎng)頁并得到DOM 樹;2.尋找正文域;通過www. ifenR. com這個域名,在路徑庫中杳到如圖13所示這條路徑(style)這樣一條dom樹路徑,指導(dǎo)我們找到如圖14所示紅框正文域3.提取文章頭、分頁信息;具體如何抽取標(biāo)題、分頁信息,方法如下IT先,言肩、,t要是j示題信肩、 射是取方法是(1)提取正文域內(nèi)開頭的若干行,分別計算這些行的標(biāo)題匹配度并提取最大,得到域內(nèi)的候選標(biāo)題行;(2)正文域前邊的若干行,分別計算這些行的標(biāo)題匹配度并提取最大,得到域前的候選標(biāo)題行;(3)然后,根據(jù)啟發(fā)規(guī)則及標(biāo)題匹配度比較,從中選擇一個做標(biāo)題;標(biāo)題匹配度的衡量公式如下Pt = a*(l-lenpunc/lenall)+b*(l_lentitle/lenmax title)+c*(l_lenkeyw。rds/lenmax
keywords^ u 乂丄丄 ciiSummerysummery^乂丄丄 authortext /lenmax—authortext) +f ^WH+g^H^n
其中Ienpunc是行中標(biāo)點符號長度;Ienall是行中所有文字長度;Ientitle是行內(nèi)容和網(wǎng)頁中title字段內(nèi)容的編輯距離;Ienfflax title是行內(nèi)容和網(wǎng)頁中title字段內(nèi)容中的最大值;Keywords指的是網(wǎng)頁自帶的關(guān)鍵詞信息;summery指的是網(wǎng)頁自帶的摘要字段; authortext指的是網(wǎng)頁url對應(yīng)的錨文字;這三種類型變量意義和上述類似;WH是標(biāo)簽類型加權(quán),行所屬的所有節(jié)點中出現(xiàn)hi h2…center等標(biāo)簽,會給節(jié)點加權(quán);Hlen是節(jié)點內(nèi)容長度加權(quán),在大量統(tǒng)計后發(fā)現(xiàn),標(biāo)題長度在16-23間最常見,其它區(qū)間都有各自的分布概率,以此計算出節(jié)點的長度加權(quán);a,b,c, d,e, f,g是各個因素的影響因子,在應(yīng)用中可以修正。然后,文章分頁信息識別方法是,在ιΗ文域的尾部尋找若干行,逐行講行數(shù)字序列發(fā)現(xiàn);如果發(fā)現(xiàn)了連續(xù)的數(shù)字序列,比如“1,2,3,4,5,6…”等,而且這些數(shù)字本身帶有的 url鏈接信息和本網(wǎng)頁屬于一個網(wǎng)站,則識別成功;本實例的網(wǎng)頁沒有分頁;4.修正正文域;修正的方式如圖11所示,具體闡述如下借助于新聞文章格式的提示幫助,結(jié)合上面步驟的文章頭信息,文章尾信息(分頁信息),可以修正正文域,使其更加盡量精確1)在域前尋找到文章頭(標(biāo)題、時間等)后,對正文域修正文章頭在域內(nèi),剪去文章頭以前信息;文章頭在域外,合并之間部分入正文域;2)在域尾尋找到文章尾信息后(分頁等)如果文章尾在域內(nèi),則剪去域中尾后部分;如果文章尾在域外,不修正。5.正文域進行分塊,包括分塊步驟,以及分塊屬性判定和冗余分塊去除步驟;分塊的步驟包括:1) MDR方法來識別頻繁模式;2)頻繁模式標(biāo)題尋找等組合節(jié)點形成分塊。如圖16所示,我們得到了兩個分塊。分塊屬件判定和冗金去除的方式是:在得到的分塊中,判定其鏈接文字和總體文字?jǐn)?shù)目比;如果分塊的鏈接比大于閾值(0.5f),則認(rèn)為是冗余分塊,去除(實際上在樹中用 hr標(biāo)簽替代);對剩余的頻繁模式識別出的分塊,由于它們明確的語義信息,將為它們做好標(biāo)記, 使它們在后續(xù)操作中不再拆分。最后正文域被處理后,我們得到如圖17所示結(jié)果。6.正文域分段過濾;包括分段、逐段過濾兩個步驟;IH文域進行分段,從而得到正文分段序列。
分段后的結(jié)果如圖18所示其中每一個黑色方框中的內(nèi)容,是一個分段。逐段過濾,桉段入樽式庫講行樽式匹配過濾;逐個段落提取模式,然后入庫匹配;其中,以下模式被匹配上d61477010e231562869elc39917eld71 == >1396 == >http //res. img. i f eng. com/581 14ce5495e21c0/201 1/1 102/ rdn_4eb0f7f96dled. jpg == >www. i f eng. c om : #d i v#< i mg src = " http://res. img. i f eng. com/58114ce5495e21c0/2011/1102/rdn_4eb0f7f96dled. jpg" /> == >--------這將過濾掉步驟18中的尾部圖片分段模式,這個圖片是一個廣告信息,應(yīng)該被剔除;最后正文域提取完畢,結(jié)果如圖19所示。7.數(shù)據(jù)整理,結(jié)果生成。抽取關(guān)鍵詞、摘要等信息,組裝成一篇精確抽取的文章;方法結(jié)束。在總體抽取實例中,還需要展開闡述網(wǎng)頁學(xué)習(xí)的具體步驟。我們的實例中,共有沈篇網(wǎng)頁抽取失敗,這批網(wǎng)頁將全部進入網(wǎng)頁學(xué)習(xí);以對其中每一個網(wǎng)頁學(xué)習(xí)為例,其步驟如下1. HMTL解析。對傳入網(wǎng)頁,解析html構(gòu)建DOM樹;具體方法同上一個抽取實例;2.尋找正文域;通過正文域識別方法來定位正文域;(1)提取出網(wǎng)頁DOM樹中所有的Div、Table節(jié)點,然后逐個節(jié)點按照如下信息度計算公式計算節(jié)點信息度H = Iennot link*log(l+lenlink/lenallTxt)+a*lenn。t link*log(l+lenn。t link/lenhtml)其中a是影響因子,目前默認(rèn)為0. 5 ;Iennot link是節(jié)點中非連接文字長度;Ienalllxt是節(jié)點中所有文字長度;1 enhtml是節(jié)點的html長度;計算時,log中參數(shù)加1,使log運算結(jié)果都> 0 ;(2)找到所有節(jié)點中信息度最大的那個節(jié)點;如圖14所示紅框正文域,就是我們找到的這個節(jié)點;(3)找到這個想要的Div或者Table后,在DOM樹中回溯到body節(jié)點,回溯結(jié)束后,就形成了一條路徑;回溯過程中,記錄經(jīng)過DOM節(jié)點的位置信息,也即每一個DOM節(jié)點在父節(jié)點中的從左到右的序號。(4)最后,得到如圖20所示的一條DOM樹路徑,同時路徑的節(jié)點還有其位置信息, DFS信息都是1,也即出現(xiàn)頻次是1 ;
3,路徑入庫合并;將上述路徑并入系統(tǒng)包裝器之路徑庫,并入時,同路徑合并加權(quán);如果發(fā)現(xiàn)重復(fù)的路徑,進行合并加權(quán),加權(quán)是修改DFS字段,也即將新路徑的DFS 值加入舊路徑;如果沒有發(fā)現(xiàn)重復(fù),新路徑入庫就可以了 ;4,提取文章頭信息和文章分頁信息;具體方法同上一個網(wǎng)頁抽取實例的對應(yīng)步驟;5,修正正文域;具體步驟同上一個網(wǎng)頁抽取實例的對應(yīng)步驟;6,對正文域分塊,包括分塊以及分塊屬性判定以及冗余分塊去除;具體步驟同上一個網(wǎng)頁抽取實例的對應(yīng)步驟;7,分段學(xué)習(xí),包括正文域分段、逐段生成模式、逐段學(xué)習(xí)三個步驟;分段的步驟同上一個網(wǎng)頁抽取實例的對應(yīng)步驟;逐段牛成樽式的步驟同上一個網(wǎng)頁抽取實例的對應(yīng)步驟;d61477010e231562869elc39917eld71 == >1396 =>http //res. img. i f eng. com/581 14ce5495e21c0/201 1/1 102/ rdn_4eb0f7f96dled. jpg =>www. i f eng. c om : #d i v#< i mg src = " http://res. img. i f eng. com/58114ce5495e21c0/2011/1102/rdn_4eb0f7f96dled. jpg" / > == >--------其中第二個字段就是具體的value信息;將得到的模式放入包裝器的模式庫,進行入庫合并。模式庫查詢到相同模式,則模式加權(quán),也即將value字段合并相加;如果沒有查找到,則入庫就可以了 ;8,模式歸納,也即自動正則生成;模式歸納的具體步驟如下步驟8. 1 對庫中所有樽式,提取原串,桉網(wǎng)站分組,每組桉字符串相似度講行聚類,得到高內(nèi)聚的幾個分組;步驟8.2 對得到每個分組,其內(nèi),對每對分段計算其合并后的ιΗ則,得到所有可能的不同正則;這些正則的出現(xiàn)頻率按高低排序,取最大的那個;再驗證第二大的那個,如果能夠覆蓋組內(nèi)部分未覆蓋分段且權(quán)重適當(dāng),則其也是可取的模式;提取兩個分段的模式遞歸地尋找兩個分段剩余部分最優(yōu)共同片段;片段前部分就是不同,需要合并的地方;這總體是一個借助二維表格動態(tài)規(guī)劃的方法;步驟8.3 對得到的所有ιΗ則,保留那些權(quán)重高于某個閾倌項的,然后加入模式庫中;模式歸納結(jié)束后,得到若干條正則;加入權(quán)重value信息,入模式庫中;9,結(jié)束。
權(quán)利要求
1.一種文章類型網(wǎng)頁智能抽取系統(tǒng),包括(1)待抽取網(wǎng)頁載入模塊,定時查詢本地索引,發(fā)現(xiàn)新索引就按照索引將網(wǎng)頁載入系統(tǒng)內(nèi)存中;(2)包裝器查詢模塊,對所有待抽取的網(wǎng)頁,查詢具體抽取包裝器信息,如果查詢到,就按照抽取包裝器,進入抽取模塊,進行具體抽取,否則,將網(wǎng)頁標(biāo)記為抽取失??;(3)網(wǎng)頁抽取模塊,從網(wǎng)頁中抽取出具體文章信息,借助已有的抽取包裝器;(4)抽取失敗網(wǎng)頁收集模塊,將本輪抽取失敗的網(wǎng)頁收集起來,按網(wǎng)站分類,以方便進行集中學(xué)習(xí);(5)學(xué)習(xí)判斷模塊,按同網(wǎng)站查詢抽取失敗網(wǎng)頁集合,根據(jù)每一網(wǎng)站的失敗網(wǎng)頁數(shù)量, 計算此網(wǎng)站本輪抽取成功失敗比例,決定是否進入網(wǎng)頁學(xué)習(xí)模塊;(6)網(wǎng)頁學(xué)習(xí)模塊,對所有失敗網(wǎng)頁進行機器學(xué)習(xí),最后生成新的抽取包裝器;(7)抽取包裝器管理模塊,對系統(tǒng)的抽取包裝器進行管理,也即對路徑庫和模式庫進行管理,并提供包裝器使用接口給網(wǎng)頁抽取模塊,提供包裝器更新接口給網(wǎng)頁學(xué)習(xí)模塊。
2.如權(quán)利要求1所述的文章類型網(wǎng)頁智能抽取系統(tǒng),其特征在于,所述網(wǎng)頁抽取模塊還包括HTML解析模塊,對傳入網(wǎng)頁,解析html構(gòu)建DOM樹; 正文域?qū)ふ夷K,根據(jù)包裝器信息,尋找正文域; 文章頭和分頁信息提取模塊,用于提取文章頭信息和文章分頁信息; 正文域修正模塊,用于修正正文域;正文域分塊模塊,用于對正文域分塊;同時進行分塊屬性判定和冗余分塊去除; 分段過濾模塊,用于對正文域進行分段,同時逐段過濾; 數(shù)據(jù)整理模塊,用于合并和整理信息,形成文章類型結(jié)果。
3.如權(quán)利要求1所述的文章類型網(wǎng)頁智能抽取系統(tǒng),其特征在于,所述網(wǎng)頁學(xué)習(xí)模塊還包括HTML解析模塊,對傳入網(wǎng)頁,解析html構(gòu)建DOM樹;正文域?qū)ふ夷K,用于尋找正文域;路徑庫更新模塊,用于入庫合并,同時對路徑庫進行整理;文章頭和分頁信息提取模塊,用于提取文章頭信息和文章分頁信息;正文域修正模塊,用于修正正文域;正文域分塊模塊,用于對正文域分塊,同時進行分塊屬性判定和冗余分塊去除; 分段學(xué)習(xí)模塊,進行正文域分段,逐段構(gòu)建模式,入模式庫合并; 模式歸納模塊,對所有模式進行歸納,生成規(guī)則,入模式庫合并; 包裝器整理模塊,對系統(tǒng)包裝器進行整理,去除已經(jīng)無效的信息。
4.如權(quán)利要求2或3所述的文章類型網(wǎng)頁智能抽取系統(tǒng),所述正文域分塊模塊,還包括頻繁模式識別模塊,采用MDR方法來識別頻繁模式;分塊模塊,對得到的頻繁模式,進行分塊標(biāo)題尋找、分塊父節(jié)點上尋,以得到最合適的分塊節(jié)點組合,然后組合形成分塊;分塊標(biāo)記模塊,在正文域DOM樹中對所有識別出來的分塊進行標(biāo)記。
5.一種文章類型網(wǎng)頁智能抽取方法,其包括如下步驟 步驟1,待抽取網(wǎng)頁載入;每隔一段時間就載入所有待抽取的網(wǎng)頁集合;如果沒有待抽取網(wǎng)頁,直接進入步驟6 ; 步驟2,包裝器查詢;對所有待抽取的網(wǎng)頁,查詢具體抽取包裝器信息,如果查詢到,就進入步驟4,進行具體抽?。环駝t,抽取失敗,進入步驟5 ; 步驟3,網(wǎng)頁抽取;按照包裝器,對網(wǎng)頁進行具體抽取,抽取結(jié)束后將抽取結(jié)果組織成文章類型; 步驟4,標(biāo)記抽取失?。粚⒊槿∈【W(wǎng)頁標(biāo)記,以方便步驟6收集,同時回到步驟2 ; 步驟5,收集所有抽取失敗網(wǎng)頁,形成抽取失敗網(wǎng)頁集合; 步驟6,學(xué)習(xí)判斷;按同網(wǎng)站查詢抽取失敗網(wǎng)頁集合,對每一網(wǎng)站的失敗網(wǎng)頁集合,判斷此網(wǎng)站本輪抽取成功失敗比例,決定是否進行機器學(xué)習(xí);如果學(xué)習(xí),加入待學(xué)習(xí)網(wǎng)頁集合; 步驟7,網(wǎng)頁學(xué)習(xí);對每一個網(wǎng)站的所有失敗網(wǎng)頁進行學(xué)習(xí),生成新的抽取包裝器; 步驟8,抽取包裝器管理;將新的抽取包裝器放入包裝器集合中; 步驟9,結(jié)束。
6. 根據(jù)權(quán)利要求5所述的方法,其中所述步驟3,網(wǎng)頁抽取,包括如下步驟 步驟3. 1,HTML解析;對傳入網(wǎng)頁,解析html構(gòu)建DOM樹; 步驟3. 2,尋找正文域; 步驟3. 3,提取文章頭信息和文章分頁信息; 步驟3. 4,修正正文域;借助于新聞文章格式的提示幫助,結(jié)合上面步驟的文章頭信息、文章分頁信息,可以修正正文域,使其更精確 步驟3. 5,對正文域分塊;然后進行分塊屬性判定和冗余分塊去除; 步驟3. 6,正文域分段過濾;先對正文域分塊樹進行分段,從而得到正文分段序列 ’然后進行逐段過濾; 步驟3. 7,數(shù)據(jù)整理,結(jié)果生成;合并整理信息,抽取摘要等,抽取成功; 步驟3. 8,結(jié)束。
7.根據(jù)權(quán)利要求6所述的方法,其中所述步驟3.1,先對html做預(yù)處理,包括字符格式轉(zhuǎn)換,script/style內(nèi)容過濾,不可視字符剔除等;然后根據(jù)html代碼及html規(guī)范,采用 HtmlParser組件來解析網(wǎng)頁并得到DOM樹。
8.根據(jù)權(quán)利要求6所述的方法,其中所述步驟3.2,在抽取包裝器的style樹中查詢此網(wǎng)站的定位路徑,提取出正文域路徑,然后按照路徑,在DOM樹中遍歷,定位到具體DOM節(jié)點,這個節(jié)點就是我們要找的正文域。
9.根據(jù)權(quán)利要求6所述的方法,其中所述步驟3.3中,所述文章頭信息,主要是標(biāo)題信息,提取步驟包括 (1)提取正文域內(nèi)開頭的若干行,分別計算這些行的標(biāo)題匹配度并提取最大,得到域內(nèi)的候選標(biāo)題行;此處“行”是指根據(jù)html的換行標(biāo)簽比如<br>、(P)等對整個網(wǎng)頁的DOM樹進行分割后形成的一些相鄰dom節(jié)點集合,以及其對應(yīng)的html代碼; (2)提取正文域開頭外,前邊的若干行,分別計算這些行的標(biāo)題匹配度并提取最大,得到域前的候選標(biāo)題行;(3)然后,根據(jù)啟發(fā)規(guī)則及標(biāo)題匹配度比較,從中選擇一個做標(biāo)題;
10.根據(jù)權(quán)利要求9所述的方法,其中所述標(biāo)題匹配度,其衡量公式如下
11.根據(jù)權(quán)利要求6所述的方法,其中所述步驟3.3中,所述文章分頁信息,其識別方法是,在正文域的尾部尋找若干行,逐行進行數(shù)字序列發(fā)現(xiàn);如果發(fā)現(xiàn)了連續(xù)的數(shù)字序列,比如“ 1,2,3,4,5, 6··· ”等,而且這些數(shù)字本身帶有的url鏈接信息和本網(wǎng)頁屬于一個網(wǎng)站,則識別成功。
12.根據(jù)權(quán)利要求6所述的方法,其中所述步驟3.4,包括.1)在域前尋找到文章頭后,對正文域修正 文章頭在域內(nèi),剪去文章頭以前信息; 文章頭在域外,合并之間部分入正文域;.2)在域尾尋找到文章尾信息后 如果文章尾在域內(nèi),則剪去域中尾后部分; 如果文章尾在域外,不修正。
13.根據(jù)權(quán)利要求6所述的方法,其中所述步驟3.5中正文域分塊步驟,包括 步驟3. 5. 1,采用MDR方法來識別頻繁模式;步驟3. 5. 2,對得到的模式,進行分塊標(biāo)題尋找、分塊等父節(jié)點上尋,以得到最合適的分塊節(jié)點組合;然后組合形成分塊;步驟3. 5. 3,在正文域DOM樹中對所有識別出來的分塊進行標(biāo)記。
14.根據(jù)權(quán)利要求13所述的方法,其中所述步驟3.5. 2,組合形成分塊時,,依據(jù)以下準(zhǔn)則(1)同父所有子節(jié)點中,標(biāo)記出的分塊之間節(jié)點也是一個分塊,第一個分塊之前的節(jié)點是一個分塊,最后邊分塊之后節(jié)點是一個分塊;(2)如果節(jié)點子樹中存在標(biāo)記出的分塊,則節(jié)點本身也是一個分塊。
15.根據(jù)權(quán)利要求6所述的方法,其中所述步驟3.5中分塊屬性判定和冗余分塊去除步驟,方法如下在得到的分塊中,判定其鏈接文字和總體文字?jǐn)?shù)目比;如果分塊的鏈接比大于閾值(0. 5f),則認(rèn)為是冗余分塊,樹中去除,用hr標(biāo)簽替代; 對剩余的頻繁模式識別出的分塊,由于它們明確的語義信息,將為它們做好標(biāo)記,使它們在后續(xù)操作中不再拆分。
16.根據(jù)權(quán)利要求6所述的方法,其中所述步驟3.6,所述正文域逐段過濾方法是,先進行正文域分段,分段方法是根據(jù)換行html標(biāo)簽進行切分;然后逐段生成模式;然后進行過濾,過濾方法是,如果模式在包裝器的模式庫中查詢匹配,則模式加權(quán),同時段去除;如果不匹配,則構(gòu)建新模式,入庫,置權(quán)為最低。
17.根據(jù)權(quán)利要求5所述的方法,其中所述網(wǎng)頁學(xué)習(xí)步驟7,包括 步驟7. 1,HMTL解析;對傳入網(wǎng)頁,解析html構(gòu)建DOM樹;步驟7. 2,尋找正文域;通過正文域識別方法來定位正文域; 步驟7. 3,路徑入庫合并;將路徑并入系統(tǒng)包裝器之路徑庫,并入時,同路徑合并加權(quán),加權(quán)是修改頻率值,也即將新路徑的出現(xiàn)頻率值加入舊路徑;如果沒有發(fā)現(xiàn)重復(fù),新路徑入庫就可以了 ; 步驟7. 4,提取文章頭信息和文章分頁信息; 步驟7. 5,修正正文域;步驟7. 6,正文域分塊;同時進行分塊屬性判定和冗余分塊去除; 步驟7. 7,分段學(xué)習(xí)。先進行正文域分段;對正文域分塊樹進行分段,從而得到正文分段序列;然后分段學(xué)習(xí),對所有段生成模式,然后入庫學(xué)習(xí); 步驟7. 8,模式歸納,也即自動正則生成; 步驟7. 9,結(jié)束。
18.根據(jù)權(quán)利要求17所述的方法,其中在所述步驟7.2,正文包含在一個或多個嵌套的Div、Table節(jié)點中,所述所述尋找正文域就是尋找最合適的一個Div或Table ;通過一個信息度最高的Div或Table來實現(xiàn);所述信息度計算公式link/lenhtmi)其中a是影響因子,目前默認(rèn)為0.5;Iennot link是節(jié)點中非連接文字長度;Ienalllxt是節(jié)點中所有文字長度;Ienhtml是節(jié)點的html長度;計算時,log中參數(shù)加1,使log運算結(jié)果都> 0 ;
19.根據(jù)權(quán)利要求18所述的方法,其中,找到所述最合適的Div或者Table后,在DOM 樹中回溯到body節(jié)點,回溯結(jié)束后,就形成了一條路徑;回溯過程中,記錄經(jīng)過DOM節(jié)點的位置信息,也即每一個DOM節(jié)點在父節(jié)點中的從左到右的序號;最后,得到一條DOM樹路徑, 同時路徑的節(jié)點還有其位置信息。
20.根據(jù)權(quán)利要求17所述的方法,其中所述步驟7.4中,所述文章頭信息,主要是標(biāo)題信息,提取步驟包括(1)提取正文域內(nèi)開頭的若干行,分別計算這些行的標(biāo)題匹配度并提取最大,得到域內(nèi)的候選標(biāo)題行;此處“行”是指根據(jù)html的換行標(biāo)簽比如<br>、《P》等對整個網(wǎng)頁的DOM樹進行分割后形成的一些相鄰dom節(jié)點集合,以及其對應(yīng)的html代碼;(2)正文域前邊的若干行,分別計算這些行的標(biāo)題匹配度并提取最大,得到域前的候選標(biāo)題行;(3)然后,根據(jù)啟發(fā)規(guī)則及標(biāo)題匹配度比較,從中選擇一個做標(biāo)題;
21.根據(jù)權(quán)利要求20所述的方法,其中所述標(biāo)題匹配度的衡量公式如下
22.根據(jù)權(quán)利要求17所述的方法,其中,所述步驟7.4,所述文章分頁信息識別方法是, 在正文域的尾部尋找若干行,逐行進行數(shù)字序列發(fā)現(xiàn);如果發(fā)現(xiàn)了連續(xù)的數(shù)字序列,比如 "1,2,3,4, 5,6··· ”等,而且這些數(shù)字本身帶有的url鏈接信息和本網(wǎng)頁屬于一個網(wǎng)站,則識別成功。
23.根據(jù)權(quán)利要求17所述的方法,其中,所述步驟7.5,借助于新聞文章格式的提示幫助,結(jié)合上面步驟的文章頭信息、文章分頁信息,可以修正正文域,使其更加精確;包括1)在域前尋找到文章頭后,對正文域修正 文章頭在域內(nèi),剪去文章頭以前信息; 文章頭在域外,合并之間部分入正文域;2)在域尾尋找到文章分頁信息后 如果文章尾在域內(nèi),則剪去域中尾后部分; 如果文章尾在域外,不修正。
24.根據(jù)權(quán)利要求17所述的方法,其中,所述步驟7.6之正文域分塊步驟包括如下步驟步驟7. 6.1,采用MDR方法來識別頻繁模式(這個方法是Bing Iiu提出的); 步驟7. 6. 2,對得到的頻繁模式,進行分塊標(biāo)題尋找、分塊等父節(jié)點上尋,以得到最合適的分塊節(jié)點組合;然后組合形成分塊;步驟7. 6. 3,在正文域DOM樹中對所有識別出來的分塊進行標(biāo)記。
25.根據(jù)權(quán)利要求M所述的方法,其中,所述分塊組合方式,依據(jù)以下準(zhǔn)則(1)同父所有子節(jié)點中,標(biāo)記出的分塊之間節(jié)點也是一個分塊,第一個分塊之前的節(jié)點是一個分塊,最后邊分塊之后節(jié)點是一個分塊;(2)如果節(jié)點子樹中存在標(biāo)記出的分塊,則節(jié)點本身也是一個分塊。
26.根據(jù)權(quán)利要求17所述的方法,其中,所述步驟7.6之分塊屬性判定及冗余分塊去除步驟,依據(jù)如下準(zhǔn)則在得到的分塊中,判定其鏈接文字和總體文字?jǐn)?shù)目比;如果分塊的鏈接比大于閾值(0. 5f),則認(rèn)為是冗余分塊,樹中去除,用hr標(biāo)簽替代; 對剩余的頻繁模式識別出的分塊,由于它們明確的語義信息,將為它們做好標(biāo)記,使它們在后續(xù)操作中不再拆分。
27.根據(jù)權(quán)利要求17所述的方法,其中,所述步驟7.7,分段學(xué)習(xí),包括 所述正文域分段方法是根據(jù)正文域中換行標(biāo)簽的提示,進行內(nèi)容分割,換行標(biāo)簽之間內(nèi)容,便是一段; 所述生成模式以及分段學(xué)習(xí)過程是(1)對所有段,提取其html代碼,進行html片段簡化,只留下tag名稱和內(nèi)容,取md5 key,構(gòu)建成模式;模式表達(dá)如下模式=md5((內(nèi)容text/img) +段落tag前向遍歷序列+site name) +value 其中value是權(quán)重信息,也即模式的出現(xiàn)頻率;(2)然后將得到的模式放入包裝器的模式庫,進行入庫合并; 模式庫查詢到相同模式,則模式加權(quán),也即將value字段合并加權(quán); 如果沒有查找到,則入庫。
28.根據(jù)權(quán)利要求17所述的方法,其中,所述步驟7.8, 所述模式歸納的驟如下步驟7. 10. 1 對庫中所有樽式,提取原串,桉網(wǎng)站分組,每組桉字符串相似度講行聚類,得到高內(nèi)聚的幾個分組。步驟7. 10. 2:對得到每個分組,其內(nèi),對每對分段計算其合并后的ιΗ則,得到所有可能的不同正則;這些正則的出現(xiàn)頻率按高低排序,取最大的那個;再驗證第二大的那個,如果能夠覆蓋組內(nèi)部分未覆蓋分段且權(quán)重適當(dāng),則其也是可取的模式;提取兩個分段的模式遞歸地尋找兩個分段剩余部分最優(yōu)共同片段;片段前部分就是不同,需要合并的地方;這總體是一個借助二維表格動態(tài)規(guī)劃的方法;步驟7. 10. 3:對得到的所有ιΗ則,保留那㈣權(quán)重高于某個閾倌項的,然后加入樽式庫中;模式歸納結(jié)束后,得到若干條正則;加入權(quán)重value信息,入模式庫中。
全文摘要
一種文章類型網(wǎng)頁智能抽取系統(tǒng),包括待抽取網(wǎng)頁載入模塊、包裝器查詢模塊、網(wǎng)頁抽取模塊、抽取失敗網(wǎng)頁收集模塊、學(xué)習(xí)判斷模塊、網(wǎng)頁學(xué)習(xí)模塊、抽取包裝器管理模塊。
文檔編號G06F17/27GK102567530SQ20111045515
公開日2012年7月11日 申請日期2011年12月31日 優(yōu)先權(quán)日2011年12月31日
發(fā)明者厲錕, 吳華鵬, 曾明 申請人:鳳凰在線(北京)信息技術(shù)有限公司