這是我研究網頁切片演算法的一個匯總想法。
之前我寫過:一種面向搜尋引擎的網頁分塊、切片的原理,實現和示範 ,隨著工作的深入,逐漸碰到以下問題:
網頁切片的粒度問題:
網頁切片演算法的目的不是精確找到所需要的內容,而是識別劃分網頁的各種功能區域,導航區,連結區,內容,頁尾區和廣告區等。
網頁切片的網頁對象:
互連網紗功能的網頁大概有2種類型,目錄型和內容型;隨著搜尋引擎的發展,網站結構逐漸向扁平化的方向發展,車東 對此也做出了資料驗證,而且隨著顯示器解析度的不斷提高,內容和目錄結合型的網頁呈增加趨勢,天極的網頁涉及,可以說是其中的典範。
網頁切片演算法的對象應該是針對:內容型和內容目錄混合型。對不同網頁,應該有個識別演算法,應該包括哪些標準?
網頁內容區最大範圍識別:
從切片的粒度可以看出,應該把內容區作為一個部分單獨切出來。根據一般的網頁設計規律,一般有2種容納內容區的方式:1、包含型(如blog ) 2、並列型(如bbs文章)。
如果處理分頁的內容型網頁:
現在大多數網站為了改善使用者體驗和增加頁面展示次數的需要,對網頁做了分頁處理,這部分需要設別出來。
無意間看到了:VIPS:基於視覺的Web頁面分頁演算法 ,從理論上證明了這種方法的可行性。可是實現起來有很多障礙,正如這位所說的:
蝸牛 發表於2006-02-21 12:40 AM IP: 220.184.129.*
我那天用浮動的<div>用絕對位置定位代替<table>定位,並且在用戶端的JavaScript中動態排列。用戶端的對象用指令碼動態產生插入。
弄死他。看他怎麼分析。
這樣的演算法太依賴於具體實現了,很難有好的解決辦法。
況且,現在依賴用戶端指令碼展現動態表現力慢慢開始流行,這個演算法很難適應未來的潮流。
就拿最簡單的,我有一個類似於OutLook工具條的頁面風格,都是指令碼產生的,我看他怎麼分析!
視覺分析只能落腳到視覺上,只能對頁面的靜態畫面作分析才能得到正確的條塊分割,分割條塊是容易的簡單演算法就能做到,但是要把這些內容歸結到分割到的條塊是難的。
好的辦法只有一個,類比滑鼠擊鍵,擊鍵處的對象返迴響應,這在IE能夠實現的。這樣才能取得分割好條塊後的對象歸屬。
我怎麼想都覺得我的簡單演算法都要比文中的演算法強多了。
視覺依靠畫面分割條塊,很簡單,對空白進行膨脹-縮小演算法,這樣留白就能逐漸清晰出來,文字就模糊了。然後作模糊處理,然後用一個亮度閾值把圖片轉換成二值圖,然後作一個向量化處理,留下線條。歸結到90度和0度上去,得到一個條塊分割的向量圖。
然後,每一塊中按照密度用滑鼠點擊類比獲得對象!這樣就可以完成了條塊歸納了。
幹嗎要分析HTML呢?情況多得很,根本分析不過來。
我目前的進展是:可以識別 導航區、連結區、頁尾區。
對內容區的分析是個痛點,鑒於我自己的需要,只要找到最大的內容區就可以了。
這段時間對演算法的一個體會就是,演算法就是解決特定問題的方法。教科書上的演算法大都是最一般性,常用性的方法的說明。
套句俗話,能解決實際問題的方法就是好方法。但能把我們解決的問題用數學模型表達出來仍是一個不斷提高演算法水平的基本要求。
感興趣的可以看看: primary number hitched 42 就是生命、宇宙和zeta函數的答案?