這是我研究網(wǎng)頁切片算法的一個匯總想法。
之前我寫過:一種面向搜索引擎的網(wǎng)頁分塊、切片的原理,實(shí)現(xiàn)和演示,隨著工作的深入,逐漸碰到以下問題:
網(wǎng)頁切片的粒度問題:
網(wǎng)頁切片算法的目的不是精確找到所需要的內(nèi)容,而是識別劃分網(wǎng)頁的各種功能區(qū)域,導(dǎo)航區(qū),鏈接區(qū),內(nèi)容,頁腳區(qū)和廣告區(qū)等。
網(wǎng)頁切片的網(wǎng)頁對象:
互連網(wǎng)紗功能的網(wǎng)頁大概有2種類型,目錄型和內(nèi)容型;隨著搜索引擎的發(fā)展,網(wǎng)站結(jié)構(gòu)逐漸向扁平化的方向發(fā)展,車東 對此也做出了數(shù)據(jù)驗(yàn)證,而且隨著顯示器分辨率的不斷提高,內(nèi)容和目錄結(jié)合型的網(wǎng)頁呈增加趨勢,天極的網(wǎng)頁涉及,可以說是其中的典范。
網(wǎng)頁切片算法的對象應(yīng)該是針對:內(nèi)容型和內(nèi)容目錄混合型。對不同網(wǎng)頁,應(yīng)該有個識別算法,應(yīng)該包括哪些標(biāo)準(zhǔn)?
網(wǎng)頁內(nèi)容區(qū)最大范圍識別:
從切片的粒度可以看出,應(yīng)該把內(nèi)容區(qū)作為一個部分單獨(dú)切出來。根據(jù)一般的網(wǎng)頁設(shè)計規(guī)律,一般有2種容納內(nèi)容區(qū)的方式:1、包含型(如blog ) 2、并列型(如bbs帖子)。
如果處理分頁的內(nèi)容型網(wǎng)頁:
現(xiàn)在大多數(shù)網(wǎng)站為了改善用戶體驗(yàn)和增加頁面展示次數(shù)的需要,對網(wǎng)頁做了分頁處理,這部分需要設(shè)別出來。
無意間看到了:VIPS:基于視覺的Web頁面分頁算法 ,從理論上證明了這種方法的可行性?墒菍(shí)現(xiàn)起來有很多障礙,正如這位所說的:
我那天用浮動的 用絕對位置定位代替 定位,并且在客戶端的JavaScript中動態(tài)排列?蛻舳说膶ο笥媚_本動態(tài)生成插入。
弄死他?此趺捶治。
這樣的算法太依賴于具體實(shí)現(xiàn)了,很難有好的解決辦法。
況且,現(xiàn)在依賴客戶端腳本展現(xiàn)動態(tài)表現(xiàn)力慢慢開始流行,這個算法很難適應(yīng)未來的潮流。
就拿最簡單的,我有一個類似于OutLook工具條的頁面風(fēng)格,都是腳本生成的,我看他怎么分析!
視覺分析只能落腳到視覺上,只能對頁面的靜態(tài)畫面作分析才能得到正確的條塊分割,分割條塊是容易的簡單算法就能做到,但是要把這些內(nèi)容歸結(jié)到分割到的條塊是難的。
好的辦法只有一個,模擬鼠標(biāo)擊鍵,擊鍵處的對象返回響應(yīng),這在IE能夠?qū)崿F(xiàn)的。這樣才能取得分割好條塊后的對象歸屬。
我怎么想都覺得我的簡單算法都要比文中的算法強(qiáng)多了。
視覺依靠畫面分割條塊,很簡單,對空白進(jìn)行膨脹-縮小算法,這樣留白就能逐漸清晰出來,文字就模糊了。然后作模糊處理,然后用一個亮度閾值把圖片轉(zhuǎn)換成二值圖,然后作一個矢量化處理,留下線條。歸結(jié)到90度和0度上去,得到一個條塊分割的矢量圖。
然后,每一塊中按照密度用鼠標(biāo)點(diǎn)擊模擬獲得對象!這樣就可以完成了條塊歸納了。
干嗎要分析HTML呢?情況多得很,根本分析不過來。
我目前的進(jìn)展是:可以識別 導(dǎo)航區(qū)、鏈接區(qū)、頁腳區(qū)。
對內(nèi)容區(qū)的分析是個難點(diǎn),鑒于我自己的需要,只要找到最大的內(nèi)容區(qū)就可以了。
這段時間對算法的一個體會就是,算法就是解決特定問題的方法。教科書上的算法大都是最一般性,常用性的方法的說明。
套句俗話,能解決實(shí)際問題的方法就是好方法。但能把我們解決的問題用數(shù)學(xué)模型表達(dá)出來仍是一個不斷提高算法水平的基本要求。