-1-
面向面向面向
面向
DeepDeepDeep
Deep
WebWebWeb
Web
基于页面分块的信息抽取对象模型基于页面分块的信息抽取对象模型基于页面分块的信息抽取对象模型
基于页面分块的信息抽取对象模型
苗忠义 ,崔志明
(苏州大学 智能信息处理研究所,苏州 215021)
摘要:摘要:摘要:
摘要:
deepweb 的重要性已被公认,人们提出了很多信息抽取算法,开发了一些信息抽取
系统,但多是基于记录、字段级别,至今鲜有页面级信息抽取方法。基于此,文章提出一种
对象模型,将 deepweb 网页看作是由相互间紧密关联的语义块构成的有机整体,将DOM 树顺
序化,提出一种块定位方法,信息抽取时不仅关注块内信息,同时抽取块间关系。这样抽取出
的信息可以作为进一步数据挖掘的数据源。
关键词:关键词:关键词:
关键词:
信息抽取;deep web;页面分块
中图分类号中图分类号中图分类号
中图分类号
: TP311 文献标识码文献标识码文献标识码
文献标识码
: A
0 引言
随着互联网的发展,网页的数量以指数的形式增长,为了有效的利用网上的信息,人们发
明了搜索引擎,诸如:google、baidu等,这些公司短时间内的高速成长,证明了用户这方
面的强烈需求,但这些传统的搜索引擎也有自身的不足,催生了人们对 DeepWeb(相对于
Surface Web而言)的研究。据BrightPlanet公司技术白皮书[1],DeepWeb资源容量约为 Surface
Web的 500倍,而且包含着更多有价值的资源。据估计 2004年有 450,000个在线数据库,
而且还在快速增长[2]。如何利用这笔宝贵的资源,研究人员投入了大量的精力。
1 相关工作
网络上虽然有大量的网页,但它不像传统的文本那样整齐、干净,其中包含有一些噪
音内容,也不象关系数据库或XML文档存放的是结构化信息,因此用户在能够效利用这些
网页内容之前,进行信息抽取整合就是非常重要的一项工作。人们开发了很多信息抽取系统 ,
提出了许多信息抽取模型,做了大量的工作,取得了较好的效果。在文献 [3]中,作者将页
面结构相同部分称作模板(template),认为模板在网络上是普遍存在的。文献[4]中提出一种
通过对网页分块提取其中信息的办法,但只把信息块看作独立的存在,没有分析块与块、块
与页面之间的关系。[5、6、7、8、9、10]也都从各种不同的角度论述了页面分块在去噪、
正文信息抽取、web归档方面的应用,但都没有从整体角度看待一个网页,割裂了各语义块
之间的内在联系。还有基于视觉的信息抽取,典型代表就是微软亚洲研究院提出的VIPS[11]
(VIsion based Page Segmentation)算法,这种算法摆脱了半结构化的html代码本身在信息抽
取方面的制约,但却严重依赖浏览器,性能上存在较大问题。另一大类方法集中在
DOM(Document Object Model)Tree的挖掘上,通过其表现出的特征提取信息[12]。
以上的方法能够较好的处理SurfaceWeb的网页,我们在项目研究的过程中发现Surface
Web页面和Deep Web页面有很大的不同,首先,SurfaceWeb页面是静态的,而Deep Web页
面是动态的;其次,SurfaceWeb页面模板化程度要远远低于DeepWeb页面;再次,SurfaceWeb
页面往往只有一个正文块,而DeepWeb页面往往需要关注多个块,多块之间关联度较紧。
2 相关概念
基金项目:国家自然科学基金项目(60673092),2005年度教育部科研重点项目(205059), 2006年江苏省“六
大人才高峰”项目(06-E-037),2006年度江苏省软件和集成电路业专项经费项目( [2006]221-41 ), 2007年度
江苏省研究生创新计划项目资助(cx07b-122cz)。
-2-
模板(template):网页间结构相同的部分,deep web站点依模板动态生成相应的网页,所
以同一站点的很多deep web网页共享相同的模板。
布局块(layout):由矩形区域构成网页框架结构,是网页的轮廓。
内容块(content block):网页上被一对或若干对标签括起来的,内容相对独立矩形块。
可以将其看作是构成网页的基本单位。
语义块(semetics block):由一个或若干内容块构成具有完整语义的矩形块。
图1 内容块、语义块、布局块、模板之间关系
内容块、语义块、布局块在deep web网页上通过模板(template)将它们的嵌套关系和相对
位置固定下来(图1)。
3 面向Deep Web基于网页分块信息抽取对象模型
概述
面向DeepWeb基于网页分块信息抽取对象模型,将页面按语义分块,但这不够,我们
认为每一个Deep Web站点,都是架构师,设计师及开发人员精心制作的结果,语义块之间
存在内在的联系,这些联系对于数据挖掘、集成是至关重要的。我们以面向对象的思想,将
页面看作是一个表达完整语义的整体,其由各具有一定语义独立性,但又密切相关的语义块
构成。在信息抽取的时候,同时抽取它们之间的关系。
uej 网页头部
基于商业的
导航链接
(视作噪声)
新闻
网页头部
购买
该商
品的
顾客
还买
过
数据挖掘概念与技术(原书
第 222
2
版)这本书的详细信息
(1) (2)
模板
内容块
布局
语义块
-3-
图1 surface web页面、deep web页面及其布局
图1中(1)是搜狐新闻的一个网页截屏,(2)是当当网上书店《数据挖掘概念与技术》
这本书的详细信息,(1')、(2')分别是(1)、(2)分网页布局。(1)只要抽取出信息新闻,即可认
为工作完成了,但(2)我们不光要抽取该书的详细信息,还应抽出购买该该书的顾客还买过
哪些书,记录下这些书和这本书的关系,这在数据挖掘、集成的时候是很关键的。
网页分块
同SurfaceWeb站点相比,DeepWeb站点的制作者在一定程度上具有较强的技术背景,
通常采用MVC(Model-View-Controller,模型—视图—控制器模式)设计模式,代码及网页
布局更符合W3C制定和倡导的标准。我们看到很多这样DeepWeb站点采用了W3C倡导的
DIV + CSS布局,这种布局方式较基于TABLE的布局方式而言,块间嵌套层次清晰,内容的
语义内聚性更强,更适合分块信息抽取。
按在网页制作中扮演角色的不同我们把页面块分成两种:第一种是布局块,用来按排
页面结构、组织内容,它相当于一个容器;第二种内容块,用来传递网页信息,语义是内聚
的。布局块和内容块之间是嵌套关系,每个布局块中有一个或多个内容块。在逻辑上我们引
入了语义块的概念,因为在信息提取的过程中,我们发现并不是所有的内容块表达完整的语
义,在有些情况下,几个相邻内容块,表达一完整语义,我们把这些内容块称作一个语义块 。
在具体信息抽取的时候我们利用了DOM TREE,布局块和内容块都可以对应到DOM TREE
中的某个结点,结点是由自身和其子结点递归构成。
DOM TREE的有序化及块定位
由于DeepWeb页面是通过查询动态生成的,我们发现同一查询接口一般只对应一个
模板,不同的查询词可以产生不同的LIST网页。这些结果LIST一般是通过一个ID再次查询
数据库用Dateil页模板产生Dateil页,通常Dateil页模板是相同的,所以在DeepWeb中存在网
页众多而模板稀少的特点。下面是我们对几个网上书店的部分(图书)Dateil网页统计结果:
表1 部分网上书店模板统计
可以看出如此众多的网页是由极少数模板派生出来的,我们把模板看作是一个网页的
骨架,添上内容就成了有血有肉的页面。这其中一部分内容是静态的,如:网页头部的logo、
登陆界面以及网页底部的版权信息等,这些信息基本上在所在有所有的同模板网页中是相同
的;另一部分内容是动态从数据库中读取的,这也是我们所关心的。对于一个DeepWeb站
点,它的模板结构具有较强的稳定性,在一定时间内只有小的局部的改动,因为我们是在
DOM TREE的较高层次上分块,所以这对我们基于网页分块信息抽取不会造成大的影响。
网站 网页数(页) 模板数(个)
370563 1
369287 1
273562 1
688603 1
(1') (2')
-4-
图2 页面DOM树及对应节点顺序树
图2左侧是一棵典型的Deep web网页DOM树(简化)。由于页面是根据模板在服务器上
动态生成的,每一页结点顺序和模板是相同的,模板可以解析成为一棵DOM树,用同样的
方法解析网页会生成同样结构的DOM树,每一个结点的子结点从左到右的顺序是一致的,
我们将这些子结点看作一个数组;略去标签名,只以数组下标代表每一个子结点,会得到图
2右侧图。左图中的侧栏块和正文块,可以通过类似目录结构的路径进行定位 ,侧栏路径为
0/1/1/0,正文路径为0/1/1/1。
算法主要步骤如下:
步骤一、对从网络上爬取下来的网页按模板进行分类及预处理。我们以两个标准来确
定网页是否属于同一模板:一、如果网页来源于同一查询接口,认为它们属于同一模板;二 、
URL相似的网页,认为它们来源于同一模板,在爬取网页的时候,我们将其URL写到html
文件的首或尾,例如:
板,所以将它们归为一类。删除每一网页文件中的script及style结点。
步骤二、推断网页模板。每个DeepWeb站点的确存在模板并依此动态生成网页,但这
个模板我们并不能直接得到,它以代码、脚本等形式存在于DeepWeb站点的服务器上。所
以我们只能逆向推断这一模板,如果我们把模板看作是{布局块}∪内容块全集,那我们的工
作变成求内容块的全集,从我们实验看,如果不把内容块分的过细,一般站点的内容块数量
不超过15个,多在3到10个之间,而且大部分网页都会同时出现这些内容块。我们在实验数
据上每类随机或人工选择100个网页即可推断出网页模板。
步骤三、根据模板生成布局块、内容块、语义块的参数文件。我们在信息抽取的时候
会用到布局块、内容块路径,布局块及语义块包括那些内容块,语义块之间的关系以及内容
块特征等参数,存放在文本文件或XML文件中。
步骤四、抽取数据块。对类中的每一网页利用相应参数文件中的参数构造类抽取关心
的数据块。如果只做块级抽取做到这一步任务就结束了。
步骤五、抽取详细数据。通过写类的extract()方法即可抽取详细信息。
流程如下图所示:
footer
-5-
图2 算法流程图
下面是用到的类:
class Page{
Private:
List semecticblocklist; //存放所产生的块
String url; //源 URL
String filepath; //html文件路径
String parafilepath; //参数文件路径
Public:
Void Page(Sting filepath)
String setParafilepath(String parafilepath) //获得参数文件路径
Void divide() //分块并将结果放入 semecticblocklist
Void extract() //调用各 semecticblock的 extract方法
}
Class SemecticBlock{
Private:
List blocklist;
String role: //在页面中的角色,我们定义的有"正文"、"辅文"
String relationto; //本块和什么有关系
String relationship; //有什么关系
Public:
Void SemecticBlock(String role,String relationto,String relationship)
Void add() //将包含的 block加入 blocklist
Void extract() //调用各 block的 extract方法
}
class Block{
Private:
String path; //以下标串为路径,如:“0/1/0/1”
String layoutblockpath ; //所在布局块的路径
String character; //特征词
Node node //本块所对应的结点
String resultfile //抽取详细结果放入的文件名
-6-
Public:
Void Block(String path,String layoutblockpath,String character,Node node)
String setResultfile(String String resultfile) //获得结果放入的文件名
Void extract() //抽取详细
}
我们在做实验的时候发现,网站对可选内容块有两种处理方法:一种是如果没有这样的
结点则不生成任何结点,这样其父结点的子结点个数会变化,所以不能通过下标串为路径直
接定位到目标内容块,所以我们采取所在布局块的路径结合特征词的方法间接定位。另一种
是如果没有这样的结点会生成一个空结点,如:<div></div>,这时其父结点的子结点个数
不会发生改变,可以直接定位到目标内容块。
下面是参数文件样例:
<?xml version="" encoding="UTF-8"?>
<xml-body>
<page name="page">
<semeticblock role="正文" relationto="page" relation="主要内容"
name="main">
<block name="block1" path="0/1/1/0/1"
layoutblockpath="0/1/1/0" character="none"/>
</semeticblock>
<semeticblock role="辅文" relationto="main" relation="购买该商品
的顾客还买过" name="alsobuy">
<block name="block2" path="0/1/1/1/1"
layoutblockpath="0/1/1/1" character="none"/>
<block name="block3" path="0/1/1/1/2"
layoutblockpath="0/1/1/1" character="none"/>
</semeticblock>
</page>
</xml-body>
4 实验结果及分析
实验以 python作为开发语言,以 BeautifulSoup为 html parser,对国内几大网上书店进
行的信息进行抽取,获得很好的效果,不仅提取出了网页的正文部分,而且没有丢失网页中
传递的主要信息,如各种的相互关系,对于数据挖掘而言可能这是更为重要的数据。
我们将上面所讲各网上书店的网页作为数据集,每个网站随机抽取 100个网页用于推断
网页模板,又每网站随机抽样一些网页,人工抽取网页内容(块级别)用于验证结果(表 2)。
表 2 实验结果统计
网站 抽样数量(个) 准确率(%)
500
500
500
500 100
-7-
部分没有正确抽取主要是由于模板推断不完全造成的。
5 结束语
随着 Deep web站点数量的增加,其中资源也更丰富,但其后台的数据库目前只能通过
网页上的查询表单这一种方式加以利用。如何更有效的利用这一资源成为一项急迫的任务,
我们提出来的方法是 deep web数据挖掘方向上的一种尝试。未来的工作有:deep web数据
源重构、同类数据源之间的集成等。
参考文献
[1]The Deep Web : Surfacing Hidden Value. [ EB/OL ] . [ 2008-01-08 ]
[2]Kevin Chen-Chuan Chang, Bin He, and Zhen large-scale,
integration: building a MetaQuerier over databases on the Web. In: Weikum G, ed.
Proc. of the Conf. on Innovative Data Systems Research. Asilomar: IEEE
Computer Society, 2005. 44-55.
[3]Ziv Bar-Yossef ,Sridhar Detection via Data Mining and its Applications
[4]Deng Cai,Xiaofei He,Ji-RongWen, Informative Content Blocks
fromWeb Documents[A].SIGKDD'02 Proceedings [C].2002
[5]于满泉,陈铁睿,许洪波.基于分块的网页信息解析器的研究与设计[J].计算机应
用,2005,25,974-976页
[6]路松峰,王丹丹.基于网页格局的内容分块算法[J].计算机工程与科学,2007,29,16-48页
[7]黄文蓓,杨静,顾君忠.基于分块的网页正文信息提取算法研究[J] .计算机应用,2007,27,24-30
页
[8]荆涛,左万利.基于可视布局信息的网页噪音去除算法[J].华南理工大学学报(自然科学
版),2004,32,84-98页
[9]封化民等.含有位置坐标树的Web页面分析和内容提取框架[J].清华大学学报(自然科学
版),2005,45,1767-1771页
[10]宋杰,王大玲,鲍玉斌,申德荣.基于页面 Block的Web档案采集和存储[J].软件学
报,2008,19,275-289页
[11]Deng Cai, Shipeng Yu, Ji-Rong Wen, Wei-Ying : A vision2based page
segmentation algorithm [ EB/ OL ] . (2003-11-01)[2008-1-18] . http :/ / www.
ews. uiuc. edu/ dengcai2/ VIPS/VIPS- July22004. pdf
[12]Chia-Hui Chang, Mohammed Kayed, Moheb Ramzy Girgis, Khaled Shaalan. A Survey of
Web Information Extraction Systems [J] IEEE Transactions on Volume 18, Issue 10, Oct. 2006
Page(s): 1411 - 1428
ObjectObjectObject
Object
modelmodelmodel
model
ofofof
of
Block_basedBlock_basedBlock_based
Block_based
informationinformationinformation
information
extractionextractionextraction
extraction
forforfor
for
DeepDeepDeep
Deep
WebWebWeb
Web
MIAO Zhongyi,CUI Zhiming
(Institute of Intelligent Information Processing andApplication ,Suzhou University ,Suzhou
215006 ,China)
-8-
Abstract:Abstract:Abstract:
Abstract:
The importance of Deep web has be recognized by have
proposed many algorithms to extraction information from pages and developed some systems to
do it, but they all focus record level and field to this case ,this thesis propose a
Object_Oriented method to extract information and think that the page is composed of simetics
block which associate with each other closely. While extracting information, we are not only
concerned about the contents of semetics block, but also the relation of them. The information
being extracted can be the source of deep web data mining.
KeyKeyKey
Key
wordswordswords
words
: information extraction; Deep web; page block
作者简介:
苗忠义, ( 1977- ) ,硕士研究生。研究方向为智能信息处理、Web 数据挖掘、Deep Web、
语义Web。
崔志明男, ( 1961- ) ,教授, 博士生导师。研究方向为智能信息处理、计算机网络应用。