这是我研究网页切片算法的一个汇总想法。
之前我写过:一种面向搜索引擎的网页分块、切片的原理,实现和演示 ,随着工作的深入,逐渐碰到以下问题:
网页切片的粒度问题:
网页切片算法的目的不是精确找到所需要的内容,而是识别划分网页的各种功能区域,导航区,链接区,内容,页脚区和广告区等。
网页切片的网页对象:
互连网纱功能的网页大概有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函数的答案?