提取正文内容的Java类库:BoilerPipe

jopen 10年前

BoilerPipe是一个开源java类库,能从html中剔除广告和其他附加信息,提取出目标信息,如正文内容。可以通过配置不同的extractor来extract目标内容。

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

首先来看下Boilerpipe的包结构:

提取正文内容的Java类库:BoilerPipe

boilerpipe,根目录

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

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

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

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

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

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

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

调用关系图示: 

提取正文内容的Java类库:BoilerPipe


 

项目主页:http://www.open-open.com/lib/view/home/1403573213920