王年豐+費瀟瀟



摘要:新聞正文信息提取對信息檢索、存儲和輿情監(jiān)測等具有極其重要的意義。為實現新聞信息的正確提取,考慮到DOM等幾種技術的優(yōu)勢,結合DOM技術、動態(tài)型網頁信息抽取技術和行塊分布算法等技術優(yōu)點,重點研究了新聞信息的提取方法,尤其針對動態(tài)網頁的信息提取,設計了一套有效的新聞正文信息提取方法。實驗結果表明,該方法能有效實現新聞的正文信息抽取,準確率高,具有一定推廣價值。
關鍵詞:信息抽??;DOM技術;動態(tài)型網頁;行塊分布算法(DOIBP)WT9.5HZDOI:WTHT9.5SS10.11907/rjdk.162557中圖分類號:TP301
文獻標識碼:A(文章編號BP)文章編號:16727800(2017)004000905
0引言 當前,互聯(lián)網資源豐富,如何從海量信息中獲取所需信息已經成為Web智能信息處理研究領域面臨的重大問題之一。由于實際的新聞網頁往往包含很多與主題無關的導航區(qū)、超鏈接、廣告信息、版權信息等噪聲信息,設計搜索引擎按主題搜索相關信息的工具時,應采用新聞信息抽取技術剔除網頁中的噪聲信息,從而獲取整個新聞的正文信息。新聞信息抽取技術是將Web作為信息源的一類信息抽取,即從新聞頁面所包含的無結構或半結構化的信息中識別用戶所需的數據。為了提高Web新聞信息抽取的準確度和效率,許多學者提出了各自的方法而且不斷加以完善,主要可以分為4類:基于統(tǒng)計理論的技術、基于文檔對象模型的技術、基于模板的技術和基于視覺特征的技術。
(1)基于統(tǒng)計理論的方法利用統(tǒng)計方法和規(guī)律,將網頁HTML文檔作為一個整體或去除網頁標簽,獲取網頁正文信息。該方法克服了數據源的限制,具有通用性。Arias等
[1]從網頁標簽序列中找出對應的文本序列,由于網頁正文與非正文長度和標簽數量存在差異,可以此為基礎構建網頁文本密度圖,以統(tǒng)計的方法識別出網頁正文部分;而參考文獻[2]提出了一種基于行塊分布的方法,該方法擺脫了網頁結構的限制,可高效準確地抽取網頁正文,但需要人工干預,且對網頁上其它信息的提取不夠。
(2)基于文檔對象模型的方法,通過將HTML文檔解析成一棵DOM樹,利用節(jié)點特征來制定相應的抽取規(guī)則。目前已有許多成型的系統(tǒng)和經典算法,如 RoadRunner系統(tǒng)、DSE算法、MDR算法等
[3]。很多學者在此基礎上進行了深入研究。如王琦等
[4]基于DOM規(guī)范,將HTML文檔轉換為含有語義信息的STU-DOM樹,進行基于結構的過濾和基于語義的剪枝,提取網頁主題;Gupta等
[5]使用啟發(fā)式規(guī)則來構造過濾器,以對DOM樹中的無用節(jié)點進行過濾刪除,對于廣告的過濾使用的是黑名單策略。該方法依靠文檔本身的結構優(yōu)勢,不需要復雜技術和人工干預,但通用性不好。
(3)基于網頁模板的提取算法。這類算法可以大致分為兩類,一類是從同種結構的網頁集中提取出模板作為參考,這種模板一般從同一網站的不同網頁中提??;另一類是從各種不同的網頁中歸類,并分別提取抽象層次更高、歸納性更強的通用模板。Reis等
[6]使用一種樹的類正則表達式pe-pattern,以RTDM算法對樣本網頁進行聚類,并從聚類結果的DOM樹中提取出ne-pattern作為該聚類的模板;Vieira等
[7]對RTDM算法進行拓展,使用樹的最小編輯距離,實現對DOM樹模板的檢測和刪除。這些方法從模板角度提供了比較新穎的思路,但是計算量非常大,在處理海量數據時效率較低。
(4)基于視覺分塊的提取算法。這類算法從用戶對網頁的視覺感受出發(fā),依照網頁中節(jié)點的樣式特點對頁面分塊,再從分塊結果中找出正文所在的塊來達到提取正文的目的。黃文蓓等
[8]以TVPS算法為參考,構建DOM樹,以
等容器標簽為基準,尋找最低層容器節(jié)點的各個文本節(jié)點進行合并,計算信息量并比較最低層容器節(jié)點與其兄弟節(jié)點、父節(jié)點的信息量,從而選擇出能夠構成文本塊的節(jié)點。該方法考慮到了DOM中包含文本節(jié)點的結構性,相比于原有算法,準確率得到了一定提升,但算法的運算量依然較大。 這些方法抽取正文信息的前提是所有正文信息都在網頁內,但新聞圖片網頁的正文信息一般不是全部在網頁內,例如:騰訊、搜狐、新浪、鳳凰等新聞圖片頻道,大多需要用戶點擊翻頁獲取更多信息,因而傳統(tǒng)方法很難準確地獲取這種新聞網頁信息。因此本文在研究現有抽取技術的基礎上,利用動態(tài)網頁信息抽取方法、行塊分析算法和DOM技術,實現了針對大型新聞門戶的新聞網頁正文信息抽取系統(tǒng)。該系統(tǒng)不僅解決了正文信息在網頁上的正文抽取問題,而且解決了正文信息不全在網頁上的正文抽取問題。1系統(tǒng)概述
本系統(tǒng)總體分為3部分:預處理模塊(Pretreatment)、動態(tài)型網頁信息抽取模塊(Dywebextract)、新聞普通網頁信息抽取模塊(Stwebextract)。系統(tǒng)總體框架如圖1所示。 預處理模塊(Pretreatment):Pretreatment模塊是正文信息提取預處理模塊,可提前獲取新聞標題、發(fā)布時間等信息;對不同的新聞網頁進行分類,對于動態(tài)型網頁則采用動態(tài)型網頁抽取模塊,對于新聞普通網頁則采用靜態(tài)型網頁信息抽取模塊。 動態(tài)型網頁信息抽取模塊(Dywebextract):該模塊的主要功能是對新聞圖片網頁進行解析、識別翻頁符和獲取正文信息。 新聞普通網頁信息抽取模塊(Stwebextract):該模塊是對普通新聞網頁進行解析,其基于行分塊分布算法來提取正文信息,通過中文語法規(guī)范來減少噪聲。
2各模塊算法設計與實現
2.1預處理模塊 在新聞正文信息抽取系統(tǒng)中,為保證新聞正文信息的抽取質量和抽取效率,在抽取相關信息時應按照網頁類型采用不同的抽取方法(即大部分新聞圖片網頁采用動態(tài)抽取方法,新聞普通網頁采用行塊分布方法)。由此可以看出,在抽取信息之前應對網頁進行分類,根據抽取目的,采用預處理模塊完成新聞網頁分類工作。又由于行塊分布算法不依賴于網頁結構本身,對于新聞標題等信息提取明顯不足,因此需要在預處理模塊中利用DOM技術提取新聞標題、發(fā)布時間等信息,并將新聞標題、新聞網頁HTML文檔、新聞URL等信息打包分別傳給下級模塊。因此,預處理模塊的功能是網頁分類和利用文檔對象模型提取新聞標題等信息。
2.1.1Web新聞分類 新聞網頁一般分為兩種類型:導航型網頁、主題型網頁。主題型網頁通常通過成段的文字、圖片等信息描述新聞主題,為了便于處理又可將其分為兩小類:①新聞普通網頁。這類網頁類似靜態(tài)網頁,當網頁加載完之后,要采集的信息都在網頁上,大部分新聞網頁屬于這一類;②動態(tài)型網頁。即圖片新聞(指有相同事件主題的圖片及簡短文字描述的數據集合),當網頁加載完之后,要采集的信息不都在網頁中,需要翻頁才能更新網頁內容,大量新聞圖片網頁屬于這一類,如圖2所示。 通常,網絡上的每一種資源,例如網頁、圖片、視頻等,都有一個唯一的URL,其信息包含了文件位置和瀏覽器對其如何處理。URL的一般格式為:協(xié)議類型://服務器地址(一般情況下,默認不寫端口號)/路徑名/[?查詢][#信息片段],其中方括號[]為可選項,例如:http://news.qq.com/a/20160714/048155.htm#p=1 通過觀察驗證,屬于同一新聞網站動態(tài)網頁的內容布局與樣式外觀比較相似。與此同時,同一網站的動態(tài)網頁的URL相似度也高,這一點從網頁開發(fā)和網站管理的高效性和便捷而言也是十分合理的,因此利用URL相似度進行新聞網頁分類。Qi等
[9]在計算URL相似度上使用了Dice系數并結合使用了統(tǒng)計方法完成URL的相似度量。這種方法從字符串處理的角度出發(fā),又由于URL的格式特點,在協(xié)議、服務器名、域名相同的情況下,本文利用新聞URL特征來判斷動態(tài)型網頁,詳細介紹如下:①若新聞url字符串中,其路徑中包含有“pic”、“photo”等關于圖片的英文字符串,則表示該新聞URL為動態(tài)型網頁。例如:人民網、新華網等網站中的URL包含這些關于圖片的字符串;②若新聞url其后綴符合數字遞增或字母遞增,則該新聞網頁是動態(tài)型網頁,例如:騰訊、新浪、搜狐、網易、鳳凰等網站中的URL后綴有極強的規(guī)律,為數字遞增。2.1.2〓文檔對象模型 文檔對象模型(DOM)是一種處理HTML和 XML文檔的標準應用程序接口(API),它將文檔表示為一個樹形結構,HTML標簽、屬性或文本都被作為樹的一個節(jié)點?;贒OM的信息抽取技術利用網頁的結構特點,能夠簡單、高效地從網頁中提取所需內容,其克服了行分塊算法對新聞標題、發(fā)布時間等信息提取不足的缺點。因此本文在正文信息抽取之前,使用HtmlUnit
[10]渲染新聞網頁獲取HTML源碼,然后使用Jsoup中的DOM對象抽取新聞標題、發(fā)布時間等信息。例如:新聞標題抽取時,首先提取標簽中的
標簽內容,然后截取‘—、‘_、‘/等標記(<TITLE>內容常常用來分割標題與新聞來源)之前的內容為新聞標題。2.2動態(tài)型網頁信息抽取模塊 Dywebextract模塊接受了Pretreatment模塊的數據,其主要功能是動態(tài)型網頁翻頁識別和正文信息抽取。對于動態(tài)型網頁翻頁識別,采用兩種策略:①若該新聞網頁有本地url pattern模板(系統(tǒng)在初始化時根據各大新聞網站動態(tài)型網頁url的特點,添加url pattern)或者XPath模板(有效元素路徑),則按照url pattern模板自行翻頁(url后綴數字遞增或者字母遞減)或觸發(fā)點擊XPath。在新聞網頁標題相同的情況下,循環(huán)翻頁直到抓取不到有效頁面(出現重復頁面或者死鏈接);②若本地沒有相應的url pattern模板或者XPath,則獲取HTML中的備選有效元素,然后將其觸發(fā),最后通過觸發(fā)有效性來篩選出有效元素。 對于正文信息提取,本文利用同一個新聞門戶里的動態(tài)型網頁結構高度相似的特點,采用兩個策略:①若本地有XPath pattern模板庫,則按照XPath pattern模板提取正文信息;②若沒有,則利用布局相似性的網頁正文內容提取方法<br>[11]提取正文信息。對于XPath pattern模板庫的管理采用計時的管理方式,若XPath pattern模板庫中的一個XPath連續(xù)一個星期沒用到,則認為該模板為失效XPath,將其刪去。本模塊算法流程如圖3所示,下面重點介紹其中的幾個主要環(huán)節(jié)。<br>2.2.1備選有效元素集合 動態(tài)型網頁中含有有效元素,有效元素觸發(fā)之后會異步生成動態(tài)信息,而靜態(tài)型網頁不需要觸發(fā)有效元素來獲取信息。但動態(tài)型網頁中含有很多觸發(fā)元素(比如按鈕、文本框、鏈接等),有效元素觸發(fā)生成的動態(tài)信息為有價值的動態(tài)信息,而無效元素觸發(fā)生成的動態(tài)信息為無效信息,比如觸發(fā)元素僅改變了網頁的字體顏色或其它噪聲部分。在動態(tài)型網頁中,<a>、<div>、<span>等標簽代表的元素可能導致頁面發(fā)生變化<br>[12],從而產生有價值的動態(tài)信息,因此本系統(tǒng)將有效元素篩選僅限于<A>、<DIV>、<SPAN>標簽。 為進一步縮小有效元素的搜索范圍,提高頁面信息的獲取效率,需要在搜索有效元素之前確定有效元素的標簽集合。對于本系統(tǒng)而言,有效元素是可以點擊下一頁獲取下一頁正文信息的元素。因此,本文統(tǒng)計了騰訊等8個大型新聞門戶網站,從這些新聞門戶中隨機抽取各100個新聞網頁,發(fā)現絕大部分有效元素的屬性值里都包含有“next”、“right”、“下一張(頁)”等字眼。有效元素一般綁定了有效事件,通過用戶點擊元素執(zhí)行腳本程序或者網頁跳轉,以獲取更多網頁信息,因此其屬性值里包含有JavaScript或者一個URL。對于<A>標簽,若其子標簽里沒有<IMG>,則認為其是有效標簽。 綜上所述,本系統(tǒng)將屬性里包含有“next”、“下一張”等字眼的<A>、<DIV>、<SPAN>標簽定義為備選有效標簽。<br>2.2.2觸發(fā)元素 動態(tài)型網頁采用異步加載技術,當用戶點擊觸發(fā)有效元素時,會激發(fā)有效元素綁定的特定事件,瀏覽器會執(zhí)行該事件相應的JavaScript動態(tài)腳本程序。因此,需要一個工具來模擬用戶點擊操作,HtmlUnit恰恰能解決此模擬問題。HtmlUnit是一款開源的Java頁面分析工具,采用了Rhinojs引擎,可以模擬瀏覽器運行,且運行速度很快。本系統(tǒng)采用全探測掃描算法 <!--endprint--> </div> </div> <div class="newartpage"> [<a href="article.aspx?titleid=rjdk20170403">1</a>] <label class="fBold"> 2 </label> [<a href="article.aspx?titleid=rjdk20170403-2">3</a>] [<a href="article.aspx?titleid=rjdk20170403-3">4</a>] <a href="javascript:OpenFavoriteTitle('rjdk20170403','新聞正文信息在線提取方法研究','王年豐 費瀟瀟');"> 存入我的閱覽室</a> </div> </div> </div> <div class="eiboxright"> <div class="eiboxrighttop"> </div> <div class="eiboxrightbody0"> <div class="eitextbox"> <ul> <li><a target="_blank" href="Mag.aspx?issn=82589D23-32F8-4175-B6A9-49CEFBC68AF0&year=2017&issue=5"> <img src="http://img1.qikan.com/qkimages/rjdk/rjdk201705-m.jpg" alt="《故事會》" style="filter: alpha(opacity=100);" onmousemove="javascript:f_move(this)" onmouseout="javascript:f_out(this)" width="120px" height="158px" /> </a> <p> <b><a target="_blank" href="Mag.aspx?issn=82589D23-32F8-4175-B6A9-49CEFBC68AF0&year=2017&issue=5" title="軟件導刊">《軟件導刊》</a></b><br /> 2017年05期 </p> </li> </ul> </div> <div class="eiboxrightbody0dlcase"> <dl onmouseover="this.className='cc0'" onmouseout="this.className='cc1'"> <dt> 軟件理論與方法</dt> <dd > <a target="_blank" href="Article.aspx?titleid=rjdk20170401" title="基于不確定性分析的移動對象軌跡估計技術"> 基于不確定性分析的移動對象軌跡估計技術</a> </dd> <dd > <a target="_blank" href="Article.aspx?titleid=rjdk20170402" title="領域文本信息抽取中的短語相似度計算方法"> 領域文本信息抽取中的短語相似度計算方法</a> </dd> <dd > <a target="_blank" href="Article.aspx?titleid=rjdk20170403" title="新聞正文信息在線提取方法研究"> 新聞正文信息在線提取方法研究</a> </dd> <dd > <a target="_blank" href="Article.aspx?titleid=rjdk20170404" title="研討系統(tǒng)中的發(fā)言文本聚類及其可視化"> 研討系統(tǒng)中的發(fā)言文本聚類及其可視化</a> </dd> <dd > <a target="_blank" href="Article.aspx?titleid=rjdk20170405" title="一種基于單周期控制的改進型功率因數校正方法"> 一種基于單周期控制的改進型功率因數校正方法</a> </dd> <dd > <a target="_blank" href="Article.aspx?titleid=rjdk20170406" title="一種基于ARM的異構CPU—GPU集群調度模型"> 一種基于ARM的異構CPU—GPU集群調度模型</a> </dd> <dd > <a target="_blank" href="Article.aspx?titleid=rjdk20170407" title="基于Bootstrap的響應式網頁設計中斷點研究"> 基于Bootstrap的響應式網頁設計中斷點研究</a> </dd> </dl> <dl onmouseover="this.className='cc0'" onmouseout="this.className='cc1'"> <dt> 算法與語言</dt> <dd > <a target="_blank" href="Article.aspx?titleid=rjdk20170408" title="基于灰狼優(yōu)化的模糊C—均值聚類算法"> 基于灰狼優(yōu)化的模糊C—均值聚類算法</a> </dd> <dd > <a target="_blank" href="Article.aspx?titleid=rjdk20170409" title="基于協(xié)方差矩陣的壓縮感知跟蹤算法"> 基于協(xié)方差矩陣的壓縮感知跟蹤算法</a> </dd> <dd > <a target="_blank" href="Article.aspx?titleid=rjdk20170410" title="基于Android端的慣性導航算法研究"> 基于Android端的慣性導航算法研究</a> </dd> <dd > <a target="_blank" href="Article.aspx?titleid=rjdk20170411" title="基于NAND閃存的安全U盤FTL算法研究"> 基于NAND閃存的安全U盤FTL算法研究</a> </dd> <dd > <a target="_blank" href="Article.aspx?titleid=rjdk20170412" title="無線傳感器網絡加權質心定位算法改進研究"> 無線傳感器網絡加權質心定位算法改進研究</a> </dd> <dd > <a target="_blank" href="Article.aspx?titleid=rjdk20170413" title="基于最低能耗的改進LEACH分簇算法"> 基于最低能耗的改進LEACH分簇算法</a> </dd> <dd > <a target="_blank" href="Article.aspx?titleid=rjdk20170414" title="基于AdaBoost算法的在線連續(xù)極限學習機集成算法"> 基于AdaBoost算法的在線連續(xù)極限學習機集成算法</a> </dd> <dd > <a target="_blank" href="Article.aspx?titleid=rjdk20170415" title="協(xié)同進化多生境遺傳算法"> 協(xié)同進化多生境遺傳算法</a> </dd> <dd > <a target="_blank" href="Article.aspx?titleid=rjdk20170416" title="K—means和人工魚群結合的聚類算法研究"> K—means和人工魚群結合的聚類算法研究</a> </dd> <dd > <a target="_blank" href="Article.aspx?titleid=rjdk20170417" title="基于Voronoi盲區(qū)的差分進化WSN部署算法"> 基于Voronoi盲區(qū)的差分進化WSN部署算法</a> </dd> <dd > <a target="_blank" href="Article.aspx?titleid=rjdk20170418" title="算法參數對人工蜂群算法性能的影響"> 算法參數對人工蜂群算法性能的影響</a> </dd> <dd > <a target="_blank" href="Article.aspx?titleid=rjdk20170419" title="基于卡爾曼預測的軌跡片段關聯(lián)目標跟蹤算法"> 基于卡爾曼預測的軌跡片段關聯(lián)目標跟蹤算法</a> </dd> </dl> <dl onmouseover="this.className='cc0'" onmouseout="this.className='cc1'"> <dt> 軟件設計與開發(fā)</dt> <dd > <a target="_blank" href="Article.aspx?titleid=rjdk20170420" title="基于Express的違章查詢REST Web Service設計與實現"> 基于Express的違章查詢REST Web Service設計與實現</a> </dd> <dd > <a target="_blank" href="Article.aspx?titleid=rjdk20170421" title="基于協(xié)同過濾算法的IT書籍推薦系統(tǒng)設計與實現"> 基于協(xié)同過濾算法的IT書籍推薦系統(tǒng)設計與實現</a> </dd> <dd > <a target="_blank" href="Article.aspx?titleid=rjdk20170422" title="OpenStack云主機監(jiān)控系統(tǒng)研究與實現"> OpenStack云主機監(jiān)控系統(tǒng)研究與實現</a> </dd> <dd > <a target="_blank" href="Article.aspx?titleid=rjdk20170423" title="面向部門崗位的工作流引擎研究與實現"> 面向部門崗位的工作流引擎研究與實現</a> </dd> <dd > <a target="_blank" href="Article.aspx?titleid=rjdk20170424" title="基于HALCON的票據字符提取系統(tǒng)設計與實現"> 基于HALCON的票據字符提取系統(tǒng)設計與實現</a> </dd> <dd > <a target="_blank" href="Article.aspx?titleid=rjdk20170425" title="基于ANSYS的豎直型風力發(fā)電機葉片建模與仿真"> 基于ANSYS的豎直型風力發(fā)電機葉片建模與仿真</a> </dd> <dd > <a target="_blank" href="Article.aspx?titleid=rjdk20170426" title="基于虛擬現實技術的湖湘文化旅游系統(tǒng)設計與實現"> 基于虛擬現實技術的湖湘文化旅游系統(tǒng)設計與實現</a> </dd> <dd > <a target="_blank" href="Article.aspx?titleid=rjdk20170427" title="一種基于OSG的雙旋翼直升機仿真系統(tǒng)與程序實現"> 一種基于OSG的雙旋翼直升機仿真系統(tǒng)與程序實現</a> </dd> <dd > <a target="_blank" href="Article.aspx?titleid=rjdk20170428" title="基于ESSH框架的高??蒲袌F隊信息管理系統(tǒng)設計與實現"> 基于ESSH框架的高??蒲袌F隊信息管理系統(tǒng)設計與實現</a> </dd> <dd > <a target="_blank" href="Article.aspx?titleid=rjdk20170429" title="基于SolidWorks二次開發(fā)的剪式升降平臺快速設計系統(tǒng)"> 基于SolidWorks二次開發(fā)的剪式升降平臺快速設計系統(tǒng)</a> </dd> <dd > <a target="_blank" href="Article.aspx?titleid=rjdk20170430" title="基于.NET N層架構和團隊開發(fā)模式的部隊信息化平臺構建"> 基于.NET N層架構和團隊開發(fā)模式的部隊信息化平臺構建</a> </dd> <dd > <a target="_blank" href="Article.aspx?titleid=rjdk20170431" title="基于VR技術的虛擬仿真生活體驗館設計與實現"> 基于VR技術的虛擬仿真生活體驗館設計與實現</a> </dd> <dd > <a target="_blank" href="Article.aspx?titleid=rjdk20170432" title="基于面部瞳孔識別及數據采集器的電子巡檢系統(tǒng)設計"> 基于面部瞳孔識別及數據采集器的電子巡檢系統(tǒng)設計</a> </dd> <dd > <a target="_blank" href="Article.aspx?titleid=rjdk20170433" title="基于微信公眾平臺與Moodle的移動學習環(huán)境構建"> 基于微信公眾平臺與Moodle的移動學習環(huán)境構建</a> </dd> <dd > <a target="_blank" href="Article.aspx?titleid=rjdk20170434" title="學習資源爬蟲系統(tǒng)設計與實現"> 學習資源爬蟲系統(tǒng)設計與實現</a> </dd> <dd > <a target="_blank" href="Article.aspx?titleid=rjdk20170435" title="基于參數化的擠壓模具敏捷設計系統(tǒng)研究"> 基于參數化的擠壓模具敏捷設計系統(tǒng)研究</a> </dd> <dd > <a target="_blank" href="Article.aspx?titleid=rjdk20170436" title="一種基于Hadoop平臺的分布式數據檢索系統(tǒng)"> 一種基于Hadoop平臺的分布式數據檢索系統(tǒng)</a> </dd> <dd > <a target="_blank" href="Article.aspx?titleid=rjdk20170437" title="DBaaS自助門戶服務平臺構建研究"> DBaaS自助門戶服務平臺構建研究</a> </dd> <dd > <a target="_blank" href="Article.aspx?titleid=rjdk20170438" title="基于μCOS嵌入式系統(tǒng)控制的激光打標機設計"> 基于μCOS嵌入式系統(tǒng)控制的激光打標機設計</a> </dd> <dd > <a target="_blank" href="Article.aspx?titleid=rjdk20170439" title="基于協(xié)同過濾算法的移動英語學習平臺研究與設計"> 基于協(xié)同過濾算法的移動英語學習平臺研究與設計</a> </dd> <dd > <a target="_blank" href="Article.aspx?titleid=rjdk20170440" title="基于MVC模式的畢業(yè)論文(設計)管理系統(tǒng)設計與實現"> 基于MVC模式的畢業(yè)論文(設計)管理系統(tǒng)設計與實現</a> </dd> <dd > <a target="_blank" href="Article.aspx?titleid=rjdk20170441" title="基于VB.NET的圓柱齒輪減速器智能設計系統(tǒng)"> 基于VB.NET的圓柱齒輪減速器智能設計系統(tǒng)</a> </dd> <dd > <a target="_blank" href="Article.aspx?titleid=rjdk20170442" title="基于AM3359 和WinCE7.0平臺的RTC時鐘設計與實現"> 基于AM3359 和WinCE7.0平臺的RTC時鐘設計與實現</a> </dd> <dd > <a target="_blank" href="Article.aspx?titleid=rjdk20170443" title="基于Pro/E二次開發(fā)的剪板機快速設計系統(tǒng)"> 基于Pro/E二次開發(fā)的剪板機快速設計系統(tǒng)</a> </dd> <dd > <a target="_blank" href="Article.aspx?titleid=rjdk20170444" title="基于單片機的水位監(jiān)控系統(tǒng)設計"> 基于單片機的水位監(jiān)控系統(tǒng)設計</a> </dd> </dl> <dl onmouseover="this.className='cc0'" onmouseout="this.className='cc1'"> <dt> 應用技術與研究</dt> <dd > <a target="_blank" href="Article.aspx?titleid=rjdk20170445" title="BP神經網絡在石油項目經濟效益綜合評價中的應用"> BP神經網絡在石油項目經濟效益綜合評價中的應用</a> </dd> <dd > <a target="_blank" href="Article.aspx?titleid=rjdk20170446" title="基于密度的空間聚類算法在照明運維中的應用"> 基于密度的空間聚類算法在照明運維中的應用</a> </dd> <dd > <a target="_blank" href="Article.aspx?titleid=rjdk20170447" title="基于VBA的異構數據源自適應讀寫技術研究與實踐"> 基于VBA的異構數據源自適應讀寫技術研究與實踐</a> </dd> <dd > <a target="_blank" href="Article.aspx?titleid=rjdk20170448" title="基于泊松過程可分解性的小區(qū)開放對道路通行能力的影響"> 基于泊松過程可分解性的小區(qū)開放對道路通行能力的影響</a> </dd> <dd > <a target="_blank" href="Article.aspx?titleid=rjdk20170449" title="基于模塊分解的IFPUG功能點分析方法應用研究"> 基于模塊分解的IFPUG功能點分析方法應用研究</a> </dd> <dd > <a target="_blank" href="Article.aspx?titleid=rjdk20170450" title="基于圖像處理的工件加工精度檢測系統(tǒng)研究"> 基于圖像處理的工件加工精度檢測系統(tǒng)研究</a> </dd> <dd > <a target="_blank" href="Article.aspx?titleid=rjdk20170451" title="一種基于EA的需求管理實施方案"> 一種基于EA的需求管理實施方案</a> </dd> <dd > <a target="_blank" href="Article.aspx?titleid=rjdk20170452" title="基于Halcon的食品生產日期針孔光學字符檢測"> 基于Halcon的食品生產日期針孔光學字符檢測</a> </dd> <dd > <a target="_blank" href="Article.aspx?titleid=rjdk20170453" title="面向照明終端芯片程序的無線遠程升級研究與應用"> 面向照明終端芯片程序的無線遠程升級研究與應用</a> </dd> <dd > <a target="_blank" href="Article.aspx?titleid=rjdk20170454" title="基于ElasticSearch的Angularjs聯(lián)想框功能實現"> 基于ElasticSearch的Angularjs聯(lián)想框功能實現</a> </dd> <dd > <a target="_blank" href="Article.aspx?titleid=rjdk20170455" title="“互聯(lián)網+”校園一卡通融合路徑研究"> “互聯(lián)網+”校園一卡通融合路徑研究</a> </dd> <dd > <a target="_blank" href="Article.aspx?titleid=rjdk20170456" title="一種使用經驗系數灰度化的中藥葉片分割方法"> 一種使用經驗系數灰度化的中藥葉片分割方法</a> </dd> <dd > <a target="_blank" href="Article.aspx?titleid=rjdk20170457" title="基于相似度代價計算的內存數據庫集群數據劃分"> 基于相似度代價計算的內存數據庫集群數據劃分</a> </dd> <dd > <a target="_blank" href="Article.aspx?titleid=rjdk20170458" title="基于K—均值算法的數據挖掘技術研究及應用"> 基于K—均值算法的數據挖掘技術研究及應用</a> </dd> </dl> <dl onmouseover="this.className='cc0'" onmouseout="this.className='cc1'"> <dt> 信息安全</dt> <dd > <a target="_blank" href="Article.aspx?titleid=rjdk20170459" title="一種基于壓縮感知與混沌系統(tǒng)的比特級圖像加密方法"> 一種基于壓縮感知與混沌系統(tǒng)的比特級圖像加密方法</a> </dd> <dd > <a target="_blank" href="Article.aspx?titleid=rjdk20170460" title="鐵路車站計算機聯(lián)鎖系統(tǒng)安全性分析"> 鐵路車站計算機聯(lián)鎖系統(tǒng)安全性分析</a> </dd> <dd > <a target="_blank" href="Article.aspx?titleid=rjdk20170461" title="PDF中隱私數據的保護方法"> PDF中隱私數據的保護方法</a> </dd> <dd > <a target="_blank" href="Article.aspx?titleid=rjdk20170462" title="基于貝葉斯網絡的網絡風險評估研究"> 基于貝葉斯網絡的網絡風險評估研究</a> </dd> </dl> <dl onmouseover="this.className='cc0'" onmouseout="this.className='cc1'"> <dt> 圖像學與輔助設計</dt> <dd > <a target="_blank" href="Article.aspx?titleid=rjdk20170463" title="桌面遙感圖像處理系統(tǒng)并行處理架構選擇與實驗分析"> 桌面遙感圖像處理系統(tǒng)并行處理架構選擇與實驗分析</a> </dd> <dd > <a target="_blank" href="Article.aspx?titleid=rjdk20170464" title="SharpGL三維建模技術實現"> SharpGL三維建模技術實現</a> </dd> </dl> <dl onmouseover="this.className='cc0'" onmouseout="this.className='cc1'"> <dt> 綜述</dt> <dd > <a target="_blank" href="Article.aspx?titleid=rjdk20170465" title="Web服務測試綜述"> Web服務測試綜述</a> </dd> <dd > <a target="_blank" href="Article.aspx?titleid=rjdk20170466" title="大數據處理平臺比較研究"> 大數據處理平臺比較研究</a> </dd> <dd > <a target="_blank" href="Article.aspx?titleid=rjdk20170467" title="Java Web應用開發(fā)中的常見亂碼形式及解決方法"> Java Web應用開發(fā)中的常見亂碼形式及解決方法</a> </dd> <dd > <a target="_blank" href="Article.aspx?titleid=rjdk20170468" title="APP應用現狀、挑戰(zhàn)與展望"> APP應用現狀、挑戰(zhàn)與展望</a> </dd> </dl> <dl onmouseover="this.className='cc0'" onmouseout="this.className='cc1'"> <dt> 計算機與網絡教學</dt> <dd > <a target="_blank" href="Article.aspx?titleid=rjdk20170469" title="面向工程的計算機專業(yè)實踐教學體系研究"> 面向工程的計算機專業(yè)實踐教學體系研究</a> </dd> <dd > <a target="_blank" href="Article.aspx?titleid=rjdk20170470" title="《C語言程序設計》課程“三位一體式”教學模式研究"> 《C語言程序設計》課程“三位一體式”教學模式研究</a> </dd> <dd > <a target="_blank" href="Article.aspx?titleid=rjdk20170471" title="ASP.NET課程教學改革研究與實踐"> ASP.NET課程教學改革研究與實踐</a> </dd> </dl> </div> </div> </div> </div> </div> <div id="menuFooterDiv" class="headnav0"></div> <script type="text/javascript"> jQuery("#menuHeaderDiv").html(html); jQuery(function () { jQuery("#morelayer").hover(function () { jQuery("#divmorelayer").fadeIn(300); }) jQuery("#divmorelayer").hover(function () { jQuery("#divmorelayer").fadeIn(300); }, function () { jQuery("#divmorelayer").fadeOut(300); }) }) jQuery("#menuFooterDiv").html(htmlFooter); jQuery(function () { jQuery("#morelayerFooter").hover(function () { jQuery("#divmorelayerFooter").fadeIn(300); }) jQuery("#divmorelayerFooter").hover(function () { jQuery("#divmorelayerFooter").fadeIn(300); }, function () { jQuery("#divmorelayerFooter").fadeOut(300); }) }) if (jQuery('.morelayer_body > a').length == 0) { //頁眉/頁腳導航“更多”下沒有內容,將“更多”隱藏 jQuery('.threeunit').hide(); } </script> <div class="rearinfo"> 公司地址: 北京市西城區(qū)德外大街83號德勝國際中心B-11<br>客服熱線:400-656-5456??客服專線:010-56265043??電子郵箱:<a href="mailto:longyuankf@126.com">longyuankf@126.com</a><br>電信與信息服務業(yè)務經營許可證:<a target="_blank">京icp證060024號</a><br>Dragonsource.com Inc. All Rights Reserved </div><div class="icp"> <a target="_blank"> <img src="/Content/Images/icp.jpg" alt="icp" /></a></div> </div> </div> </form> <script type="text/javascript" src="/Content/Script/jquery.cookie.js"></script> <script type="text/javascript"> jQuery(document.body).ready(function () { if (jQuery.cookie('enablecookie') == null) { jQuery.cookie('enablecookie', '1'); var ec = jQuery.cookie('enablecookie'); if (ec == null) { location.href = "http://" + domain + "/content/error.aspx?error=nocookie"; } } }); </script> <script type="text/javascript"> var showad = true; var Toppx = jQuery(".headbox").height() + jQuery(".banner").height() + 10; //60; var AdDivW = 100; var AdDivH = 252; var PageWidth = 800; var MinScreenW = 1024; function scall1() { if (!showad) { return; } if (window.screen.width < MinScreenW) { showad = false; // document.getElementById("ctl00_LeftDiv").style.display = "none"; // document.getElementById("ctl00_RightDiv").style.display = "none"; jQuery("#ctl00_LeftDiv").hide(); jQuery("#ctl00_RightDiv").hide(); return; } var Borderpx = 30; //((window.screen.width - PageWidth) / 2 - AdDivW) / 2; // document.getElementById('ctl00_LeftDiv').style.display = ""; // document.getElementById('ctl00_LeftDiv').style.top = document.documentElement.scrollTop + Toppx; // document.getElementById('ctl00_LeftDiv').style.left = document.documentElement.scrollLeft + Borderpx; // document.getElementById('ctl00_RightDiv').style.display = ""; // document.getElementById('ctl00_RightDiv').style.top = document.documentElement.scrollTop + Toppx; // document.getElementById('ctl00_RightDiv').style.left = document.documentElement.scrollLeft + document.body.clientWidth - document.getElementById('ctl00_RightDiv').offsetWidth - Borderpx; jQuery("#ctl00_LeftDiv").show(); var Scrolltoppx = document.documentElement.scrollTop; var Scrollleftpx = document.documentElement.scrollLeft; jQuery("#ctl00_LeftDiv").css("top", Scrolltoppx + Toppx); jQuery("#ctl00_LeftDiv").css("left", Scrollleftpx + Borderpx); jQuery("#ctl00_RightDiv").show(); jQuery("#ctl00_RightDiv").css("top", Scrolltoppx + Toppx); jQuery("#ctl00_RightDiv").css("left", Scrollleftpx + document.body.clientWidth - document.getElementById('ctl00_RightDiv').offsetWidth - Borderpx); } function hidead1() { showad = false; document.getElementById('ctl00_LeftDiv').style.display = "none"; document.getElementById('ctl00_RightDiv').style.display = "none"; } function addLoadEvent1(func) { var oldonload = window.onload; if (typeof window.onload != 'function') { window.onload = func; } else { window.onload = function () { oldonload(); func(); } } } window.onscroll = scall1; window.onresize = scall1; addLoadEvent1(scall1); </script> <script type="text/javascript"> var piao=false; var xPos = 300; var yPos = 200; var step = 1; var delay = 30; var height = 0; var Hoffset = 0; var Woffset = 0; var yon = 0; var xon = 0; var pause = true; var interval; var img1 = document.getElementById("ctl00_PiaoDiv"); img1.style.display = 'block'; img1.style.top = yPos; function changePos() { var Scrolltoppx = document.documentElement.scrollTop; var Scrollleftpx = document.documentElement.scrollLeft; width = document.body.clientWidth - 200; height = document.documentElement.clientHeight; Hoffset = img1.offsetHeight; Woffset = img1.offsetWidth; jQuery(img1).css("left", xPos + document.body.scrollLeft); jQuery(img1).css("top", Scrolltoppx + yPos + document.body.scrollTop); if (yon) { yPos = yPos + step; } else { yPos = yPos - step; } if (yPos < 0) { yon = 1; yPos = 0; } if (yPos >= (height - Hoffset)) { yon = 0; yPos = (height - Hoffset); } if (xon) { xPos = xPos + step; } else { xPos = xPos - step; } if (xPos < 0) { xon = 1; xPos = 0; } if (xPos >= (width - Woffset)) { xon = 0; xPos = (width - Woffset); } } function start() { img1.visibility = "visible"; interval = setInterval('changePos()', delay); } function pause_resume() { if (pause) { clearInterval(interval); pause = false; } else { interval = setInterval('changePos()', delay); pause = true; } } if(piao) { start(); } </script> <fjtignoreurl> <script type="text/javascript"> //為了處理https協(xié)議在繁簡轉換的時候會默認吧鏈接轉換成帶有端口號444的鏈接的問題。 jQuery(function () { $("a[href*=':444']").each(function () { var link = $(this).attr('href'); link = link.replace(/^https://big5.qikan.com:444/i, "http://big5.qikan.com") $(this).attr('href', link); }); });</script></fjtignoreurl> <script type="text/javascript"> jQuery(function () { var link = "https://big5.qikan.com"; }); </script><fjtignoreurl><script type="text/javascript">var _userid = 'locklg006@nlc.com';var _siteid =19;var _istoken = 1;var _model = 'Model03';</script><script src="http://tj.qikan.com/urchin.js" type="text/javascript"> </script><script type="text/javascript">WebPageSpeed =469; UrchinTrack();</script></fjtignoreurl></body></html>[13],將有效元素集合中的所有元素進行點擊操作。2.2.3觸發(fā)有效性判斷 動態(tài)型網頁在觸發(fā)有效元素時,會改變DOM樹的結構,觸發(fā)有效性判斷也可以表示為DOM樹結構的變化,因此可以通過比較DOM樹結構相似性作為觸發(fā)有效性的標識。由于每次獲取下一頁,網頁里只有圖片和正文信息變動,其它噪聲、鏈接等部分基本不變,因此在判斷DOM樹相似性之前,通過正則表達式過濾獲取中文文字信息。 何昕等
[14]利用簡單樹匹配算法來判斷DOM樹相似性,它是一個受限的匹配算法,采用動態(tài)規(guī)劃來計算兩棵樹的最大匹配結點個數,得到兩棵樹結構的相似度;Roest等
[15]提出了比較頁面的方法,該方法比較每個模塊首先定位到該模塊所針對的DOM樹結構的特點部位,若判定其內容相同,則過濾掉該部分信息,將剩余內容傳遞給下一比較模塊,否則便可以直接判定兩個DOM樹不相似。以上兩種方法更多的是從DOM樹結構出發(fā),考慮到新聞網頁有效信息都在中文文字里,在網頁標題的情況下,本系統(tǒng)對比新得到的網頁中文信息與觸發(fā)之前的網頁中文信息,若只有極少數發(fā)生變化,則認為新得到的網頁無效,該觸發(fā)無效;否則,認為得到的網頁有效,將有效元素XPath存入XPath模板庫中。2.3新聞普通網頁信息抽取模塊 新聞普通網頁信息抽取模塊的目標是抽取新聞普通網頁的正文信息。新聞普通網頁的正文結構通常比較緊湊,網頁內圖片較少,正文代碼的一行大都是文字,超鏈接長度所占比率不大。又由于行塊分布算法對主題網頁有很好的通用性和較高的準確率,因此使用行塊分布算法。行塊分析算法的思想是哈爾濱工業(yè)大學信息檢索中心的陳鑫等研究提出的,其網頁正文塊起始行塊號Xstart和結束行塊號Xend的確定,必須同時滿足以下幾個條件,這里定義 Y(X)為以行號 X 為軸的行塊長度值。 (1)Ystart> Y(Xt),其中Y(Xt)是行塊長度的第一個驟升點,驟升點的行塊長度必須大于預先定義的閾值。
(2)Y(Xn)不等于0(其中n屬于[start+1,start+n]),緊跟在驟升點的行塊長度不能為0,以消除噪聲。
(3)Y(Xm)=0(其中m屬于[end,end+1]),驟降點以及緊跟在驟降點后面行的行塊長度為 0,以保證正文提取結束。 本文根據行塊分布算法的思想,利用Java中的JFreeChart繪圖工具,可得如圖4所示的行塊分布函數折線圖。從圖4可看出,有很多內容塊[start=743,end=745]、[start=749,end=773]、[start=1160,end=1165]、[start=1198,end=1205],而且內容塊中可能還有噪聲部分沒有清除。因此,根據新聞網頁噪聲的特點,添加了第4個約束條件。
(4)Ystart3實驗測試
3.1實驗準備
測試系統(tǒng)的機器環(huán)境為:1臺臺式機(CPU為Intel四核2.93GHz,4G內存,硬盤為7 200r/min,操作系統(tǒng)為Win7,10兆網速)。本系統(tǒng)采用純Java實現,有效元素路徑存儲選用MySQL5.5數據庫存儲。為了使結果更具說服力,本文設計了一個輕量級的主題爬蟲,從知名的新聞網站(如騰訊新聞、網易新聞、搜狐新聞、新浪新聞等)中爬取網頁,以此作為實驗網頁集。實驗主要測試新聞正文信息提取的正確率和提取速度,而新聞標題則是由網頁采集器提?。ㄒ话銓Ш骄W頁里,新聞標題和新聞URL在一起),這里不作處理。對于動態(tài)新聞,提取出的正文完全覆蓋真正的含義,而且沒有過濾干凈的噪聲占正文的比例不大于5%時才算合格。對于靜態(tài)網頁,本文采用準確率來表示提出正文信息的準確性:準確率=正確過濾的網頁數/總網頁個數×100%
3.2實驗結果 表1給出了系統(tǒng)網頁正文抽取準確率以及在線抽取正文信息速率,其中每個網站動態(tài)網頁和靜態(tài)網頁各100個,總共1 600個網頁。表1的試驗結果表明:本系統(tǒng)抽取靜態(tài)型網頁的準確率高于93%,對原新聞網頁正文內容提取比較完整,但動態(tài)型網頁的準確率都在80%以上。出現誤差的原因是不同專題的設計風格不盡相同,以及人們對于網頁中正文的界定差異等因素存在,本文算法的結果或多或少會受到一定影響。對于正文內容為純文本的網頁,本文算法的準確率很高。對于影響本系統(tǒng)正確率的幾個主要因素總結如下:①動態(tài)型網頁和普通新聞網頁的區(qū)分是根據URL相似度和URL是否含有標識符來判斷的;②對于普通新聞網頁中正文內容和噪聲部分的比例,如果網頁內以圖片或視頻為主要內容,過短的正文內容會被作為噪聲,從而降低提取結果的正確率;③普通新聞網頁中若嵌入圖片,將使正文各部分之間距離相差較大。
4實驗結論 本文提出的新聞網頁正文抽取系統(tǒng)除了利用行分塊算法抽取網頁信息以及DOM技術之外,還利用動態(tài)型網頁結構上的相似性特點,實現了大型新聞網站新聞正文信息的提取。本系統(tǒng)不依靠大量的訓練集,能夠較準確地抽取新聞正文信息,實驗結果驗證了其有效性。然而,對英文網頁以及結構復雜的網頁抽取效果不是很理想,尤其是嵌入圖文信息的普通新聞網頁。此方法只能抽取文字信息,不能獲得網頁圖片,下一步可以對英文網頁優(yōu)化、復雜網頁抽取算法和網頁圖片獲取方法等進行深入研究。
參考文獻:
[1]ARIAS J,DESCHACHT K,MOENS M F.Language independent content extraction from web pages[J].University of Twente,2009.
[2]〓開源中國社區(qū).通用網頁正文抽取[EB/OL].[20150425].http://code.google.com/p/cxextractor/.
[3]陳釗,張冬梅.Web信息抽取技術綜述[J].計算機應用研究,2010,27(12):44014405.
[4]王琦,唐世渭,楊冬青,等.基于DOM的網頁主題信息自動提取[C].中國數據庫學術會議,2004:17861792.
[5]GUPTA S,KAISER G E,GRIMM P,et al.Automating content extraction of HTML documents[J].World Wide Webinternet & Web Information Systems,2005,8(2):179224.
[6]REIS D C.Automatic web news extraction using tree edit distance[C].International Conference on World Wide Web.ACM,2004:502511.
[7]VIEIRA K,SILVA A S D,PINTO N,et al.A fast and robust method for web page template detection and removal[C].ACM International Conference on Information and Knowledge Management.ACM,2006:258267.
[8]黃文蓓,楊靜,顧君忠.基于分塊的網頁正文信息提取算法研究[J].計算機應用,2007,27(s1):2426.
[9]QI X,NIE L,DAVISON B D.Measuring similarity to detect qualified links[C].Airweb 2007,Third International Workshop on Adversarial Information Retrieval on the Web,CoLocated with the WWW Conference,Banff,Canada,2007:4956.
[10]張佳榮.Java開源項目HtmlUnit在瀏覽器模擬方面的應用[J].電子制作,2015(8):79.
[11]楊柳青,李曉東,耿光剛.基于布局相似性的網頁正文內容提取研究[J].計算機應用研究,2015(9):25812586.
[12]張瑤.面向AJAX腳本網絡的網頁爬行及解析技術的研究與實現[D].沈陽:東北大學,2012.
[13]MESBAH A,BOZDAG E,DEURSEN A V.Crawling AJAX by inferring user interface state changes[C].Eighth International Conference on Web Engineering,Yorktown Heights,New York,Usa.2008:122134.
[14]何昕,謝志鵬.基于簡單樹匹配算法的Web頁面結構相似性度量[J].計算機研究與發(fā)展,2007,44(z3):16.
[15]ROEST D,MESBAH A,DEURSEN A V.Regression testing ajax applications: coping with dynamism[C].International Conference on Software Testing,Verification and Validation,ICST 2010,Paris,France,2010:127136.(責任編輯:杜能鋼)