基于分块的网页内容提取算法的研究

时间:2022-09-21 11:45:37

基于分块的网页内容提取算法的研究

摘要:目前针对于网页分块的正文提取方法很多。一些学者提出,利用标签的数量来判断目标网页采用何种标签对网页进行结构布局,然后针对某一单一标签,对网页进行分块,这种方法针对与大多数利用标准化XHTML排版的网页是可行的,但是对于很多利用松散标准的HTML网页,其排版布局的标签分布不均,很难准确的提取正文内容;利用预先设置的搜索窗口,准确的分离正文段落和相邻的非正文段落。

关键词:网页正文提取 分块 网页标题 网页

中图分类号:TP301.6 文献标识码:A 文章编号:1007-9416(2012)12-0099-03

1、引言

一般而言,一个网页包含的内容是极其丰富的,具体说来有网页标识、网页正文标题、网页正文信息、关键字、与主题内容相关的链接、与主题内容无关的链接、广告、留言板等。在这些组成部分中,网页正文标题和网页正文信息是用户所关心的内容,一般情况下,这两部分信息足以满足用户的信息需求,我们称之为主题信息。其他的内容多不是一般用户所关心的部分,有些时候还可能影响用户的浏览体验,我们称这些信息为非主题相关信息。

对于一般用户,浏览某个新闻网页,首先关注的是该网页的正文标题,如果对该标题感兴趣,才会对后面的正文段落进一步阅读。究其原因,主要是网页的正文标题对网页中主题信息具有高度的概况作用,其通常位于网页结构的中前部。网页的正文标题和网页的正文信息相互配合,使得用户可以对网页的主要内容充分把握、理解,而与主题内容相关的链接是对主题内容的进一步扩展,引导用户进行更深层次的内容探索。有些网页,除了包含相关信息的链接,还包含针对链接信息的简要说明,这部分内容可能使得在正文提取过程中,主题内容的漂移,如果该链接与主题内容无关,那么其信息漂移的程度会很大,极大的影响用户的浏览体验。

因此,网页正文提取的主要目标就是为了从目标网页中准确的提取正文标题、和正文内容。去除其他非相关链接、广告、产品信息、留言板等噪声信息。将提取的内容重新排版呈现给用户,方便用户的体验。

2、基于分块的网页正文提取算法

目前针对于网页分块的正文提取方法很多。一些学者提出,利用标签的数量来判断目标网页采用何种标签对网页进行结构布局,然后针对某一单一标签,对网页进行分块,这种方法针对与大多数利用标准化XHTML排版的网页是可行的,但是对于很多利用松散标准的HTML网页,其排版布局的标签分布不均,很难准确的提取正文内容;还有一些文献中提出采用标题提取网页正文,这种方法的出发点很简单,通过一些正则表达式,快速的提取网页的正文标题,然后将标题以下的若干内容作为网页的正文内容,使用该方法不需要详细的分析HTML文档的结构,实现起来非常简单,但是在准确率上问题非常突出,因为很难把握网页正文标题和正文内容之间的距离,以及正文内容的大小,实际应用中,经常是找到正文的标题,却没有找到相关正文,或者找到了正文标题和正文内容,还将其他非相关的大量内容包含其中。因此,本文针对前人提出的算法的优缺点,利用神经网络模型处理后的结果,提出一种改进的基于分块的网页正文提取算法。利用预先设置的搜索窗口,准确的分离正文段落和相邻的非正文段落。

一般而言,网页分为三种类型:主题型网页,通常情况下,主题型网页利用大量的成段的文字描述一个或多个主题,尽管其中会出现图片和链接,这些图片和链接是包含在成段的文字之中,描述主题内容的;图片型网页,这种类型的网页通常情况下,也包含主题标题,但是对标题的解释通常仅仅采用图片的方式,很少有文字的描述;目录型网页,这种类型的网页往往是导航比较多的首页,包含大量的主题链接。本文主要研究,针对于中文的主题型网页的正文提取算法,在主题网页中,由于文字信息的成堆出现,其在视觉上可以被看为一个内容块,因此我们希望将这些块状内容提取出来。

视觉上,一个具体的网页是由若干内容块组成,分析网页的HTML源码,我们发现,这些内容块由一些容器标签划分。如前所述,这些容器标签主要是一些结构布局标签,如、、等。目前,观察主流门户网站的新闻网页,我们发现大多数的新闻网页的正文标题和正文内容的布局存在三种情况:一种情况是,网页的正文标题和正文内容存在于同一个内容块中,如图1(a)所示;另一种情况是,网页的正文内容处于正文标题的下一级块中,如图1(b)所示;最后一种情况是网页的正文标题和正文内容处于不同的块中,如图1(c)所示。我们发现这三种情况,都具有一个共性,即网页的正文内容始终处于网页正文标题之下,并且正文标题和正文内容之间都是一些简短的注释,尽管有的网页,这两部分内容处于不同的块,但是其间的代码非常简短。如果我们找到某个主题型网页的正文标题,从正文标题开始出发,最先出现的正文行即可能是我们需要提取的正文行的开始部分。由于网页的正文段文字比较密集,文本行正文特征比较明显,其正文标记区应该是比较连续了,通过一个滑动窗口,可以将这些相对连续的正文行整体提取出来。由此我们提出我们正文提取的思路,如图2所示:

3、网页正文标题提取

根据网站的风格不同,网页的标题格式也迥异。一般情况下,某个网页的正文标题在网页的头部就被包含了网页源码中,最先出现的正文标题是在头部的标签中出现的,具体表现是“地方碰调控红线三日游 中央摁住地方‘小动作’-新闻中心-搜狐焦点网”。其中“-”之前是该网页的正文标题,之后是网页的子索引。我们观察其他主流门户网站,针对与新闻网页,基本上所有的正文标题都在头部的标签中展现。而在HTML文档的主体部分中,同样的正文标题还可能重复出现,其出现的方式各异,有的出现在标题标签中,有的出现在导航链接中,还有的出现在正文段落每段文字之后。总的说来,主体部分正文标题出现的情况不一,很难把握其规律,而网页头部的正文标题布局规律单一,比较容易提取。因此我们针对几个主流的门户网站HTML源码头部字段的标签,采用正则表达式匹配正文标题,其正则表达式如下所示:

其中中括号[]中的内容表明子索引的连接符,([^

如此,我们便可以找出HTML文档的正文标题。由于HTML文档中标签总是出现在开始的头部字段,因此上述查询标题的程序复杂度很小,即如果搜索到第一个标签,就可以停止搜索。

4、网页正文内容提取

我们发现正文标题和正文内容分布具有一定的规律性,如图1所示,利用此规律,如果我们找到网页的正文标题,从正文标题开始出发,最先出现的正文行即可能是我们需要提取的正文行的开始部分。本小节借鉴传统的基于分块和视觉提取技术的思想,利用一个可变的滑动窗口,对HTML正文内容进行提取。其基本的思想如图3所示:(如表1)

首先我们利用BP神经网络模型,对网页的HTML源码段的每行文本进行标记,图3中红色透明字段为标记为真的正文行。首先在HTML文档的头部字段利用正则表达式搜索到正文标题“地方碰调控红线三日游中央摁住地方‘小动作’”。然后以该正文标题为关键字对HTML主体部分开始搜索,搜索到真正的标题所在行如图3(c)所示;然后我们采用一个长度为45行的窗口,从该标题行开始,从上到下一次遍历HTML文本,当遇到第一个正文行时,我们将其标记为第一块正文段的开始行,如图3(d)所示,然后继续搜索,如果在连续45个文本行内没有正文行出现时,那么最后出现的正文行为该正文块的结束行,如图3(e)所示。以次类推,往下继续搜索,直到完成对所有文本行的遍历。在我们这个样例中,一共提取出两个正文块。第一块为我们期望得到的正文行,第二块为一些与主题无关的注释。最后我们采用一定的判断策略,选择最优的正文块,作为我们的提取结果,在这里我们选择包含字节数最多的正文块。

对BP神经网络模型和基于分块的改进算法进行了实验对比,我们发现后则的准确率明显高于前者。其实改进算法中的窗口大小事可以动态改变的,如果窗口大小选择合适,可以更优于正文提取的准确率。

5、结语

本文主要提出采用一个加窗口的分块算法,对其进行必要的改进。我们首先分析了主流门户网站正文标题和正文内容的分布特点,得出一个基本的结论,即HTML主体部分的正文标题和正文内容间隔的距离很近。然后我们的出发点是如何快速搜索到文档的正文标题,观察大量的网页,我们发现,在文档的head部分的,总会存在一个标签,正文的标题一般都嵌于其中。因此我们采用正则表达式,可以迅速的在文档head部分匹配正文标题。接着重新对HTML文档进行遍历,快速定位body部分的正文标题行,以此为基础,采用一个滑动窗口,搜索文档中的正文块,最后我们利用简单的选举策略,可将期望正文块从若干分块中提取出来。

上一篇:基于物联网的智能家居控制系统的设计研究 下一篇:嘉兴技师学院等理事资讯7则