信息采集及开源Boilerpipe简介

来源:互联网 发布:ubuntu配置ip地址命令 编辑:程序博客网 时间:2024/05/16 04:55

信息采集及开源Boilerpipe简介

敖立翔


信息采集


信息采集部分是與情分析系统的先导部分,负责抓取各个网站的與情信息,并进行初步的分析处理,去除网页中无关信息,提取标题、来源、作者、发布时间、正文等有用信息,作为之后與情分析的基础。由于信息采集部分是整个與情系统唯一的信息源,其好坏可以直接影响系统的运行效果和程序效率。



一个好的信息采集系统须具备以下特点:



一、覆盖广泛的信息源。信息来源广泛意味着抓取既覆盖了各种类型的网站,如新闻门户,行业网站,交互型的论坛,博客等,也全面囊括了每种类型的大多数知名网站。这样才能保证系统获得整个网络丰富全面的信息。



二、快速及时的抓取效率。由于與情的实时性特点,快速获取网络上第一手信息显得尤为重要。



三、准确的信息预处理。预处理首先需要去除无关信息。在抓取到的网页文件中,既有與情分析所需要的有价值的信息,也有大量与正文无关的广告、链接等无关信息,无关信息既影响系统运行效率,又造成分析准确度下降,需及时去除。其次,预处理还需要提取标题、来源、作者、发布时间、正文等有价值的内容,以保证功能整个與情系统的功能完善。




关于Nutch


NutchApache的一个TopLevelProject,其目标是建立一个Java写成的开源搜索引擎,其强大的CrawlerSearcher功能可以很好地满足信息获取的需要。


我们的系统使用Nutch作为信息采集部分的基础,并在其之上完善以下功能:超链分析、编码识别、URL去重、锚文本处理、无关信息过滤、关键词抽取、正文及标题抽取、发布时间抽取、来源抽取、自动摘要。


Nutch等搜索引擎抓取的是整个网页,而对于與情分析来说,我们只关心当前网页的正文信息。通常,一个网页中正文信息只占整个网页的小部分(20%甚至更少),故大量信息都是我们不需要的。分析、处理、储存这些信息会带来大量额外的成本开支,并影响與情分析效果,故需要在Nutch抓取网页后,将网页存入数据库之前完成提取正文等我们需要的处理过程。1关于Nutch的分析介绍我们以后再续上,下面主要讲下Boilerpipe



Boilerpipe简介

Boilerpipe即我们需要的正文提取工具,其算法的基本思想是通过训练获得一个分类器来提取出我们需要的信息(如正文、发布时间等)。下面以正文提取为例说明其工作原理。


首先来看下Boilerpipe的包结构:

boilerpipe,根目录


document,文档包,定义了boilerpipe所处理文档数据类型,主要包括TextDocumentTextBlock。一个TextDocument即一个网页,由多个TextBlock构成。


lables,标签,每个TextBlock都有一个lable字段,表示该TextBlock的属性(如是不是正文)。


filters,过滤器,定义了多个过滤器,过滤器的作用即对TextBlock进行过滤,使用机器学习、统计、启发式方法等数据挖掘算法判断哪些TextBlock是所需要的(正文段),给TextBlock加上lable,去除无关的TextBlock


saxSAX解析器,定义了从各种来源获取并解析网页的方法。


extractors,提取器,提取流程的入口。每个extractor都定义了自己的提取方法,通过调用不同的filter达到不同的处理效果。


conditions,条件判断,判断一个TextBlock是否满足特定的条件。


estimators,评估器,评估一个extractor对特定document的提取效果。


调用关系图示:



以上即Boilerpipe的简单介绍。我们接下来的工作是完成Boilerpipe的功能添加,并把Boilerpipe作为一个插件加入到Nutch中,以完成信息采集部分的工作。



原创粉丝点击