通过随机抽取若干有代表性的固网与移动端的主流媒体来看,大多数的页面布局均具备一定特征可循,正文在网页中通常以两种方式来展现:
1.以标签的开闭区间静态值的方式来描述,
2.通过AJAX多次请求的方式懒加载。
提取操作时可以通过一种或几种算法的叠加应用来获取绝大多数网页的正文信息,从业务应用的角度上看,错误率在可接受方位内,不会对产品和业务产生实质性影响。
1、标签定位:
简单粗暴有效,但误判率比较高,在实际调用的时候应该辅助其他算法以提高准确性。
虽然可以准确地找到资源项,但却不能判定资源的价值属性
2、标签分布:
通过统计标签的分布密度可以一定程度的增加预测的准确性
但是,该算法对于超短正文的情况显然是无能为力,在实际使用阶段还应增加其他辅助手段
3、文本判别:
从标签开闭区间提取出来的文本串应首先判断其长度,无论是广告、资讯还是导航等信息,文字描述都是言简意赅,大段长篇的表述通常不会出现在这些区域位置中。
其次再对文本串的结尾符进行判断,一篇规范的段落或语句应以标点符号结尾,而菜单、导航、分类、超链等信息均不会出现这种情况
显然单一的文本判别算法也存在极端情况的不确定性。
4、DOM规范:
许多第三方开源的HTML解析库大多以HTML原始文件作为入参,以DOM树结构作为中间值,用户在定位资源的时候通过快速查询来找到想要的数据项。从DOM树状结构来看,各个节点之间存在父子或兄弟的对应关系,一个庞大的原始页面文件一旦找到标题与正文(红框部分)的节点,其余的噪音信息就非常容易去除了,某种程度上极大的缩小了文本处理范围,降低了计算压力和负载。
根据dom结构,算出正文最可能存在的div是哪一块。原先的思路是获取id或者class带有article属性的div,但是几乎每个网站的内容标签属性都不一致。后来根据多个网页的观察发现,现在大部分的网站正文部分都包含p标签,我们只需要找到包含最多p标签的那个最近的div就可以了。
5、关联计算:
某网站科技频道对苹果手机的点评文章,左侧图文为文章的正文部分,右侧为推荐、广告与导航,从内容的关联性角度来看二者毫不相关。通过词向量技术计算文本之间的余弦相似度,可以剔除语义上完全无关的语言群落,仅保留近似语义文本,达到正文提取的目的。
6、信息摘除
当前绝大多数的网站都已经加入到网盟广告或将自己的剩余流量售卖给广告交易平台用于盈利和变现。无论是网盟还是ADX,对于互联网广告的曝光位置和约束都是开放的,掌握了这些标准和规范(广告交易平台的域名、广告位ID、广告位尺寸、广告创意URL及信息、曝光点击及监测地址等),在大多数长尾流量的页面中都可以轻松识别出来,从而摘除与文章正文无关的信息。
7、视觉定位
站在网页浏览者的角度全局的审视网页的页面布局,通过判断各个内容项占据背景的位置、颜色、尺寸、乃至于字体字号等细节,分析预测页面的核心描述信息。
该算法相比前面提到的方法技术门槛较高,研发难度较大。
8、反向模板
是指经过上述一种或几种算法计算提取正文再得到验证以后,反向推导出该媒体下网页的标题与正文HTML的标签体系,并自动生成对照模板,以便未来根据模板解析页面,毕竟模板套取方式相比上述算法来的更加简单直接与高效。
9、文字密度:
剔除html的tag标签,然后去计算文字密度,提取文字密度最高的部分。
10、图像处理