基于属性重现和标签路径的网页抽取方法

文档序号:6367598阅读:178来源:国知局
专利名称:基于属性重现和标签路径的网页抽取方法
技术领域
本发明涉及一种基于属性重现和标签路径的网页抽取方法,特别是针对开源社区等实体重现较少而属性重现较多的网站,一种不同于传统基于重现实体的模板探测与网页抽取方法。
背景技术
Internet的关键作用之一是数据展现。它包含着由各个领域的实体构成的信息。在此,实体指某网站数据模型中的对象实例,并常常对应于一个网页,如一个电子产品,一个开源项目等等。抽取这类信息对于构建对比式在线购物和垂直搜索引擎等web应用有重要价值。同一领域内的不同网站往往有相同的数据。举例来说,用户能在apple, com中找 到关于一款iPod的信息,而这些信息也出现在amazon, com中。一般地,根据粒度可将网页中的数据重现分为两类一类在实体级别另一类在属性级别。在此,我们将实体视为属性的集合,而每一个属性由其名-值对组成。实体级别的重现指不同网站的某些数据是指某一个概念实体。如上面关于iPod的例子就是这样的一种重现。同时,属性级的重现描述了一种更为常见的情形,即两个或以上的网页中都出现的部分属性。如amazon, com中SAMSUNGS5830 手机和 htc. com 中的 HTC h710e 共同拥有属性(‘operating system’,‘Android’),尽管这两个产品是不同的实体。从上可知,实体重现是属性重现的一种特例。数据重现现象给信息抽取技术带来了新的机遇与挑战。重复的数据无形中成为异构网站共同的抽取样本,只要预先知道小部分重复数据就可以对其中任意一个网站的小部分页面进行标注,进而用监督学习的方式挖掘抽取规则,完成对整个网站其他页面的信息抽取。然而如何提前获取重复数据,如何利用他们对网页进行自动标注以及如何对已标注网页进行规则挖掘等问题值得深入研究。之前的一些实验通过抽取餐馆网站和参考书目网站验证了使用实体级重现方法的有效性。然而,实体级重现在某些领域并不多见,如开源社区中的项目实体和社交网络中的用户个人简介。对于电子产品来说,一个品牌的产品往往存在于在各个在线商店中,而社交网站却很少有重复的用户简介。同时,一般情况下一个开源项目只存在于一个开源社区中,某个项目只有在两种情况下才会出现在多个开源社区中1.项目迁移2.项目镜像。项目迁移时,两个社区中同一项目的信息也会随时间的推移而变得不一致,而项目镜像只出现在少数成熟项目上,绝大多数孵化期的开源项目是没有镜像的。综上,重现实体在开源社区并不多见,然而幸运地是我们发现属性级重现是普遍存在的。举例来说,不同社区中的不同开源项目的许可证可能都是“GPL”或编程语言都是“C++”。我们的方法就是利用这样的属性重现来进行抽取。另外,在抽取方法中如何对网页模板进行抽象也是网页抽取的重要问题。没有具体给出网页模板数学模型的抽取方法是难以实现的,部分抽取方法将模板定义为网页去掉后台数据的各个字符串,却忽略了 HTML网页的树状结构,因此不能有效的定位网页内容。

发明内容
本发明要解决的问题是针对现有网页抽取技术遇到的重现实体不够充分,模板抽象不够有效等问题,提出一种更为有效且通用的网页信息抽取方法,即基于属性重现和标签路径对网页进行抽取。本发明的技术方案包括以下步骤步骤I、搭建种子集合。通过抽取目标网站或同领域其它网站中的属性值列表页面,构建属性值种子集合,集合中包含了目标属性的部分取值。步骤2、抽取相对标签路径。获取目标网站部分样本页面,使用HTML解析工具,以属性名及其属性值为输入,分别查找其对应的标签节点,抽取目标网站中各属性在属性名和值之间的相对标签路径。步骤3、构建训练样本库。使用网络爬虫下载目标网站中的部分网页,样本数大于一预先设定值,将获取的HTML源代码存放到本地数据库。
步骤4、属性标注。根据种子集合中的种子属性值对训练样本库应用字符串相似匹配,查找并标注每一个种子属性值在训练网页中的所有重现,记录每次重现对应的标签路径。步骤5、标签路径选取。对同一属性选取出现次数最多的标签路径,作为抽取训练样本外其它网页信息的抽取规则。步骤6、属性定位与抽取。应用所获取的标签路径,从各自的根节点出发访问目标网站中的其他网页HTML树,定位属性值所在的标签,抽取其中包含的文本字符串。步骤7、属性名验证。借助属性名-属性值相对标签路径,获取步骤6中属性值对应的属性名,并采用字符串匹配与真实属性名进行比对,删除没有属性名或拥有错误属性名的属性值,将正确属性值存储到本地数据库,完成对页面属性的属性值抽取。进一步地,所述步骤4具体的包括以下步骤步骤401、字符串相似匹配。将参与匹配的两字符串转换为统一的小写格式,并进一步生成其q-gram集合,其中q为正整数。计算两字符串对应q-gram集合的雅加达(Jaccard)系数作为两字符串匹配度数值,该数值若高于预定义的某阈值则认为匹配。步骤402、属性标注及标签路径记录。根据字符串相似匹配的结果,标注一个种子属性值在训练网页中的所有重现,记录每次重现对应的标签路径。根据本发明的方法,可以有效确定网页中重现的属性和对应的标签路径,从而完成对开源项目主页信息的抽取。


图I为本发明中属性名和属性值在开源社区sourceforge. net中的示例;图2为本发明基于属性重现和标签路径的网页抽取的流程图;图3为应用本发明抽取开源社区sourceforge.net中开源项目页面在主题、编程语言、许可证、平台四个开源属性属性值的实施例。
具体实施例方式如图I所示,为开源软件获取与搜索系统及方法实现的流程图,具体实施以下步骤步骤I、搭建种子集合。通过抽取目标网站或同领域其它网站中的属性值列表页面,构建属性值种子集合,集合中包含了目标属性的部分取值。越来越多的网站支持探索式搜索,在网上搜索的过程中结合了查询和浏览。与典型的关键词搜索相比,探索式搜索给用户提供一种分层的和多维的浏览选择,特别是对于没有明确搜索目标的用户来说,探索式搜索提供了一种边搜索边明确需求的方式。在探索式搜索页面上,被搜索实体的属性通常都会以超链接列表的方式陈列,如图I所示,sourceforge. net 网站中的属性列表,主要包括 Categories、Platform、Dev Status、Programming Language和License五个属性,位于属性名下方的是每个属性可枚举的属性值,如主题属性的可能取值有“Software Development”, “Internet”等。利用列表挖掘方法就可以将这些属性抽取出来。所以构造种子属性集合的步骤是首先,指定探索式搜索页面;然后,挖掘页面中的列表;第三,选择属性列表。如果属性值很少时,可 以采用人工观察的方式。例如对于属性集合A= { ‘programming language’ },可通过列表挖掘构造出种子属性值集合 SA = {( ‘programming language,,{ ‘Ruby,,‘JavaScript,,‘Java,,‘JavaScript’.....})} o步骤2、抽取相对标签路径。获取目标网站部分样本页面,使用HTML解析工具,抽取目标网站中各属性在属性名和值之间的相对标签路径。例如,使用HTML解析工具HTMLparser和D0M4J,通过其中的标签查找功能,以页面代码中出现的属性名及其属性值为输入,分别查找其对应的标签节点,借助工具的标签路径功能,获取两节点之间的标签路径。由于网页统一由模板生成,一般情况下少量的样本页面(< 10个),就能确定出固定的相对标签路径。如抽取sourceforge. net中开源项目主页各属性在属性名和值之间的相对标签路径,对于某样本网页A. html,其中有下列文本片段,
<section class=nproject-in.fon>
<header>
<h3 >Frograjmni ng Language< / h 3 >
</'header>
oection class=1'content">
<a href=rf/softwa.remap/l san^;f<3%5B%5D=txove%3A265ll>
De lplii/Kylix
</a>
</section>
</section>解析工具可根据字符串内容“Programming Language”和“061口11;[/1(7111”进行查找,并获取各自所在的字符串标签节点(text tag node),借助工具的标签路径功能,以两字符串标签节点为输入,可获取从‘Delphi/Kylix”到“Programming Language”相对标签路径“text () \A\SECTI0N/HEADER/H3/text () ”。其中左斜杠和右斜杠分别表示HTML树中边的不同方向。步骤3、构建训练样本库。使用网络爬虫下载目标网站中的部分网页。为保证训练的有效性,尽量构建样本数大于1000的训练集合,将HTML源代码存放到本地数据库。步骤4、属性标注。根据种子集合中的种子属性值对训练样本库应用字符串相似匹配,查找并标注每一个种子属性值在训练网页中的所有重现,记录每次重现对应的标签路径。更为具体地,可通过下列两个步骤进行。步骤401、字符串相似匹配。将参与匹配的两字符串转换为统一的小写格式,并进一步生成其q-gram集合,其中q为正整数。如“Windows XP”的3-gram集合为{ ‘##w,,,#wi,, ‘win,, ‘ind,, ‘ndo,, ‘dow,, ‘ ows’, ‘ws#,, ‘ s##,, ‘##x,,‘#xp,, ‘ xp#,,‘P##,h计算两字符串对应q-gram集合的雅加达(Jaccard)系数作为两字符串匹配度数值。该数值若高于预定义的某阈值则认为匹配。步骤402、属性标注及标签路径记录。通过应用步骤401中的字符串相似匹配算·法,标注一个种子属性值在训练网页中的所有重现,记录每次重现对应的标签路径。例如,设有种子属性值“Kylix/Delphi”,通过基于q-gram的雅加达系数字符串相似度算法可命中到字符串标签节点“Delphi/Kylix”,视为种子属性值“Kylix/Delphi”的一次重现。通过工具的标签路径功能,可知“Delphi/Kylix”所在的标签路径为“/HTML/B0DY/DIV/SECTI ON/AS IDE/SECT I ON/SECT I ON/SECT I ON/A/t ext () ”,并将其进行记录。步骤5、标签路径选取。对同一属性选取出现次数最多的标签路径,作为抽取训练样本外其它网页信息的抽取规则。在实施例中,对同一属性选取在sourceforge. net所有网页支持度最高(出现次数最多)的标签路径,作为抽取sourceforge. net其它网页开源属性的抽取规则。比如,sourceforge. net中的编程语言属性值(如“C++”,“Perl”等)多次被匹配到的标签路径“/HTML/B0DY/DIV/SECTI ON/AS IDE/SECT10N/SECT10N/SECT10N/A/t ext () ” 且其支持度最高,因此该路径将被选作编程语言属性的抽取路径。步骤6、属性定位与抽取。应用步骤5所获取的标签路径,从各自的根节点出发访问目标网站中的其他网页HTML树,定位属性值所在的标签,抽取其中包含的文本字符串。例如,通过已选取的标签路径访问sourceforge. net的其他开源项目网页HTML树,定位属性值所在的文本标签,并抽取该文本。在本实施例中,对于编程语言属性“Programming Language”,设在步骤5已获得出现次数最多的标签路径“/HTML/B0DY/DIV/SECT I ON/AS IDE/SECT I ON/SECT I ON/SECT I ON/A/t ext () ”,对于一个待抽取开源项目 B 的项目主页页面B. html,以该路径为输入,通过解析工具对标签路径的解析处理功能,便可直接获得B. html中符合该路径的文本标签节点“web-based”和“Perl”,其中由于标签路径的不能唯一定位,带来的错误抽取值“web-based”将会在下一步被删除。步骤7、属性名验证与去伪。借助属性名-属性值相对标签路径,获取步骤6中属性值对应的属性名,并采用字符串匹配与真实属性名进行比对,删除没有属性名或拥有错误属性名的属性值。将去伪后余下的正确属性值存储到本地数据库,完成对一个页面某属性的属性值抽取。 本实施例中sourceforge. net在许可证的属性名-属性值相对标签路径为“text 0 \A\SECTI0N/HEADER/H3/text 0 ”,沿该路径检查步骤6获取的开源项目B的“Perl”,“web-based”等属性值对应的属性名,采用字符串匹配,发现“Perl”有正确的属性名“Programming Language”,将其作为抽取结果,而“web-based”对应不到正确的属性名,则将该属性值进行删除。最后将正确的开源项目页面文件、属性名、属性值三元组(B. html,“Programming Language ”, “Perl ”)存放到数据库中,完成对B.html编程语言属性的抽取。以上实施例可以反映出本发明能够基于重现的属性和标签路径更为有效率的生成网页模版,通过抽取开源项目页面主页上的属性对网页信息进行抽取。 最后所应说明的是,以上实施例仅用以说明本发明的技术方案而非限制,尽管参照较佳实施例对本发明进行了详细说明,本领域的普通技术人员应当理解,可以对本发明的技术方案进行修改或者等同替换,而不脱离本发明技术方案的精神和范围。
权利要求
1.一种基于属性重现和标签路径的网页抽取方法方法,包括下列步骤 步骤I、搭建种子集合,通过抽取目标网站或同领域其它网站中的属性值列表页面,构建属性值种子集合,集合中包含了目标属性的部分取值。
步骤2、抽取相对标签路径,获取目标网站部分样本页面,使用HTML解析工具,以属性名及其属性值为输入,分别查找其对应的标签节点,抽取目标网站中各属性在属性名和值之间的相对标签路径; 步骤3、构建训练样本库,使用网络爬虫下载目标网站中的部分网页,样本数大于一预先设定值,将获取的HTML源代码存放到本地数据库。
步骤4、属性标注,根据种子集合中的种子属性值对训练样本库应用字符串相似匹配,查找并标注每一个种子属性值在训练网页中的所有重现,记录每次重现对应的标签路径。
步骤5、标签路径选取,对同一属性网页支持度最高的标签路径,作为抽取训练样本外其它网页信息的抽取规则; 步骤6、属性定位与抽取。应用所获取的标签路径,从各自的根节点出发访问目标网站中的其他网页HTML树,定位属性值所在的标签,抽取其中包含的文本字符串; 步骤7、属性名验证,借助属性名-属性值相对标签路径,获取步骤6中属性值对应的属性名,并采用字符串匹配与真实属性名进行比对,删除没有属性名或拥有错误属性名的属性值,将正确属性值存储到本地数据库,完成对页面属性的属性值抽取。
2.如权利要求I所述的方法,其中所述步骤4进一步包括 步骤401、字符串相似匹配,将参与匹配的两字符串转换为统一的小写格式,并进一步生成其q-gram集合,其中q为正整数,计算两字符串对应q-gram集合的雅加达(Jaccard)系数作为两字符串匹配度数值,该数值若高于预定义的某阈值则认为匹配; 步骤402、属性标注及标签路径记录,根据字符串相似匹配的结果,标注一个种子属性值在训练网页中的所有重现,记录每次重现对应的标签路径。
3.如权利要求I所述的方法,其中所述网页支持度最高是指同一属性在该位置出现的次数最多。
全文摘要
一种基于属性重现和标签路径的网页抽取方法,包括通过抽取目标网站或的属性值列表页面,构建属性值种子集合,其中包含了目标属性的部分取值;获取部分样本页面,确定各属性在属性名和值之间的相对标签路径;下载部分网页构建训练样本库,将获取的代码存放到本地数据库;查找并标注每一个种子属性值在训练网页中的所有重现,记录每次重现对应的标签路径;以对同一属性网页支持度最高的标签路径,作为抽取训练样本外其它网页信息的抽取规则;用所获取的标签路径,访问目标网站中的其他网页HTML树,定位属性值所在标签,抽取文本字符串;删除没有属性名或拥有错误属性名的属性值,将正确属性值存储到本地数据库,从而完成对页面属性的属性值抽取。
文档编号G06F17/30GK102760150SQ20121009716
公开日2012年10月31日 申请日期2012年4月5日 优先权日2012年4月5日
发明者余跃, 史殿习, 尹刚, 朱沿旭, 李翔, 王怀民, 王涛, 袁霖 申请人:中国人民解放军国防科学技术大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1