999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于網(wǎng)絡(luò)爬蟲和改進(jìn)的LCS算法的網(wǎng)站更新監(jiān)測(cè)

2017-03-01 04:26:16周孝錁郭克華
關(guān)鍵詞:文本用戶系統(tǒng)

周孝錁 郭克華,2

1(中南大學(xué)信息科學(xué)與工程學(xué)院 湖南 長(zhǎng)沙 410000)

基于網(wǎng)絡(luò)爬蟲和改進(jìn)的LCS算法的網(wǎng)站更新監(jiān)測(cè)

周孝錁1郭克華1,2

1(中南大學(xué)信息科學(xué)與工程學(xué)院 湖南 長(zhǎng)沙 410000)

2(高維信息智能感知與系統(tǒng)教育部重點(diǎn)實(shí)驗(yàn)室 江蘇 南京 210094)

互聯(lián)網(wǎng)時(shí)代,信息爆炸式增長(zhǎng),用戶需要方便及時(shí)地獲取自己所需的信息。傳統(tǒng)的搜索引擎和以RSS為代表的訂閱具有一些缺陷,難以滿足用戶高質(zhì)量需求。在此基礎(chǔ)上,利用網(wǎng)絡(luò)爬蟲和文本對(duì)比,提出一種新型網(wǎng)站更新監(jiān)測(cè)與訂閱的通用方法。該方法將先后抓取的網(wǎng)頁(yè)內(nèi)容分析處理后,進(jìn)行文本對(duì)比,檢測(cè)更新內(nèi)容,將結(jié)果以結(jié)構(gòu)化形式返回給用戶查看。實(shí)驗(yàn)表明,該方法解決了RSS訂閱受訂閱源限制的缺點(diǎn),實(shí)現(xiàn)了用戶添加任意網(wǎng)站,在高校、企業(yè)、新聞、電影、博客、論壇等網(wǎng)站的監(jiān)測(cè)方面具有較好的效果。

網(wǎng)絡(luò)爬蟲 網(wǎng)頁(yè)去噪 網(wǎng)站訂閱 文本對(duì)比 更新監(jiān)測(cè)

0 引 言

隨著互聯(lián)網(wǎng)的迅猛發(fā)展,社會(huì)進(jìn)入全面信息時(shí)代,網(wǎng)站數(shù)據(jù)不斷增多,截至2011年底,中國(guó)網(wǎng)民規(guī)模達(dá)到4.85億,位居世界首位,網(wǎng)頁(yè)數(shù)量達(dá)到600億以上[1]。這些網(wǎng)頁(yè)都處在不斷的變化更新中,近乎40%的網(wǎng)頁(yè)一周內(nèi)會(huì)更新,而以.com為域名的網(wǎng)頁(yè)則有23%每天都在變化[2]。因此,從浩瀚信息海洋中獲取最需、最新內(nèi)容,成為研究熱點(diǎn)。搜索引擎和RSS訂閱的發(fā)明,在一定程度上解決了獲取信息的難題,但二者的弊端也隨著用戶需求的擴(kuò)大而愈加凸顯:搜索引擎需要手動(dòng)輸入,準(zhǔn)確度不夠;RSS訂閱則由于訂閱源的限制,而影響了其訂閱范圍[3]。因此,面向任意網(wǎng)站的通用訂閱方法及相關(guān)技術(shù)應(yīng)運(yùn)而生。

RSS訂閱在本世紀(jì)初被廣泛關(guān)注,不僅在新聞、博客、論壇等網(wǎng)站得到實(shí)施,也有在化學(xué)[4]、開源項(xiàng)目[5]、管理系統(tǒng)等領(lǐng)域得到應(yīng)用,產(chǎn)生了多種試圖給任意網(wǎng)站產(chǎn)生RSS Feed的系統(tǒng)和網(wǎng)站。如日本的Nanno等[6]開發(fā)的系統(tǒng),在分析HTML文檔特征的基礎(chǔ)上實(shí)現(xiàn)為含有時(shí)間序列項(xiàng)的網(wǎng)站自動(dòng)生成RSS Feed。不過,該系統(tǒng)所分析的網(wǎng)站必須要有日期描述,由時(shí)間序列項(xiàng)構(gòu)成。此外,業(yè)界其他網(wǎng)站提供了生成RSS Feed的功能,如page2rss.com/、feed43.com、feedity.com、feedyes.com、www.ponyfish.com 等,但它們都有各自的局限和缺點(diǎn):page2rsss解析的目標(biāo)網(wǎng)站內(nèi)容不能太多,有些網(wǎng)站難以得到更新內(nèi)容,即使生成了RSS 種子,格式也不適用于大部分RSS 閱讀器;feed43僅能滿足大部分一般布局的網(wǎng)站;feedity和feedyes收費(fèi);ponyfish已經(jīng)關(guān)閉服務(wù)。可實(shí)現(xiàn)大規(guī)模網(wǎng)站訂閱的Google Reader,也隨著2013年7月1日Google Reader的關(guān)閉而不復(fù)存在。

為解決以上問題,人們從爬蟲入手,試圖利用網(wǎng)站更新檢測(cè)的技術(shù),獲取網(wǎng)站最新內(nèi)容,并推送給相關(guān)用戶(訂閱用戶)。文獻(xiàn)[7]試圖優(yōu)化RSS閱讀器的信息重復(fù)和面向用戶個(gè)性化不足等缺陷;文獻(xiàn)[8]利用網(wǎng)絡(luò)爬蟲和TF-IDF算法對(duì)抓取的網(wǎng)頁(yè)分類,得到高校網(wǎng)站中某一類別的信息,再以RSS訂閱的形式推送給用戶,它的局限性在于只是針對(duì)某個(gè)類別的信息獲取,未能推廣到各類網(wǎng)站的全面內(nèi)容更新監(jiān)測(cè)及推送。市場(chǎng)上的許多RSS訂閱的替代品,如國(guó)內(nèi)的鮮果、抓蝦、今日頭條以及國(guó)外的ZAKER等。這些產(chǎn)品利用網(wǎng)絡(luò)爬蟲抓取目標(biāo)網(wǎng)頁(yè)的內(nèi)容,如果整合起來,供用戶訂閱,就比較方便,但是這些產(chǎn)品的一個(gè)共同缺點(diǎn),即用戶無法自主添加訂閱網(wǎng)站。

本文為解決以上問題,找到一個(gè)通用的網(wǎng)站訂閱方案,提出了一個(gè)基于網(wǎng)絡(luò)爬蟲、網(wǎng)頁(yè)去噪和文本對(duì)比,用戶可自主添加訂閱的網(wǎng)站更新監(jiān)測(cè)和訂閱系統(tǒng)。主要采取去除所有網(wǎng)頁(yè)標(biāo)簽和鏈接,提取所有文本值作為字符串對(duì)比輸入的方案。該方法解決了RSS訂閱受訂閱源限制的缺點(diǎn),實(shí)現(xiàn)了用戶任意添加網(wǎng)站,在高校、企業(yè)、新聞、電影、博客、論壇等網(wǎng)站的監(jiān)測(cè)方面具有較好的效果。

1 系統(tǒng)框架與關(guān)鍵技術(shù)

1.1 系統(tǒng)框架

本系統(tǒng)設(shè)計(jì)有3個(gè)模塊,分別為訂閱模塊、更新模塊和查看模塊。訂閱模塊是處理用戶添加的訂閱網(wǎng)站,流程圖如圖1所示。爬蟲訪問用戶添加的網(wǎng)址,獲取網(wǎng)頁(yè)內(nèi)容,存入數(shù)據(jù)庫(kù);同時(shí)根據(jù)需要與否從中提取二級(jí)超鏈接(即頁(yè)面上的超鏈接,這由用戶選擇的更新深度決定),若需要,再訪問二級(jí)超鏈接獲取網(wǎng)頁(yè)內(nèi)容,存入數(shù)據(jù)庫(kù);同樣根據(jù)需要與否提取其中的三級(jí)超鏈接,訪問三級(jí)超鏈接獲取網(wǎng)頁(yè)內(nèi)容,只需存入數(shù)據(jù)庫(kù),不用再提取超鏈接。因?yàn)橄到y(tǒng)設(shè)置的可選更新深度最大是3,便于訂閱目錄型網(wǎng)站[9]。

圖1 訂閱模塊流程圖

更新模塊是整個(gè)系統(tǒng)的核心,流程圖如圖2所示。該模塊獨(dú)立于系統(tǒng),后臺(tái)運(yùn)行,不受用戶干預(yù)。為有效地利用資源,及時(shí)獲得更新,采用一種新型增量式更新算法用于設(shè)置更新時(shí)間。通過爬蟲獲取網(wǎng)頁(yè)內(nèi)容,經(jīng)網(wǎng)頁(yè)去噪后提取每個(gè)超鏈接的文本值,構(gòu)成新舊字符串?dāng)?shù)組進(jìn)行對(duì)比,得到新增或修改過的超鏈接,即網(wǎng)站的Item(通知、新聞、講座、視頻、音樂、帖子等,統(tǒng)稱Item)。經(jīng)過文本對(duì)比,若發(fā)現(xiàn)兩次爬取的頁(yè)面內(nèi)容有改變,則提取變化的Item,存入數(shù)據(jù)庫(kù),并更新數(shù)據(jù)庫(kù)中存儲(chǔ)的頁(yè)面內(nèi)容,供下次對(duì)比使用;若無改變,只需更新數(shù)據(jù)庫(kù)中存儲(chǔ)的頁(yè)面內(nèi)容。由于文本值以標(biāo)題為主,重復(fù)概率很低,文本值具備唯一性和不變性,所以選擇Item的文本值作為對(duì)比。

圖2 更新模塊流程圖

查看模塊是從數(shù)據(jù)庫(kù)中提取所需數(shù)據(jù),結(jié)構(gòu)化顯示在網(wǎng)頁(yè)上,便于用戶查看,是系統(tǒng)的主要界面。

由于網(wǎng)頁(yè)內(nèi)容的雜亂性、動(dòng)態(tài)性、頁(yè)面結(jié)構(gòu)差異性,經(jīng)過文本對(duì)比,得到最新Item存入數(shù)據(jù)庫(kù)后,其實(shí)并非都是網(wǎng)站最新的、用戶需要查看的Item。本文使用選擇性提取數(shù)據(jù),提高更新準(zhǔn)確性。從數(shù)據(jù)庫(kù)表中讀取本次更新獲得的記錄時(shí),跟上次更新獲得的記錄進(jìn)行對(duì)比,過濾那些在上次更新中也出現(xiàn)過的重復(fù)記錄。

通過選擇性提取數(shù)據(jù),把精簡(jiǎn)、準(zhǔn)確的最新Item結(jié)構(gòu)化顯示在頁(yè)面上,供用戶查看。一般而言,Item包含標(biāo)題、鏈接、發(fā)布日期(若沒有,則用更新日期替代),用戶點(diǎn)擊標(biāo)題即可鏈接到Item所在原網(wǎng)站的詳細(xì)頁(yè)面,類似RSS訂閱器。

1.2 爬蟲訪問被拒問題

由于系統(tǒng)需要頻繁地訪問眾多網(wǎng)址,難免會(huì)出現(xiàn)各種網(wǎng)絡(luò)錯(cuò)誤,比如不斷重新連接服務(wù)器、服務(wù)器拒絕訪問、訪問頻率過高連接崩潰等。對(duì)此問題,本系統(tǒng)首先完善訪問機(jī)制,設(shè)置合適最大鏈接數(shù)、重連次數(shù)等參數(shù),確保一些低級(jí)問題不會(huì)發(fā)生;其次,合理訪問網(wǎng)址,不暴力地持續(xù)訪問,避免服務(wù)器采取阻止爬蟲的各類措施;可以通過設(shè)置合理的更新周期、多線程的機(jī)制和分布式爬蟲加以實(shí)現(xiàn);在本機(jī)上做出的系統(tǒng)demo,運(yùn)用了增量式更新和多線程爬取,實(shí)現(xiàn)了前兩點(diǎn)。

為節(jié)省系統(tǒng)的資源,提高爬蟲效率,本文采取增量式爬取算法來設(shè)置更新周期。增量式爬取算法可以簡(jiǎn)單地分為三種[8]:(1) 定期地從URL列表中,按先后順序進(jìn)行訪問;(2) 把網(wǎng)頁(yè)根據(jù)其更新速度簡(jiǎn)單分為更新快的一類和更新慢的一類,分別設(shè)置較短和較長(zhǎng)的更新周期;(3) 對(duì)URL列表中每個(gè)URL所指頁(yè)面的更新速度進(jìn)行預(yù)測(cè),根據(jù)這個(gè)預(yù)測(cè)時(shí)間來爬取網(wǎng)頁(yè),盡可能滿足各種網(wǎng)頁(yè)的更新頻率,最大效率地利用系統(tǒng)資源。本系統(tǒng)采用第三種增量式爬取算法,其中的更新預(yù)測(cè)算法采用文獻(xiàn)[8]中改進(jìn)的算法。該算法簡(jiǎn)單描述為:用一個(gè)參數(shù)A記錄“上次監(jiān)測(cè)到更新所用時(shí)間”,另一個(gè)參數(shù)C記錄“上次更新至今有多久”,從隊(duì)列中取出“預(yù)測(cè)更新時(shí)間”已到的網(wǎng)頁(yè)進(jìn)行訪問,若有更新,說明實(shí)際更新時(shí)間小于或等于A,根據(jù)實(shí)踐經(jīng)驗(yàn),設(shè)置為A的80%;若無更新,說明預(yù)測(cè)的更新時(shí)間太小,將預(yù)測(cè)更新時(shí)間變?yōu)槠浔旧砑由螦的一半。算法流程如圖3所示。

圖3 增量式更新,預(yù)測(cè)更新時(shí)間算法流程圖

其中A表示更新參數(shù),記錄上一次共用多久監(jiān)測(cè)到更新;B表示預(yù)計(jì)下次過多久更新,即系統(tǒng)需要的預(yù)測(cè)更新時(shí)間;C表示累計(jì)未更新時(shí)間,即上次更新后到現(xiàn)在為止這段時(shí)間,如果更新了就清零,初始值賦為0。

1.3 過濾不合適鏈接

為了多層次監(jiān)測(cè)網(wǎng)站的更新,需要提取某些網(wǎng)站(由用戶自己選擇)的首頁(yè)及二級(jí)頁(yè)面上的超鏈接,由于有些頁(yè)面結(jié)構(gòu)雜亂、鏈接眾多,有許多非法、無用的不適用鏈接需要過濾掉,如友情鏈接、相關(guān)導(dǎo)航等。首先,友情和導(dǎo)航鏈接基本是絕對(duì)鏈接,而頁(yè)面上正常的用戶需要的鏈接是相對(duì)鏈接,對(duì)其進(jìn)行初步過濾;其次,對(duì)于一個(gè)鏈接,可嘗試訪問,并提取它所指頁(yè)面的超鏈接個(gè)數(shù),如果超鏈接個(gè)數(shù)較多,超過某閾值,則判斷為不合用鏈接而過濾掉,形成二次過濾。另外,一個(gè)較大網(wǎng)站難免會(huì)有一些相同Item和一些相互指向的鏈接,對(duì)此,把所有鏈接存入HashMap里面,過濾掉重復(fù)值。

1.4 文本對(duì)比算法

本系統(tǒng)采用改進(jìn)的LCS(Longest Common Sequence)算法[10]進(jìn)行文本對(duì)比,LCS指兩個(gè)字符串的最長(zhǎng)公共子序列(不要求連續(xù)出現(xiàn),只要出現(xiàn)順序一致)。計(jì)算LCS(A,B)的方法很多,運(yùn)用動(dòng)態(tài)規(guī)劃思想的Needleman-Wunsch算法[11]是較早較基礎(chǔ)的,它最早在1970年由Needleman和Wunsch二人提出,用于生物信息學(xué)領(lǐng)域的蛋白質(zhì)序列對(duì)比,后來發(fā)展為全局最優(yōu)匹配(Optimal Global Alignment)的常用手段。

算法1 假設(shè)待比較的字符串A和B,長(zhǎng)度分別是m、n,Needleman-Wunsch算法求兩個(gè)字符串的LCS分為四步:

Step1 初始化矩陣。構(gòu)建一個(gè)(m+1)×(n+1)的空矩陣F。

Step2 選擇計(jì)分系統(tǒng)。字符串匹配時(shí)每對(duì)字符存在三種情況:

(1) 匹配(Math):兩個(gè)字符相同;

(2) 不匹配(Mismatch):兩個(gè)字符不同;

(3) 缺口(Gap):一個(gè)字符跟缺口相對(duì)。

計(jì)分系統(tǒng)就是對(duì)上述三種情形賦值,賦值規(guī)則不同,計(jì)分系統(tǒng)就不同。Needleman和Wunsch采取最簡(jiǎn)單的方式,設(shè)定Math計(jì)1分,Mismatch計(jì)-1分,Gap計(jì)-1分。

Step3 填充矩陣。根據(jù)計(jì)分系統(tǒng)填充矩陣。主要的規(guī)則由式(1)決定:

F(i,j)= Max(F(i-1,j-1)+S(Ai,Bj),F(i,j-1)+d,

F(i-1,j)+d) (1≤i≤m,1≤j≤n)

(1)

Step4 回溯路徑。根據(jù)Step3中的計(jì)算,用箭頭表示F(i,j)(1≤i≤m,1≤j≤n)的來源,即上單元、左單元和左上角單元。然后根據(jù)箭頭從矩陣的最右下角一個(gè)單元開始,回溯得到最長(zhǎng)公共子序列的路徑。

實(shí)際上,每個(gè)單元格的得分表示該單元格的列所代表的字符變?yōu)樵搯卧竦男兴淼淖址碾y易程度,換言之,分?jǐn)?shù)代表字符之間的編輯距離。算法1采用Math=1,Mismatch=-1,Gap=-1的計(jì)分系統(tǒng),得分越高,編輯距離越小,所以式(1)中F(i,j)選取三個(gè)方向的最大值。于是計(jì)分完成之后,根據(jù)得分來源從右下角單元格開始回溯得到路徑,是得分最高的路徑,也是編輯距離最小的路徑,即我們需要的最長(zhǎng)公共子序列。這是算法1的核心思想。

由于矩陣是(m+1)×(n+1),計(jì)算每個(gè)單元的值在常數(shù)時(shí)間內(nèi)完成,整個(gè)過程中需要存儲(chǔ)每個(gè)單元格的值,算法1的時(shí)間和空間復(fù)雜度都為O(mn)。

然而,該時(shí)間和空間復(fù)雜度跟被比較的兩個(gè)字符串長(zhǎng)度乘積成正比,當(dāng)比較的字符串長(zhǎng)度很大時(shí),耗費(fèi)的時(shí)間和空間巨大。不少學(xué)者對(duì)LCS算法進(jìn)行了改進(jìn)。已經(jīng)證明,LCS問題算法的時(shí)間復(fù)雜度不可能小于O(mlogn)[12],目前幾種比較有效的是Hirschberg[13]提出的時(shí)間復(fù)雜度為O(tn),Nakatsu[10]提出的時(shí)間復(fù)雜度為O(n(m-t)),以及李欣等人改進(jìn)的快速算法[14],時(shí)間復(fù)雜度為O(t(m-t)),其中m、n、t分別為字符串A的長(zhǎng)度、字符串B的長(zhǎng)度,二者的LCS長(zhǎng)度。

本文采用的算法:Nakatsu提出的時(shí)間復(fù)雜度為O(n(m-t)),這里稱之為算法2。

算法2Nakatsu提出的快速LCS算法,基于下面幾個(gè)基本定理[14]:

字符串A=A[1]A[2]…A[m]和字符串B=B[1]B[2]…B[n],A(1:i)表示A的連續(xù)子序列A[1]A[2]…A[i],同樣B(1:j)表示B的連續(xù)子序列B[1]B[2]…B[j]。Li(k)表示所有與字符串A(1:i)有長(zhǎng)度為k的LCS的字符串B(1:j)中j的最小值。公式化表示就是Li(k)=Minj(LCS(A(1:i),B(1:j))=k)。

定理1 ?i∈[1,m],有Li(1)

定理2 ?i∈[1,m-1],(t∈[1,m]),有Li+1(k)

定理3 ?i∈[1,m-1],(t∈[1,m-1]),有Li(k)

以上三個(gè)定理都不考慮Li(k)無定義的情況。

定理4Li+1(k)如果存在,那么它的取值必為:

Li+1(k)=Min(j,Li(k))

這里j是滿足以下條件的最小整數(shù):A[i+1]=B[j]且j>Li(k-1)。

以上定理的證明請(qǐng)參閱文獻(xiàn)[10,13]。定理4遞推得到Li(k)。利用此遞推關(guān)系構(gòu)建矩陣如圖4所示。

圖4 求解LCS的矩陣L(p,m)

以上矩陣中的元素L(k,i)=Li(k),這里(1

設(shè)t=Maxk(L(k,m)≠null),容易證明L矩陣中L(t,m)所在對(duì)角線L(1,m-t+1)L(2,m-t+2)…L(t-1,m-1)L(t,m)所對(duì)應(yīng)的子序列B[L(1,m-t+l)]B[L(2,m-t+2)]…B[L(t,m)]即為A和B的LCS(也可能存在特殊情況,對(duì)角線所對(duì)應(yīng)的子字符串并非完全是LCS,后文會(huì)討論),t為該LCS的長(zhǎng)度。于是,LCS問題的求解就轉(zhuǎn)化為對(duì)Lm(k)矩陣的求解。

舉例說明:給定字符串A和B,A=bcdabab,B=cbacbaaba,(m=|A|=7,n=|B|=9),根據(jù)定理4給的推理公式,L矩陣如圖5所示。

圖5 Nakatsu的快速LCS算法舉例

如圖5所示,A和B的LCS為B[1][3][5][6][8]=cabab,LCS的長(zhǎng)度t=5。

矩陣第一行元素L(1,i)可用L(1,i) =Minj([A]=B[j])得到,其余行元素用定理4遞推而出。然而實(shí)際上并不需要這么做,無需計(jì)算矩陣中每個(gè)元素的值,只需按對(duì)角線順序計(jì)算L矩陣。先求第一條對(duì)角線上的元素L(1,1)L(2,2)…,直至L(i,i)=null,i≤m為止;再求第二條對(duì)角線L(1,2)L(2,3)…L(i,i+1)=null,i

算法2的時(shí)間復(fù)雜度曲線是一條隨t增大而減小的直線,如圖6所示。可以看出,當(dāng)t接近m時(shí),它的時(shí)間復(fù)雜度非常低。算法2適合比較兩個(gè)文本文件,能夠把一行文本作為一個(gè)比較單位,從而大大加快計(jì)算速度,提升效率。本文正好需要比較兩段長(zhǎng)文本,二者相異部分很小,LCS長(zhǎng)度接近被比較的字符串長(zhǎng)度,非常適合采用算法2。

圖6 算法2的性能

1.5 文本對(duì)比算法改進(jìn)

本文在利用算法2的基礎(chǔ)上,進(jìn)行如下改進(jìn):

算法2的目的在于找出一個(gè)LCS(不是所有),降低計(jì)算LCS的時(shí)間與空間復(fù)雜度,而本文需要找出所有的LCS,排除不符合的LCS,提取變化的內(nèi)容,保證更新的準(zhǔn)確性。

在圖5的例子中除了B[1][3][5][6][8]=cabab這個(gè)明顯的LCS外,還存在其他LCS,如B[2][4][6][8][9]=bcaba等。根據(jù)算法2:計(jì)算從第一條對(duì)角線開始,直到對(duì)角線L(1,s)L(2,s+1)…L(u,m),且L(u,m)≠null為止。這時(shí)L(1,s)所在的對(duì)角線是最明顯直接的一個(gè)LCS;在計(jì)算的過程中,運(yùn)用了定理4:Li+1(k)=Min(j,Li(k)),這里j是滿足以下條件的最小整數(shù):A[i+1]=B[j]且j>Li(k-1),如果不存在這樣的j滿足A[i+1]=B[j]且j>Li(k-1),那么Li+1(k)=Li(k),將這樣的Li+1(k)標(biāo)記圓圈以示區(qū)別。實(shí)際上,該Li+1(k)對(duì)應(yīng)的B[b](b=Li+1(k))是不可能成為L(zhǎng)CS一部分,因?yàn)锽中不存在A[i+l]字符,Li+1(k)的值是由Li(k)替代的,它是個(gè)虛假的匹配點(diǎn),可稱之為虛點(diǎn)。如圖7所示,路徑Ⅰ、Ⅱ、Ⅲ、Ⅲ所在的單元構(gòu)成四個(gè)真實(shí)的LCS。

圖7 存在多個(gè)LCS

因此圖5中箭頭所在的對(duì)角線只能表明LCS的長(zhǎng)度為5,而真的LCS是箭頭Ⅰ所對(duì)應(yīng)的子字符串B[1][3][5][6][8]=cabab,這就是前文提到的特殊情況。箭頭Ⅱ、Ⅲ、Ⅲ也都是LCS,分別對(duì)應(yīng)B[2][3][5][6][8]=babab、B[2][4][5][6][8]=bcbab和B[2][4][6][8][9]=bcaba,四個(gè)LCS的匹配情形如圖8所示。

圖8 四種匹配情形

總結(jié)可以發(fā)現(xiàn),所有的LCS是以最后一條對(duì)角線(稱之為基準(zhǔn)線)為基礎(chǔ)擴(kuò)展而來,它只可能位于基準(zhǔn)線的左下方,并且遵循如下規(guī)則:

(1) 對(duì)于L(1,s)(s≤m-t+1)所在的每條對(duì)角線,若所包含的不為null的元素個(gè)數(shù)等于LCS長(zhǎng)度t,轉(zhuǎn)(2);

(2) 對(duì)于對(duì)角線上元素L(k,i)(k>1,i>1),若L(k-1,i-1)不為null和虛點(diǎn),且L(k-1,i-1)

利用上述規(guī)則很容易得到所有的LCS,但不同的LCS對(duì)應(yīng)著明顯不同的匹配情形,這對(duì)于網(wǎng)站更新系統(tǒng)而言,意味著變化的Item不同。而一個(gè)網(wǎng)站實(shí)際的更新變化只有一種,所以只有一個(gè)匹配情形符合網(wǎng)站的真實(shí)更新情況,需要排除其余的匹配。

利用算法,獲得兩個(gè)字符串的LCS后,根據(jù)匹配情形即可得知差異部分,對(duì)應(yīng)本文網(wǎng)站更新系統(tǒng)的字符串?dāng)?shù)組匹配,就是變化的字符串。比如圖8中,匹配IV的B字符串的B[1]=c、B[3]=a是插入部分,B[5]=b就是修改部分,A[7]=b是被刪除的。由于網(wǎng)站新聞標(biāo)題具有獨(dú)特性和功能性,標(biāo)題相同而內(nèi)容不同的情況是極少的;換言之,經(jīng)過文本對(duì)比匹配之后,得到的插入部分,在被比較網(wǎng)頁(yè)(稱之為舊網(wǎng)頁(yè))中是不存在的(跟字符串匹配不同:插入的字符也可能存在被匹配字符串中)。所以,本文采用字符串?dāng)?shù)組對(duì)比,當(dāng)遇到多個(gè)LCS時(shí),只需驗(yàn)證每種匹配情形下插入部分的字符串是否存在被比較的字符串?dāng)?shù)組中,即可判斷該匹配情形是否符合真實(shí)情況;若存在,則不是真實(shí)情況,排除。

本文利用網(wǎng)絡(luò)爬蟲和文本對(duì)比實(shí)現(xiàn)網(wǎng)站更新監(jiān)測(cè)與訂閱。首先將爬蟲獲取的新舊HTML內(nèi)容利用MD5算法判別是否不同;其次,若有不同,將新舊HTML內(nèi)容進(jìn)行網(wǎng)頁(yè)去噪,再進(jìn)行文本對(duì)比。采用Nakatsu等人的LCS算法[10]進(jìn)行文本對(duì)比,并考慮多個(gè)LCS存在的情況,進(jìn)行了改進(jìn)。

網(wǎng)頁(yè)去噪的含義廣泛,主要指去除與應(yīng)用目的不相符的干擾因素,毛先領(lǐng)等人[15]對(duì)眾多的去噪方法進(jìn)行歸納分類,分為單模型網(wǎng)頁(yè)去噪和多模型網(wǎng)頁(yè)去噪,重點(diǎn)有Shingle方法[16],Cai等人的VIPS算法[17-20]。本系統(tǒng)采用的網(wǎng)頁(yè)去噪方法簡(jiǎn)單而實(shí)用,提取每個(gè)超鏈接的文本值,構(gòu)成新舊字符串?dāng)?shù)組進(jìn)行對(duì)比,滿足算法要求的數(shù)據(jù)輸入格式。經(jīng)過MD5判別和網(wǎng)頁(yè)去噪,再進(jìn)行文本對(duì)比,降低了對(duì)比誤差出現(xiàn)的概率,提高了更新檢測(cè)的準(zhǔn)確性。

2 實(shí)驗(yàn)結(jié)果與分析

2.1 實(shí)驗(yàn)設(shè)置

為驗(yàn)證本文所提方法的性能。在聯(lián)想個(gè)人PC機(jī)上進(jìn)行實(shí)驗(yàn),配置:CPU:Intel(R) Pentium(R)@2.80 GHz,內(nèi)存:4.0 GB,操作系統(tǒng):Win 8.1專業(yè)版,32位。

實(shí)驗(yàn)以7個(gè)不同類型、規(guī)模、結(jié)構(gòu)的網(wǎng)站自然情況下的更新作為測(cè)試,采用增量式更新和LCS算法獲取更新,統(tǒng)計(jì)其查準(zhǔn)率和查全率。由于大型網(wǎng)站如鳳凰網(wǎng)、天涯論壇,一天內(nèi)更新的內(nèi)容多而散亂,難以統(tǒng)計(jì)某段時(shí)間內(nèi)網(wǎng)站更新的具體新聞數(shù)目,不便計(jì)算查全率,只能計(jì)算出查準(zhǔn)率。測(cè)試網(wǎng)站的名稱、URL、編號(hào)如表1所示,與表2中編號(hào)相對(duì)應(yīng)。

表1 測(cè)試網(wǎng)站編號(hào)表

表2 采用改進(jìn)的LCS算法統(tǒng)計(jì)網(wǎng)站更新數(shù)據(jù)表

續(xù)表2

2.2 實(shí)驗(yàn)結(jié)果

采用本文改進(jìn)的LCS算法,分別統(tǒng)計(jì)7個(gè)網(wǎng)站每次更新的查準(zhǔn)率、查全率以及5次試驗(yàn)的平均查準(zhǔn)率、查全率,如表2所示。可以得知,1、2號(hào)網(wǎng)站,是高校內(nèi)部網(wǎng)站,它們的查準(zhǔn)率和查全率非常高接近100%,因?yàn)楦咝?nèi)部網(wǎng)站結(jié)構(gòu)簡(jiǎn)單、更新數(shù)量較少,容易全部捕獲到。不過,由于更新數(shù)量少,若有1~2條更新沒有獲取,對(duì)查準(zhǔn)率、查全率影響較大,2號(hào)網(wǎng)站正是因此在第4次測(cè)試中查準(zhǔn)率和查全率較低。3-7號(hào)網(wǎng)站,分別是鳳凰網(wǎng)、天涯論壇、CSDN博客、中國(guó)建設(shè)銀行、電影天堂,其中6號(hào)中國(guó)建設(shè)銀行,監(jiān)測(cè)了3層頁(yè)面,其表現(xiàn)跟1、2號(hào)網(wǎng)站類似,準(zhǔn)確率高但易被少量未捕獲的更新內(nèi)容影響;3號(hào)鳳凰網(wǎng),其結(jié)構(gòu)嚴(yán)謹(jǐn)、內(nèi)容單一有規(guī)律,每次查準(zhǔn)率都在97%以上;其余的3個(gè)網(wǎng)站,分別是論壇、博客、電影網(wǎng)站,類型不同,共同點(diǎn)在于網(wǎng)頁(yè)結(jié)構(gòu)復(fù)雜、內(nèi)容繁多雜亂、變化頻繁而不規(guī)律、有防爬蟲設(shè)計(jì),故查準(zhǔn)率相對(duì)偏低,3個(gè)網(wǎng)站的平均查準(zhǔn)率是85.9%,比較穩(wěn)定,受未捕獲的少量更新內(nèi)容影響較小;查全率雖無法統(tǒng)計(jì),但從局部范圍內(nèi)的統(tǒng)計(jì)發(fā)現(xiàn),查全率不低于查準(zhǔn)率,使得更新內(nèi)容遺漏很少,保證了更新的覆蓋范圍。

另外,對(duì)同樣的上述7個(gè)網(wǎng)站,分別采取改進(jìn)和原始的Nakatsu的LCS算法,進(jìn)行3次更新監(jiān)測(cè),統(tǒng)計(jì)其平均查準(zhǔn)率。具體數(shù)據(jù)如表3所示,對(duì)應(yīng)的對(duì)比如圖9所示。

表3 網(wǎng)站更新對(duì)比統(tǒng)計(jì)表

續(xù)表3

圖9 網(wǎng)站更新對(duì)比圖

通過對(duì)比可以發(fā)現(xiàn),改進(jìn)后的LCS算法用于網(wǎng)站更新監(jiān)測(cè),雖然個(gè)別網(wǎng)站的查準(zhǔn)率并未提高,但總體上有更高的查準(zhǔn)率。因?yàn)榫W(wǎng)站上的Item重復(fù)較少,采用LCS算法獲取最長(zhǎng)公共子序列時(shí)不會(huì)經(jīng)常得到多個(gè)最長(zhǎng)公共子序列,所以改進(jìn)后的一些網(wǎng)站,其查準(zhǔn)率是相同的。但對(duì)于4號(hào)“天涯論壇”這種大規(guī)模大數(shù)據(jù)網(wǎng)站而言,有許多帖子由于評(píng)論內(nèi)容的增加而導(dǎo)致其在頁(yè)面上的位置變化,但I(xiàn)tem標(biāo)題其實(shí)未變。這導(dǎo)致了后期更新時(shí)LCS算法會(huì)得到多個(gè)最長(zhǎng)公共子序列,需要排除。于是本文改進(jìn)的LCS算法就取得了效果,提高了查準(zhǔn)率。查準(zhǔn)率對(duì)網(wǎng)站更新而言,非常重要,影響到用戶查看信息的準(zhǔn)確性、全面性,避免遺漏重要通知、信息。

3 結(jié) 語(yǔ)

本文提出一種基于網(wǎng)絡(luò)爬蟲和改進(jìn)的文本對(duì)比的網(wǎng)站更新監(jiān)測(cè)新方案,實(shí)現(xiàn)了幾乎任意網(wǎng)站的更新監(jiān)測(cè)與訂閱。實(shí)驗(yàn)結(jié)果表明,對(duì)于結(jié)構(gòu)簡(jiǎn)單、內(nèi)容規(guī)律的高校、新聞等網(wǎng)站,該方法表現(xiàn)優(yōu)秀;對(duì)于結(jié)構(gòu)復(fù)雜、內(nèi)容繁雜、變化頻繁無規(guī)律的論壇、博客、視頻等網(wǎng)站,該方法表現(xiàn)稍有欠缺。總的來說,所提方法對(duì)大規(guī)模網(wǎng)站的更新監(jiān)測(cè),具有一定可行性,為網(wǎng)站更新監(jiān)測(cè)領(lǐng)域提供了一個(gè)新的方案。本文提出的改進(jìn)LCS算法,一定程度上提高了網(wǎng)站更新的查準(zhǔn)率,保證了網(wǎng)站更新的準(zhǔn)確性、全面性,提高了用戶的使用體驗(yàn)和效率。但本實(shí)驗(yàn)的測(cè)試網(wǎng)站數(shù)量較少、實(shí)驗(yàn)環(huán)境和配置簡(jiǎn)單、未采取分布式爬蟲,對(duì)實(shí)驗(yàn)結(jié)果有一定的影響,這將是進(jìn)一步的研究方向。

[1] 曹建勛, 劉奕群, 岑榮偉, 等. 基于用戶行為的色情網(wǎng)站識(shí)別[J]. 計(jì)算機(jī)研究與發(fā)展, 2013, 50(2): 430-436.

[2] Fetterly D, Manasse M, Najork M, et al. A large-scale study of the evolution of Web pages[J]. Software-Practice and Experience, 2004, 34(2): 213-237.

[3] Ma D. Use of RSS feeds to push online content to users[J]. Decision Support Systems, 2012, 54(1):740-749.

[4] Vawter E. Rss explosion in chemistry and science[J]. Searcher, 2006, 14(4): 33-36.

[5] Nagy P, Daly M, Warnock M, et al. Using RSS feeds to track open source radiology informatics projects[C]//Medical Imaging. The International Society for Optics and Photonics, 2005: 282-285.

[6] Nanno T, Okumura M. HTML2RSS: automatic generation of RSS feed based on structure analysis of HTML document[C]//Proceedings of the 15th International Conference on World Wide Web. ACM, 2006: 1075-1076.

[7] 荊明明. 基于Android的個(gè)性化RSS訂閱系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[D]. 哈爾濱:哈爾濱工業(yè)大學(xué), 2011.

[8] 張睿涵. 基于RSS的聚焦網(wǎng)絡(luò)爬蟲在高校網(wǎng)站群中的研究[D]. 南昌:南昌大學(xué), 2012.

[9] 王大偉, 張巖, 曾皓, 等. 一個(gè)預(yù)測(cè)網(wǎng)頁(yè)變化的增量式更新模型[J]. 微計(jì)算機(jī)信息, 2009(6): 153-154,130.

[10] Nakatsu N, Kambayashi Y, Yajima S. A longest common subsequence algorithm suitable for similar text strings[J]. Acta Informatica, 1982, 18(2): 171-179.

[11] Needleman S B, Wunsch C D. A general method applicable to the search for similarities in the amino acid sequences of two proteins[J]. Journal of Molecular Biology, 1970, 48: 444-453.

[12] Ullman J D, Aho A V, Hirschberg D S. Bounds on the complexity of the longest common subsequence problem[J]. Journal of the ACM (JACM), 1976, 23(1): 1-12.

[13] Hirschberg D S. Algorithms for the longest common subsequence problem[J]. Journal of the ACM (JACM), 1977, 24(4): 664-675.

[14] 李欣, 舒風(fēng)笛. 最長(zhǎng)公共子序列問題的改進(jìn)快速算法[J]. 計(jì)算機(jī)應(yīng)用研究, 2000, 17(2): 28-30.

[15] 毛先領(lǐng), 何靖, 閆宏飛, 等. 網(wǎng)頁(yè)去噪: 研究綜述[J]. 計(jì)算機(jī)研究與發(fā)展, 2010, 47(12): 2025-2036.

[16] Gibson D, Punera K, Tomkins A. The volume revolution of Web page templates[C]//Proceedings of the 14th International Conference on World Wide Web. New York: ACM, 2005: 830-839.

[17] Cai D, Yu S, Wen J R, et al. Extracting content structure for web pages based on visual representation[C]//Proceedings of the 5th Asia-Pacific Web Conference on Web Technologies and Applications. Springer, 2003: 406-417.

[18] Song R, Liu H, Wen J R, et al. Learning block importance models for web pages[C]//Proceedings of the 13th International Conference on World Wide Web. ACM, 2004: 203-211.

[19] Cai D, Yu S, Wen J R, et al. VIPS: A vision-based page segmentation algorithm[R]. MSR-TR-2003-79, Microsoft Technical Report, 2003.

[20] Yu S, Cai D, Wen J R, et al. Improving pseudo-relevance feedback in web information retrieval using web page segmentation[C]//Proceedings of the 12th International Conference on World Wide Web. ACM, 2003: 11-18.

WEBSITE UPDATE MONITOR BASED ON WEB CRAWLER AND IMPROVED LCS ALGORITHMS

Zhou Xiaoke1Guo Kehua1,2

1(SchoolofInformationScienceandEngineering,CentralSouthUniversity,Changsha410000,Hunan,China)2(HighDimensionalInformationIntellisenseandSystemKeyLaboratoryoftheMinistryofEducation,Nanjing210094,Jiangsu,China)

With the explosive growth of information in Internet era, customers need to get the required information conveniently and timely. Traditional search engine and website subscription represented by RSS couldn’t satisfy the users’ high equality demand due to their disadvantages. Based on this, a new universal method of website update detection and subscription based on web crawler and text contrast is proposed. After analyzing and processing the successive webpage content, the proposed method would contrast the text, update contents and return the structured results to users. Experiment results show that this method conquers the difficult of RSS subscription’s feed limit, and makes it possible to add subscription on one’s own. It also got good performance upon university,enterprise,news,video,blog,forum websites etc.

Web crawler Noise reduction in web pages Website subscription Text contrast Update detection

2015-11-12。國(guó)家自然科學(xué)基金項(xiàng)目(61202341);高維信息智能感知與系統(tǒng)教育部重點(diǎn)實(shí)驗(yàn)室創(chuàng)新基金項(xiàng)目(JYB201502);科技部國(guó)家國(guó)際科技合作專項(xiàng)項(xiàng)目(2013DFB10070);湖南省創(chuàng)新平臺(tái)專項(xiàng)項(xiàng)目(2012GK4106);中南大學(xué)創(chuàng)新驅(qū)動(dòng)計(jì)劃;中南大學(xué)升華育英計(jì)劃。周孝錁,碩士生,主研領(lǐng)域:Web推薦,透明計(jì)算。郭克華,副教授。

TP391

A

10.3969/j.issn.1000-386x.2017.01.041

猜你喜歡
文本用戶系統(tǒng)
Smartflower POP 一體式光伏系統(tǒng)
WJ-700無人機(jī)系統(tǒng)
ZC系列無人機(jī)遙感系統(tǒng)
在808DA上文本顯示的改善
基于doc2vec和TF-IDF的相似文本識(shí)別
電子制作(2018年18期)2018-11-14 01:48:06
連通與提升系統(tǒng)的最后一塊拼圖 Audiolab 傲立 M-DAC mini
關(guān)注用戶
商用汽車(2016年11期)2016-12-19 01:20:16
關(guān)注用戶
商用汽車(2016年6期)2016-06-29 09:18:54
關(guān)注用戶
商用汽車(2016年4期)2016-05-09 01:23:12
文本之中·文本之外·文本之上——童話故事《坐井觀天》的教學(xué)隱喻
主站蜘蛛池模板: 伊人久久婷婷| 一级香蕉人体视频| 亚洲h视频在线| 98超碰在线观看| 日韩精品毛片人妻AV不卡| 热99re99首页精品亚洲五月天| 亚洲日韩精品欧美中文字幕| 国产va免费精品| 国产亚洲欧美日本一二三本道| 久久午夜夜伦鲁鲁片无码免费| 免费无码AV片在线观看中文| 亚欧美国产综合| 欧美特黄一级大黄录像| 免费又黄又爽又猛大片午夜| 99热这里只有精品免费| 久久久久久午夜精品| 国产原创第一页在线观看| 国产剧情一区二区| 国产一区二区三区视频| 国产一级精品毛片基地| 精品视频一区在线观看| 丁香六月激情婷婷| 新SSS无码手机在线观看| 亚洲第一黄色网| 亚洲成a∧人片在线观看无码| 日本精品视频一区二区| 韩国v欧美v亚洲v日本v| 国产欧美精品午夜在线播放| 国产精品亚洲а∨天堂免下载| 91精品专区国产盗摄| 午夜国产大片免费观看| 国产精品短篇二区| 97成人在线观看| 亚洲一区色| 欧美视频在线观看第一页| 色悠久久综合| 91久久青青草原精品国产| 天堂成人在线| 美女内射视频WWW网站午夜| 97国产精品视频自在拍| 日韩黄色大片免费看| 热久久国产| 无码乱人伦一区二区亚洲一| 五月激激激综合网色播免费| 精品国产女同疯狂摩擦2| 999精品色在线观看| 亚洲国产清纯| 欧美a级在线| 老色鬼久久亚洲AV综合| 中文字幕免费视频| 丁香六月激情婷婷| 囯产av无码片毛片一级| 91青草视频| 国产JIZzJIzz视频全部免费| 麻豆国产精品一二三在线观看| 亚洲男人的天堂在线| 中文字幕伦视频| 日本高清免费一本在线观看 | 国产成人亚洲综合a∨婷婷| 久久综合亚洲色一区二区三区| 欧美亚洲香蕉| 日韩AV无码免费一二三区| 精品人妻一区二区三区蜜桃AⅤ| 免费全部高H视频无码无遮掩| 91久久国产热精品免费| 国产极品美女在线播放| 久久一本精品久久久ー99| 91探花国产综合在线精品| 色婷婷在线播放| 97国产精品视频自在拍| 国产精品久线在线观看| 亚洲欧美日韩高清综合678| 免费观看欧美性一级| 2020最新国产精品视频| 青草娱乐极品免费视频| 国产精品蜜芽在线观看| 精品国产乱码久久久久久一区二区| 亚洲综合第一区| 国产精品区视频中文字幕| a级高清毛片| 亚洲乱强伦| 亚洲午夜天堂|