一个RSS级别的网页主题内容抽取方法与系统

点赞:14304 浏览:59122 近期更新时间:2024-02-14 作者:网友分享原创网站原创

[摘 要 ]提出一个RSS级别的网页主题内容抽取方法与系统,利用RSSfeed中的少量entry信息训练得到主题内容模板,通过模板可以对RSSfeed下的所有网页进行主题内容抽取.该方法支持分别抽取网页的标题、正文、类别等信息;另外,该方法有自适应机制,能实时侦测模板的变化.从实验结果来看,该方法和系统有很高的召回率和准确率.

[关 键 词 ]网页主题内容抽取RSS模板

自适应机制

[分类号]TP393 G250.7

1 简介

互联网的高速发展使发布的信息量急速膨胀.在网页中,为了增强用户友好性,加入了导航链接、脚本程序、相关文章等以及出于商业因素加入广告链接,这些与主题内容无关的信息称为噪音信息.噪音信息占据着一半以上的内容,并且随着时间稳定增长.去除这些噪音信息、抽取出网页的主题内容,在很多方面都有应用.在搜索引擎中,可以改进搜索引擎的索引模块和检索模块,如改进PageRank算法;另外可以使移动终端直接访问网页内容,如手机、掌上电脑等,由于目前的网页是针对Pc机设计的,而移动终端屏幕小,无法直接访问这些页面,为了解决这个问题,要么手工编辑适用于移动终端的页面,要么抽取网页主题内容,自动生成适用于移动终端的页面.

对于网页主题内容抽取,国内外都进行了大量的研究,目前的抽取方法分为两类:一类属于网站级别,另一类属于网页级别.

网站级别的算法就是分析一个网站中的部分网页,找出其中重复出现的内容模式,一般来说,这些内容就是噪音信息,然后把这些模式应用于网站的所有网页,网页内容减去噪音信息,就是网页的主题内容.网站级别的算法有两个局限性:①只能识别一部分噪音模式,比如大多数网站有多套模板,这种方法只能识别出这些模板的交集;②如果用于计算噪音模板的那部分网页不具有代表性,会导致错误,这种情况在网站大量网页没有被抓取下来的情况下可能发生.

网页级别的算法一般首先通过机器学习获取主题内容的特性,然后分析每个网页,取出最符合主题内容特征的模块,从而抽取主题内容.网页级别的算法没有网站级别算法的局限性,但是它也有两个缺点:①这种算法需要分析每个网页,所以效率不高,特别是对于大型网站;②因为抽取前需要通过机器学习获取主题内容特性,所以需要全面的样本数据,在实现上有一定的难度.

2 相关研究

网站级别算法方面,文献[4]为网页构建了一个样式树,用它作为判断主题内容的元数据.文献[5]中使用正则表达式来提取重复模式,从而更适应网页间的细微变化,增加了召回率.

网页级别算法方面,文献[6]中通过训练得到主题内容的链接/文本比、文本长度等特征,从而实现网页的主题内容抽取;文献[7]中首先根据标签ta―ble、p、hr、ul、div、span,把网页分成一些子块,然后抽取出这些子块的特征,最后通过机器学习训练出判断主题内容的分类器.文献[8]的不同之处在于训练集的构建,它首先通过网站级别的算法获取网页的噪音信息模板,然后对噪音信息模板对应的节点提取分类特征,比如文本向量、链接的平均字数、链接文字所占比例等,最后利用这些样本数据训练分类器.

网站级别的算法和网页级别的算法有其自身的优点,但是也有明显的缺点.近年来,RSSt作为新的信息发布技术迅速流行起来,从网页结构上看,同一个RSS feed下的网页一般具有高度一致的网页结构.文献[10]提出了RSS级别的主题内容抽取算法,但是它没有利用RSS提供的元信息,而是通过比较同一个RSS feed下的不同网页的字符串信息来找到主题内容模板,有两个缺点:①一般网页比较大,导致效率不高;②网页会有一些随机生成的内容,如相关文章,这些通过字符串比较无法消除.基于此,本文提出了一个RSS级别的网页主题内容抽取方法与系统,它利用RSS元信息来训练主题内容模板,通过模板可以对feed下的所有网页进行主题内容抽取.该方法支持分别抽取网页的标题、正文、类别等信息;另外,本文还提出了一个自适应机制,它能实时侦测模板的变化,能够及时修正主题内容抽取错误.

一个RSS级别的网页主题内容抽取方法与系统参考属性评定
有关论文范文主题研究: 关于模板的论文范本 大学生适用: 大学毕业论文、学士学位论文
相关参考文献下载数量: 43 写作解决问题: 怎么撰写
毕业论文开题报告: 论文提纲、论文前言 职称论文适用: 技师论文、职称评初级
所属大学生专业类别: 怎么撰写 论文题目推荐度: 经典题目

3 RSS介绍

RSS技术是目前被广泛采用的Web信息发布技术,一个RSS文件就是一个RSS feed,它表示一类网页元信息的集合.RSS feed是一个xml文件,文件包含若干最近更新的entry信息,包括标题元信息、正文元信息、类别元信息等.相对于RSS feed,entry信息就是网页的元信息,一般一个RSS feed会保留最近更新的几个entry信息.

以一个门户网站为例,显示网站、频道以及RSSfeed之间的关系,如图1所示:

4 系统框架

本文提出的系统包括RSS爬虫模块、feed解析模块、网页下载模块、模板生成模块、主题内容抽取模块、模板验证模块,系统框架如图2所示:

RSS爬虫模块:这个模块负责收集feed URL,它与普通网页爬虫的不同之处是,在处理网页的时候步骤如下:①如果网页是xml文件,判断它是否符合RSS格式,如果符合,表明这是一个feed;②如果是文件,检查head标签下是否有link子标签,并且type属性值是“applieation/rss+xml”或者“application/atom+xml”,如果有,找到其href属性值,这个属性值就是一个feed URL.

feed解析模块:该模块负责解析feed,得到所有entry信息,包括entry的地址、标题元信息、正文元信息、类别元信息等;另外,该模块还负责侦测各个feed是否有更新,及时解析更新entry信息.

网页下载模块:该模块根据entry地址下载内容.为了避免短时间内频繁访问某个特定怎么写作器,这个模块需要考虑访问各个怎么写作器的间隔.

模板生成模块:该模块是框架中的核心模块,它选取最近更新的少量entry信息以及对应的网页,通过定位entry信息在网页中的位置得到模板,模板用XPath表示,例如通过entry标题元信息得到标题模板、通过正文元信息得到正文模板、通过类别元信息得到类别模板.选择entry的个数可以动态配置.

主题内容抽取模块:该模块通过生成的模板对feed下所有的entry进行主题内容抽取,例如通过标题模板抽取标题内容、通过正文模板抽取正文内容、通过类别模板抽取类别内容.

模板验证模块:该模块通过验证feed中最近更新的entry信息和抽取出的主题内容的相似度来监控模板的变化,如果验证失败,通知模板生成模块重新生成模板,所以框架具有自适应性.

5 模板生成算法

通过详细分析W3C制定的HTML4.01格式规范,给出如下定义: 块标签集合:Bs等于(“DIV”,“TD”,“TABLE”,“TR”,“FORM'’,“CENTER”,“PRE”)

标题标签集合:HS等于(“Hl”,“H2”,“H3”,“H4”,“H5”,“H6”)

字体加重样式标签集合:Es等于(“b”,“big”,“em”,“strong”)

node的BIS集合:{inode I inode是node的子节点,并且inode属于Bs}

模板生成的主要思想是定位enry信息在网页中的位置,下面详细描述了正文模板和标题模板的生成算法,其他模板的生成算法与此类似.在模板生成之前,首先要对网页进行预处理.为网页构建DomTree,并去除jascript等无用信息.

5.1 正文模板生成算法

一般而言,正文元信息是实际正文的一个片断或者概括性的描述,所以正文模板的生成需要计算文本的相似度.方法如下:①对entry正文元信息抽取文本信息,并对文本信息分词,得到单词列表rssWordList;②设定侦测起始节点initNode等于DomTree的body节点;③计算initNode的BIS集合is;④如果len(is)等于1,initNode等于is[O],回到③;否则到⑤;⑤对于is里的每个node,计算rssWordList与node包含文本的相似度,取相似度最高的节点rihtNode匹配的单词列表rightWordList以及对应的最高相似度s,如果s大于一个阈值,则到⑥;否则返回侦测失败;⑥计算righNode的BIS集合rs;⑦如果len(rs)等于1,rightNode等于rs[0],回到⑥;否则到⑧;⑧遍历rs中的node,计算rightWordList与node包含文本的相似度,如果有node的相似度大于一个阈值,rightNode等于node,回到⑥;如果没有对应的node,计算rightNode的XPath(就是正文模板),返回XPath.

步骤①对正文元信息的文本进行分词;步骤④和步骤⑦主要是为了减少计算次数,因为如果只有一个子节点,不需要判断正文模板在哪条路径上;步骤②一⑤是从根节点往下,第一次对正文模板路径做判断,判断方法是计算子节点文本与正文元信息的相似度,找出相似度最高的一个,如果最高相似度小于阈值,则无法找到正文模板;步骤⑥-⑧是从上而下逐层递归判断正文模板路径,最后找到节点的所有子节点包含的文本与正文元信息的相似度都小于阈值,则该节点对应的XPath就是正文模板.

5. 2标题模板生成算法

对于标题模板而言,标题元信息一般就是实际标题或者是实际标题的一部分,但是在网页中可能有多个节点包含标题元信息,所以怎样从这些节点中找到正确的节点是标题模板生成算法的关键.方法如下:

遍历DomTree,找到包含标题元信息的节点集合.

如果节点集合长度大于1,按以下规则过滤,规则顺序表示优先级由高到低:①优先考虑标签属于HS的节点;②优先考虑标签属于Es的节点;③优先考虑与标题元信息严格匹配的节点;④过滤标签是Ii的节点;⑤过滤标签是p的节点.

6 实验和分析

实验中使用RSS爬虫模块收集到的feed,共计12 331个,分别来自WWW,sohu,corn,,sina,省略..省略..省略..省略网站.然后通过RSS解析模块得到202961个entry,具体分布图如表1所示:

6.1

训练模板使用entry数目与模板生成率

训练模板使用entry数目与模板生成率之间的关系如图3所示:

从图3可以看出,使用三个以上entry来训练模板,可以为所有feed生成模板.笔者分析在使用1个和2个entry训练模板时的失败案例,发现下面两种情况不能在网页中定位RSS信息:①网页已经被删除,Web怎么写作器返回出错页面,但是返回的是正确的http返回值,网页下载模块不能分辨;②网页中存在解析器无法识别的编码,从而在构建DOM树时失败.

6.2 正确率和召回率

正确率和召回率的公式如下:

召回率Recall等于NExtracted/NCorDus

(1)

正确率Precision等于NCorrect/NExtracted

(2)

NExtracted指抽取出主题内容的网页数目,NCor-pus指所有网页数目,NcDorrect指通过验证、正确抽取出主题内容的网页数目.因为网页数目太大,笔者只是在每个网站中选取100个网页进行了人工验证.

实验网站的系统召回率和正确率如表2所示:

从表2可以看出,所有网站的召回率是100%,说明feed下面的网页结构有着高度的一致性,通过几个entry元信息生成的模板确实能够表示整个feed的模板;另外系统也有很高的正确率,只有sina和tianya网站的几个网页内容抽取出现了差错.通过分析,出现错误的原因是选择生成模板的网页包含很多图片,只有极少数文字,从而导致生成的模板出现了错误,但是模板验证模块会发现这个错误,它会通知模板生成模块重新生成模板.如果feed信息随着时间更新,模板生成模块会选择合适的entry生成正确的模板.

6.3 模板分析

笔者通过分析生成的模板,发现网站级别的算法和网页级别的算法都有着本质上的弱点.网站的正文模板数如表3所示:

由表3可以看出,每个网站都有很多模板,其中si―na有182个,所以从网站级别来看,很难找到一个统一的模板过滤掉所有噪音信息.标题模板的标签分布如表4所示:


由表4可以看出,仅标题的标签特征就有12种,所以就网页级别的算法而言,很难训练出一个统一的特征来抽取标题内容.

7 总结

精确抽取网页主题内容在很多方面都有着重要应用,本文提出了一个RSS级别的网页主题内容抽取方法与系统,该方法利用少量RSS元信息来训练主题内容模板,通过模板可以对feed下的所有网页进行主题内容抽取.该方法支持分别抽取网页的标题、正文、类别等信息;另外,该方法有自适应机制,能实时侦测模板的变化.