Deep Web 查询接口模式抽取方法研究#
朱会峰,左万利
基金项目:国家教育部高等学校博士学科点专项科研基金(200801830021)
作者简介:朱会峰,(1984-),男,硕士研究生,主要研究方向为Deep Web,本体。
通信联系人:万利,(1957-),男,教授,博士生导师,主要研究方向为Web 挖掘,搜索引擎,机器学
习,数据库技术
(吉林大学计算机科学与技术学院,长春 130012)
5 摘要:通过对查询接口内部编码和视觉单元信息的研究,提出了Deep Web 查询接口模式抽
取方法。首先,设计启发式规则对含有查询接口表单的HTML 网页进行查询接口区域定位以
过滤掉非查询接口表单;其次,利用有效数据单元对查询接口进行解析以获得待结合的查询
接口的标记信息;然后,应用基于观察和统计下的内部编码规则和视觉单元信息规则进行查
询接口属性的抽取;最后,在领域本体的指导下获取表单属性信息中的语义关系用于组合表
10 单属性,从而在语义层次上获得查询接口的模式。实验结果表明本文提出的模式抽取方法是
高效、可行的。
关键词:Deep Web;模式抽取;领域本体
30 0 引言
查询接口为用户提供了“人性化”的查询模式,是外部访问Deep Web 数据库的门户,是
从Deep Web 数据库中获取信息的主要途径。为了方便、快捷地获取网络上自由分布的Deep
Web 中丰富的信息,首要问题就是理解Deep Web 查询接口,也就是如何准确抽取Deep Web
查询接口的模式。
35 由于各种各样的查询接口设计模式,使得高精度的查询接口模式抽取工作更具挑战性。
手工抽取Deep Web 查询接口可以准确获得语义信息,但是互联网上Deep Web 查询接口的
规模决定了手工抽取的根本缺点,因此,自动抽取查询接口中有意义的信息,并且根据其在
查询接口中所担当的语义角色组合成一个有语义层次的查询条件是一项非常具有挑战性的
工作。通过对HTML 的观察,发现网页设计者为了让表单结构更加清楚或者是为了表单结
40 构更好,通常会融入许多视觉特征,如位置、布局和外貌等特征,这些信息对于组合查询控
件和其属性标签十分重要。因此,本文通过对查询接口内部编码和视觉单元信息的研究,在
领域本体的指导下构建了一个更加精确的Deep Web 查询接口识别模型。该模型采用启发式
的视觉单元规则,结合领域本体中的语义层次关系,对某个领域下的查询接口表单进行解析,
得到查询接口的各个元素信息的节点表示集合,在对这个集合中信息进行文本的预处理后,
45 在启发式的内部编码规则和视觉单元的特征规则指导下结合文本标签和控件标签得到最初
的逻辑属性集合,然后通过本体中语义层次关系对初步得到的逻辑属性再次结合得到最终的
逻辑属性集合。由于该算法利用了本体的语义层次关系,因此,使得最终的逻辑属性更加友
好,语义关系更加明确。
1 Deep Web 查询接口自动抽取框架
50 Deep Web 查询接口是嵌入在HTML页面中用来接收用户填充的查询条件以传递给后台
数据库。通过对查询接口模式的抽取可以获得一个查询接口的查询能力,其关键是把查询接
口所包含的逻辑属性准确地抽取出来,这种逻辑属性往往包括文本的标签信息和表单中的控
件元素信息。本文基于网页中查询接口的视觉单元特征和查询接口内部编码的相关信息在领
域本体的指导下建立了一个更加精确的Deep Web 查询接口的识别模型[1][2][3],其抽取框架如
55 图1 所示:
HTML 网页
查询接口查询接口
节点属性信息集合
启发式规则提取
查询接口
表单属性信息
集合
查询接口模式
[author,text,{contains}]
[title, text,{contains}]
[subject, select,{contains}]
......
领域本体指导节
点组合
表单属性信息的
抽取
查询接口解析器
图1 Deep Web 查询接口模式抽取框架
Fig. 1 The framework of schema extraction for Deep Web query interface
60 (1) Deep Web 查询接口定位:基于一些观察和统计的启发式规则,过滤非查询接口的
<form></from>片段,定位网页中查询接口表单的位置,同时,获取查询接口内部代码片段。
(2) Deep Web 查询接口解析:针对查询接口表单进行解析,顺序读取有效的数据单元,
判断数据单元的内容形式进行相应的处理过程,得到查询接口中各个标记节点的属性信息。
(3) Deep Web 查询接口表单属性的抽取:基于内部编码的规则和视觉单元上的特征规则
65 进行查询接口表单属性的初次抽取,主要是利用标签和内部控件的名称的字符串相似度和视
觉单元的布局特征。
(4) Deep Web 查询接口模式的获得:查询接口表单属性的抽取虽然通过结合文本标签和
控件得到表单属性,但是一些表单属性不是独立的,它们之间的文本标签有语义层次关系,
把有语义层次关系的表单属性结合起来表示一个查询条件会更加友好,语义性更好。通过领
70 域本体的指导发现语义关系,结合表单属性中的过程中添加语义关系得到表单最终属性,最
后得到Deep Web 查询接口的模式,完成Deep Web 查询接口模式的自动抽取。
2 Deep Web 查询接口自动抽取过程
2.1 Deep Web 查询接口区域定位
查询接口在网页的表现形是一个<form></form>片段,可以根据<form>标记和</form>标
75 记找到表单的定义片段。但是,表单在网络上的应用广泛,查询接口表单仅是其中的一种表
现形式,其它的表现形式还有很多,如注册表单、邮件订阅表单、订购表单、订单输入表单、
登录表单等,因此,提出Deep Web 查询接口区域规则过滤非查询接口表单,同时,高效、
准确地定位Deep Web 查询接口区域,以为查询接口解析提供数据。
基于观察查询接口和非查询接口的特征以及Jared Cope 等人在文中提到的查询接口特
80 征定义启发式规则,规则如下:
规则 1 如果表单中存在“用户名”、“密码”、“注册”、“登录”、“login”、“register”、
“username”、“password”等属性标签,则识别为非查询接口区域。
规则 2 如果表单中存在“查询”、“搜索”、“检索”、“search”、“query”等属性
标签,则识别为查询接口区域。
85 规则3 根据文献[4]分析,如果表单中存在textarea 控件,则识别为非查询接口区域。如
果表单action 属性值中存在cgi 脚本字样,则识别为查询接口区域。
规则 4 如果表单中没有text 类型控件或者有password 类型控件,则识别为非查询接口
区域。
规则5 根据文献[5]查询接口模式的定量分析,得出查询接口属性大于等于3 的规则,否
90 则识别为非查询接口区域。
基于表单中信息内容形式,从表单自身信息,表单的可视文字信息以及表单的内部控件
信息3 个方面定义表单信息(Form Information, FI)如下形式:
{ , ,{ },{ , }} i i i FI = action name literal type name
其中action,name是表单的自身信息, action 表示表单提交后处理的地址, name 表
示表单的名称。{ }i literal 表示表单中可视的文本信息集合,{ , } i i 95 type name 表示表单内部控
件的类型和内部名称的集合。例如图2 为一个表单信息表示的例子。
图2 表单信息表示示例
Fig. 2 An example of form information
基于表单信息FI,根据启发式规则能够准确判断<form></form>片段是否为查询接口,
进而定位查询接口区域。
2.2 Deep Web 查询接口解析
Deep Web 查询接口解析主要针对查询接口区域定位得到的<form></form>片段,通过对
105 <form></form>片段的解析,将查询接口的内部表示代码分隔成有效的数据单元,然后针对
该数据单元进行识别判断,解析完成相应属性值的提取,最后将各个标记的属性信息存储在
一个链表中。
有效的数据单元是指查询接口内部编码中符号”<”和”>”之间的内容表示或者符号”>”
和”<”之间的内容表示,这两部分内容表示对于查询接口来说是有意义的。通过对查询接口
110 内部代码的观察,不难发现符号”<”和”>”之间的内容表示是内部控件元素对应的编码表示,
而符号”>”和”<”之间的内容表示则是查询接口表单的可视信息,包括文本框和下拉列表对应
的解释文本标签信息,下拉列表菜单中的内容显示以及单选框或复选框控件后面对应的文本
信息标签。在解析过程中,定义了统一的数据结构用于存储查询接口中的标记信息,数据结
构模式如下:
115
图3 标记结点数据结构
Fig. 3 Data structure for tag node
其中context 用于存储对应的内部数据单元,lable 用于存储文本标记中的文本标签,id
120 用于存储控件中id 属性值,type 用于存储控件标记的类型,name 用于存储控件标记的内部
名字,selectItemList 用于存储下拉列表中的各个项的值,selectValueList 用于存储下拉列表
中的各个项的内部值。blockId、rowId 和columnId 分别用于存储标记在查询接口表单的块号、
行号以及列号。
Deep Web 查询接口解析算法如下:
125 算法1 查询接口解析
输入:一个查询接口表单form
输出:解析后的查询接口,以链表形式存储标记信息即结果链表resultList
算法开始
1 dataStyle=0; continue=ture;/ dataStyle 标记数据单元形式/
130 2 Do/循环处理form 中的每个有效数据单元/
3 validDataUnit=nextDataUnit(form);/顺次取一个有效数据单元/
4 If(isFormEnd(validDataUnit)) /判断是否解析结束/
5 Then continue=false;
6 Else
135 7 dataStyle = judge(validDataUnit); /判断数据单元形式/
8 tagInfor=handle(validDataUnit, dataStyle);/根据数据单元形式处理有效数据单
元 ,获取相应标记的属性值信息/
9 resultList.add(tagInfor);/标记信息添加到结果链表中/
10 Endif
140 11 While(continue!=false)
算法结束
在对查询接口表单进行解析的过程中,根据有效数据的形式进行判断识别提取对应的属
性值,为查询接口表单属性的初次抽取提供相关的特征信息。不同形式标记数据的具体解析
过程如下:
145 (1) 处理符号”>”和”<”之间的有效数据单元:这部分数据单元的表现形式包括普通的文
学术论文网Tag:代写论文 代写经济论文 代写代发论文 职称论文发表
|