CN103778238B - 一种从维基百科半结构化数据自动构建分类树的方法 - Google Patents

一种从维基百科半结构化数据自动构建分类树的方法 Download PDF

Info

Publication number
CN103778238B
CN103778238B CN201410040234.9A CN201410040234A CN103778238B CN 103778238 B CN103778238 B CN 103778238B CN 201410040234 A CN201410040234 A CN 201410040234A CN 103778238 B CN103778238 B CN 103778238B
Authority
CN
China
Prior art keywords
page
entity
hrs
hyperlink
hyponymy
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
CN201410040234.9A
Other languages
English (en)
Other versions
CN103778238A (zh
Inventor
刘均
魏笔凡
冯博琴
郑庆华
马健
王晨晨
吴蓓
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Xian Jiaotong University
Original Assignee
Xian Jiaotong University
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Xian Jiaotong University filed Critical Xian Jiaotong University
Priority to CN201410040234.9A priority Critical patent/CN103778238B/zh
Publication of CN103778238A publication Critical patent/CN103778238A/zh
Application granted granted Critical
Publication of CN103778238B publication Critical patent/CN103778238B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/80Information retrieval; Database structures therefor; File system structures therefor of semi-structured data, e.g. markup language structured data such as SGML, XML or HTML
    • G06F16/83Querying
    • G06F16/835Query processing
    • G06F16/8373Query execution

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明公开了一种从维基百科半结构化数据自动构建分类树的方法,包括(1)半结构化数据的抽取,通过分析获取到页面的HTML,识别出含有半结构化数据的页面。(2)半结构化数据中上下位关系的抽取,依据维基目录页面的布局特点,获取其中包含的上下位关系;解析HTML元素,依据导航表的结构,获取表格中包含的上下位关系。(3)源于不同半结构化数据的上下位关系融合,依据抽取到的上下位关系集构建有向无权简单图,然后基于有向无权简单图的深度优先遍历算法生成分类树。本发明能够自动抽取维基页面中的上下位关系,并构建分类树,减少领域专家构建的成本,充分重用了志愿者手工构建的上下位关系。

Description

一种从维基百科半结构化数据自动构建分类树的方法
技术领域
本发明涉及知识获取技术领域,特别涉及一种利用维基百科半结构化数据自动构建分类树的方法。
背景技术
互联网促使信息数字化的进程加速,其上信息以指数增长。目前数字信息已呈现数量庞大、类型繁多、更新迅速等发展趋势。著名的Web搜索引擎Google索引的网页数量目前已经达到500亿。信息时代带来了海量的数字化文本,日益积累的数据使得信息的获取越来越困难。
在数量巨大的页面中含有人工编辑的半结构化数据,这些数据散落在不同的页面中,造成人们无法从大量页面中迅速而准确地找到这些有用的半结构化信息。
维基百科(www.wikipedia.org)是目前访问量最大的十个网站之一,维基百科页面由志愿者共同编辑,含有大量高质量的半结构化数据,这些半结构化数据中蕴藏着大量的上下位关系,因而需要自动化的抽取方法从这些半结构化数据中获取上下位关系,并进行融合最终形成分类树。
现有技术中尚未找到有关从维基百科半结构化数据中抽取上下位关系抽取及构建分类树的专利或者文献;只检索到了一篇与本专利相关的已授权专利:一种基于Web数值表格抽取的数据挖掘方法[专利号:ZL200910084507.9];该专利的发明人基于领域知识库,提出一种从Web数值表格抽取数值知识元库的方法。该专利所述方法依赖领域知识库,且只能处理数值表格,无法识别表格中字符串表示的实体及实体间的关系。
发明内容
本发明的目的是提供一种从维基百科半结构化数据自动构建分类树的方法,通过分析半结构化数据中的模式和实体,自动抽取出半结构化数据中的实体及它们间的上下位关系,从而可以大大减少计算量,降低计算复杂度。所述实体是指维基百科页面的标题及结构化数据中的最小处理单元。所述实体间的上下位关系是指实体间内在的分类关系。
为达到以上目的,本发明是采取如下技术方案予以实现的:
一种从维基百科半结构化数据自动构建分类树的方法,包括以下步骤:
第1步、半结构化数据的抽取:通过分析获取到页面的HTML,识别出含有半结构化数据的页面,所述半结构化数据指维基百科目录页面及维基百科条目页面中的导航表格;
第2步、半结构化数据中上下位关系的抽取:抽取维基百科目录页面中上下位关系和导航表格中上下位关系;
第3步、源于不同半结构化数据的上下位关系融合:依据抽取到的上下位关系集构建有向无权简单图,然后基于图的深度优先遍历算法生成分类树。
本发明进一步的改进在于:第1步具体包括以下步骤:
第1.1步:从维基百科网站首页www.wikipedia.org开始,通过解析页面的超链接逐层爬取所有页面,依据页面URL前缀“http://en.wikipedia.org/wiki/”获取条目页面,依据URL前缀“http://en.wikipedia.org/wiki/Category:”获取目录页面,每个页面对应一个实体,页面标题为该实体的名字;
第1.2步:根据条目页面是否含有HTML标签<table class=″navbox″>,筛选出含有导航表格的条目页面。
本发明进一步的改进在于:第1步具体包括以下步骤:
1):通过Web页面爬取工具爬取维基百科首页http://www.wiki pedia.org/并进行解析,然后依据HTML标签<a>和</a>找出该页面中的所有匹配模式http\:\/\/[a-z]+\.wikipedia\.org\/的超链接,记为{head_linki}n,其中n表示所有不同语言的维基子网站数目;每个这样的超链接head_linki对应一种语言的维基百科子网站,并且是该子网站的首页,枚举每个维基子网站首页的超链接head_linki
2):构建空的哈希表该哈希表用来记录某个页面是否已经被爬取过,使用页面的URL地址来标识不同的页面;
3):设置当前爬取页面地址为当前维基子网站首页,current_link=head_linki
4):在HashSet查询current_link,如果命中,表明页面已经被爬取过,则不再爬取跳转到第8步;如果该页面没有爬取过,则通过Web页面爬取工具爬取该页面,并将该链接加入到HashSet中,即执行HashSet.add(current_link);
5):如果该页面URL前缀是“http://en.wikipedia.org/wiki/Category:”,则保存该页面到ArticleSet,并跳转到第7)步;
6):如果该页面URL前缀是“http://en.wikipedia.org/wiki/”,进一步判断该条目页面是否含有HTML标签<table class=″navbox″>,如有则保存该页面到CategorySet;
7):解析该页面,依据HTML标签<a>和</a>找出该页面中的所有超链接{hyperlinki}m,将所有这些超链接压入超链接栈LinkStack中,即LinkStack.pushAll({hyperlinki}m);
8):如果LinkStack不为空,current_link=LinkStack.pop(),跳转到第4步;如果LinkStack为空,退出。
本发明进一步的改进在于:第2步中目录页面中上下位关系的抽取包括以下步骤:
第2.1.1步:解析目录页面的HTML结构,根据页面HTML标签定位目录页面的逻辑块,包括标题块、子目录块、子页面块及父目录块,逻辑块中的每个超链指向的页面表示一个实体,定义上下位关系集HRS,并设
第2.1.2步:依据HTML标签<h1 id=″firstHeading″>和</h1>定位标题块,解析标题块中标签<span>和</span>得到目录页面的标题,表示为ct;
第2.1.3步:依据HTML标签<div id=″mw-subcategories″>和</div>定位子目录块,依据HTML标签<a>和</a>识别子目录块中的超链接,并抽取超链接的title属性值,表示为sci,所有超链接的title属性值的集合表示为{sci}m,其中m表示子目录块中超链接的个数;子目录块中超链接title属性值的集合{sci}m与目录页面标题ct形成上下位关系集{<sci,ct>}m,其中<sci,ct>表示第i个上下位关系,sci表示下位实体,ct表示上位实体,最后将{<sci,ct>}m加入HRS,即HRS=HRS∪{<sci,ct>}m
第2.1.4步:依据HTML标签<div id=″mw-pages″>和</div>定位子页面块,依据HTML标签<a>和</a>识别子页面块中的超链接,并抽取超链接的title属性值,表示为sai,所有超链接的title属性值的集合表示为{sai}n,其中n表示子页面块中超链接的个数;子页面块中超链接title属性值的集合{sai}n与目录页面标题ct形成上下位关系集{<sai,ct>}m,sai表示下位实体,ct表示上位实体,最后将{<sai,ct>}m加入HRS,即HRS=HRS∪{<sai,ct>}n
第2.1.5步:依据HTML标签<div id=″mw-normal-catlinks″>和</div>定位父目录块,依据HTML标签<a>和</a>识别父目录块中的超链接,并抽取超链接的title属性值,表示为fci,所有超链接的title属性值的集合表示为{fci}k,其中k表示父目录块中超链接的个数;目录页面标题ct与父目录块中超链接title属性值的集合{fci}k形成上下位关系集{<ct,fci>}k,ct表示下位实体,fci表示上位实体,最后将{<ct,fci>}k加入HRS,即HRS=HRS∪{<ct,fci>}k
本发明进一步的改进在于:第2步中导航表格中上下位关系的抽取包括以下步骤:
第2.2.1步:针对每个包含导航表格的页面,根据导航表格的HTML标签<tableclass=″navbox″>和</table>,定位每个表格的起始位置和结束位置;
第2.2.2步:根据导航表格标题字体的格式<font style=″font-size:110%″>和</font>,识别导航表格的标题title;
第2.2.3步:在表格范围内根据是否存在HTML标签<table class=″nowraplinkscollapsible collapsed navbox-subgroup″>判断表格下面是否嵌套子表格,如果嵌套则抽取每个子表格STi的标题subti并执行HRS=HRS∪{<title,subti>},针对每个STi重复执行第2.2.3步;如果不包含子表格则执行第2.2.4步;
第2.2.4步:导航表格由两列组成,根据HTML标签<th class=″navbox-group″>和</th>抽取导航表格第1列的实体,形成实体集合{group_entityi}u,其中u是导航表格的行数,然后组合title与{group_entityi}u形成上下位关系集合{<title,group_entityi>}u,并将{<title,group_entityi>}u加入到HRS,即HRS=HRS∪{<title,group_entityi>}u
第2.2.5步:针对抽取导航表格第2列的每个元素,分别根据是否存在HTML标签<tableclass=″nowraplinks navbox-subgroup″>和<table class=″nowraplinks collapsible autocollapsenavbox-subgroup″>判断是否嵌套sub_group和sub_box两种子表格,如果嵌套则迭代执行第2.2.4步并添加到HRS中,否则根据HTML标签<td class=″navbox-list navbox-odd hlist″>和<td>解析得到列表中的实体集合{list_entityj}υ,其中υ表示列表中实体的个数,然后组合group_entityi与{list_entityj}υ形成上下位关系集合 { < group _ entity i , list _ entity j > } j = 1 &upsi; , 并将 { < group _ entity i , list _ entity j > } j = 1 &upsi; 加入到HRS,即 HRS = HRS &cup; { < group _ entity i , list _ entity j > } j = 1 &upsi; .
本发明进一步的改进在于:第3步源于不同半结构化数据的上下位关系融合具体包括以下步骤:
第3.1步:构建一个有向无权简单图G=(V,E),其中V表示实体集合,E表示实体间的上下关系,开始G为空;
第3.2步:从HRS中取出一个上下位关系ei=<hypo,hyper>∈HRS,同时执行HRS=HRS-{ei};
第3.3步:判断在V中某个下位实体与hypo是否等价。如果不存在等价实体,则将hypo加入V,V=V∪{hypo};
第3.4步:判断在V中某个上位实体与hyper是否等价。如果不存在等价实体,则将hyper加入V,V=V∪{hyper};
第3.5步:如果hyper或hypo任何一个在V中不存在等价实体,则将ei作为G的一条新的边,即E=E∪{ei};
第3.6步:执行第3.2步,直到HRS为空;得到有向无权简单图G;
第3.7步:根据实体root∈V及G,通过有向无权简单图G的深度优先遍历得到以root为根的分类树T=(V′,E′,root),其中
一种从维基百科半结构化数据自动构建分类树的方法,包括以下步骤:
第1步、半结构化数据抽取:维基百科中的半结构化数据包括目录页面和导航表格,首先根据URL地址前缀的不同,从维基百科网站www.wikipedia.org所有页面中识别出维基目录页面与维基条目页面;进一步根据条目页面是否包含HTML标签<table class=″navbox″>找出包含导航表格的条目页面;
第2步、半结构化数据中上下位关系hypernym/hyponym relation抽取:首先,解析目录页面的HTML结构,得到页面不同的逻辑块,依据逻辑块之间的布局关系获取目录页面内所包含的实体间的上下位关系;其次是解析导航表格,得到表格的逻辑结构及所包含的实体,然后根据逻辑结构获取表格中实体间的上下位关系;
第3步、源于不同半结构化数据的上下位关系融合:首先是依据第2步得到的上下位关系集合HRS构建一个有向无权简单图G=(V,E),其中V表示一个实体集合,E表示实体间的上下位关系;其次是根据实体root∈V及G生成以root为根的分类树T=(V′,E′,root),其中 V &prime; &Subset; V , E &prime; &Subset; E .
相对于现有技术,本发明具有以下优点:
1)本发明依据HTML标签解析维基页面的目录页面及条目页面中的导航表格,准确解析其中的上下位关系,从而得到大量的上下位关系,该技术简单高效。
2)本发明充分利用了散落在不同的维基页面中的上下位关系,进而将来源不同的上下位融合在一起,形成一个一致的上下位关系图。
3)由于本发明的上下位关系来源于领域专家的手工编辑,从而造成通过该方法得到分类树更具有权威性。
附图说明
图1是从维基百科半结构化数据自动构建分类树的流程图。
图2是半结构化数据抽取的流程图。
图3是目录页面中上下位关系抽取的流程图。
图4是导航表中上下位关系抽取的流程图。
图5是不同源上下位关系融合的流程图。
图6是目录页面示意图。
图7是导航表示意图。
图8是上下位关系图。
图9是以“树”为根的分类树。
具体实施方式
以下结合附图及实例对本发明作进一步的说明。
请参阅图1所示,本发明一种从维基百科半结构化数据自动构建分类树的方法,分为如下3个过程:
第1步:半结构化数据抽取,包括2个步骤。
第1.1步:从维基百科网站首页www.wikipedia.org开始,通过解析页面的超链接逐层爬取所有页面,依据页面URL前缀“http://en.wikipedia.org/wiki/”获取条目页面,依据URL前缀“http://en.wikipedia.org/wiki/Category:”获取目录页面,每个页面对应一个实体,页面标题为该实体的名字;
第1.2步:根据条目页面是否含有HTML标签<table class=″navbox″>,筛选出含有导航表格的条目页面。
这些步骤的流程如图2所示,比如图6及图7分别给出“数据结构”目录页面和“数据结构”页面中的导航表格。
第1步半结构化数据的抽取按照如下过程:
1):通过Web页面爬取工具爬取维基百科首页http://www.wiki pedia.org/并进行解析,然后依据HTML标签<a>和</a>找出该页面中的所有匹配模式http\:\/\/[a-z]+\.wikipedia\.org\/的超链接,记为{head_linki}n,其中n表示所有不同语言的维基子网站数目。每个这样的超链接head_linki对应一种语言的维基百科子网站,并且是该子网站的首页,枚举每个维基子网站首页的超链接head_linki
2):构建空的哈希表该哈希表用来记录某个页面是否已经被爬取过,使用页面的URL地址来标识不同的页面。
3):设置当前爬取页面地址为当前维基子网站首页,current_link=head_linki比如英文维基子网站首页地址为“http://en.wikipedi a.org/wiki/Main_Page”。
4):在HashSet查询current_link,如果命中,表明页面已经被爬取过,则不再爬取跳转到第8步;如果该页面没有爬取过,则通过Web页面爬取工具爬取该页面,并将该链接加入到HashSet中,即执行HashSet.add(current_link)。
5):如果该页面URL前缀是“http://en.wikipedia.org/wiki/Category:”,则保存该页面到ArticleSet,并跳转到第7)步。
6):如果该页面URL前缀是“http://en.wikipedia.org/wiki/”,进一步判断该条目页面是否含有HTML标签<table class=″navbox″>,如有则保存该页面到CategorySet。
7):解析该页面,依据HTML标签<a>和</a>找出该页面中的所有超链接{hyperlinki}m,将所有这些超链接压入超链接栈LinkStack中,即LinkStack.pushAll({hyperlinki}m)。
8):如果LinkStack不为空,current_link=LinkStack.pop(),跳转到第4步;如果LinkStack为空,退出。
第2步:半结构化数据中上下位关系(hypernym/hyponym relation)抽取目录页面中上下位关系和导航表格中上下位关系,其中前者包含5个步骤。
如图3所示,目录页面中上下位关系的抽取包括以下步骤:
第2.1.1步:解析目录页面的HTML结构,根据页面HTML标签定位目录页面的逻辑块,包括标题块、子目录块、子页面块及父目录块,逻辑块中的每个超链指向的页面表示一个实体,定义上下位关系集HRS,并设
第2.1.2步:依据HTML标签<h1 id=″firstHeading″>和</h1>定位标题块,解析标题块中标签<span>和</span>得到目录页面的标题,表示为ct;
第2.1.3步:依据HTML标签<div id=″mw-subcategories″>和</div>定位子目录块,依据HTML标签<a>和</a>识别子目录块中的超链接,并抽取超链接的title属性值,表示为sci,所有超链接的title属性值的集合表示为{sci}m,其中m表示子目录块中超链接的个数;子目录块中超链接title属性值的集合{sci}m与目录页面标题ct形成上下位关系集{<sci,ct>}m,其中<sci,ct>表示第i个上下位关系,sci表示下位实体,ct表示上位实体,最后将{<sci,ct>}m加入HRS,即HRS=HRS∪{<sci,ct>}m
第2.1.4步:依据HTML标签<div id=″mw-pages″>和</div>定位子页面块,依据HTML标签<a>和</a>识别子页面块中的超链接,并抽取超链接的title属性值,表示为sai,所有超链接的title属性值的集合表示为{sai}n,其中n表示子页面块中超链接的个数;子页面块中超链接title属性值的集合{sai}n与目录页面标题ct形成上下位关系集{<sai,ct>}m,sai表示下位实体,ct表示上位实体,最后将{<sai,ct>}m加入HRS,即HRS=HRS∪{<sai,ct>}n
第2.1.5步:依据HTML标签<div id=″mw-normal-catlinks″>和</div>定位父目录块,依据HTML标签<a>和</a>识别父目录块中的超链接,并抽取超链接的title属性值,表示为fci,所有超链接的title属性值的集合表示为{fci}k,其中k表示父目录块中超链接的个数;目录页面标题ct与父目录块中超链接title属性值的集合{fci}k形成上下位关系集{<ct,fci>}k,ct表示下位实体,fci表示上位实体,最后将{<ct,fci>}k加入HRS,即HRS=HRS∪{<ct,fci>}k
这些步骤的流程如图3所示,比如基于图6即可以得到表1左侧所示的上下位关系集合。
请参阅图4所示,导航表格中抽取上下位关系的步骤为:
第2.2.1步:针对每个包含导航表格的页面,根据导航表格的HTML标签<tableclass=″navbox″>和</table>,定位每个表格的起始位置和结束位置;
第2.2.2步:根据导航表格标题字体的格式<font style=″font-size:110%″>和</font>,识别导航表格的标题title;
第2.2.3步:在表格范围内根据是否存在HTML标签<table class=″nowraplinkscollapsible collapsed navbox-subgroup″>判断表格下面是否嵌套子表格,如果嵌套则抽取每个子表格STi的标题subti并执行HRS=HRS∪{<title,subti>},针对每个STi重复执行第2.2.3步;如果不包含子表格则执行第2.2.4步;
第2.2.4步:导航表格由两列组成,根据HTML标签<th class=″navbox-group″>和</th>抽取导航表格第1列的实体,形成实体集合{group_entityi}u,其中u是导航表格的行数,然后组合title与{group_entityi}u形成上下位关系集合{<title,group_entityi>}u,并将{<title,group_entityi>}u加入到HRS,即HRS=HRS∪{<title,group_entityi>}u
第2.2.5步:针对抽取导航表格第2列的每个元素,分别根据是否存在HTML标签<tableclass=″nowraplinks navbox-subgroup″>和<table class=″nowraplinks collapsible autocollapsenavbox-subgroup″>判断是否嵌套sub_group和sub_box两种子表格,如果嵌套则迭代执行第2.2.4步并添加到HRS中,否则根据HTML标签<td class=″navbox-list navbox-odd hlist″>和<td>解析得到列表中的实体集合{list_entityj}υ,其中υ表示列表中实体的个数,然后组合group_entityi与{list_entityj}υ形成上下位关系集合 { < group _ entity i , list _ entity i > } j = 1 &upsi; , 并将 { < group _ entity i , list _ entity j > } j = 1 &upsi; 加入到HRS,即 HRS = HRS &cup; { < group _ entity i , list _ entity j > } j = 1 &upsi; .
这些步骤的流程如图4所示,比如基于图7即可以得到表1右侧所示的上下位关系集合。
表1中每个ID对应一个上下位关系,分别由上位实体和下位实体组成。
表1从目录页面及导航表格中得到的上下位关系集合
第3步:请参阅图5所示,源于不同半结构化数据的上下位关系融合,包括如下7个步骤。
第3.1步:构建一个有向无权简单图G=(V,E),其中V表示实体集合,E表示实体间的上下关系,开始G为空;
第3.2步:从HRS中取出一个上下位关系ei=<hypo,hyper>∈HRS,同时执行HRS=HRS-{ei};
第3.3步:判断在V中某个下位实体与hypo是否等价。如果不存在等价实体,则将hypo加入V,V=V∪{hypo};
第3.4步:判断在V中某个上位实体与hyper是否等价。如果不存在等价实体,则将hyper加入V,V=V∪{hyper};
第3.5步:如果hyper或hyppo任何一个在V中不存在等价实体,则将ei作为G的一条新的边,即E=E∪{ei};
第3.6步:执行第3.2步,直到HRS为空;得到有向无权简单图G;
第3.步:根据实体root∈V及G,通过有向无权简单图G的深度优先遍历算法得到以root为根的分类树T=(V′,E′,root),其中
这些步骤的流程如图5所示,比如基于表格1构建的上下位关系图如图8所示。如果选择“tree”作为root节点,那么通过有向无权简单图的深度优先遍历算法即可获得以“tree”节点为根的分类树,如图9所示。

Claims (4)

1.一种从维基百科半结构化数据自动构建分类树的方法,其特征在于,包括以下步骤: 
第1步、半结构化数据的抽取:通过分析获取到页面的HTML,识别出含有半结构化数据的页面,所述半结构化数据指维基百科目录页面及维基百科条目页面中的导航表格; 
第2步、半结构化数据中上下位关系的抽取:抽取维基百科目录页面中上下位关系和导航表格中上下位关系; 
第3步、源于不同半结构化数据的上下位关系融合:依据抽取到的上下位关系集构建有向无权简单图,然后基于图的深度优先遍历算法生成分类树; 
第1步具体包括以下步骤: 
1):通过Web页面爬取工具爬取维基百科首页http://www.wiki pedia.org/并进行解析,然后依据HTML标签<a>和</a>找出该页面中的所有匹配模式http\:\/\/[a-z]+\.wikipedia\.org\/的超链接,记为{head_linki}n,其中n表示所有不同语言的维基子网站数目;每个这样的超链接head_linki对应一种语言的维基百科子网站,并且是该子网站的首页,枚举每个维基子网站首页的超链接heak_linki; 
2):构建空的哈希表HashSet=0,该哈希表用来记录某个页面是否已经被爬取过,使用页面的URL地址来标识不同的页面; 
3):设置当前爬取页面地址为当前维基子网站首页,current_link=head_linki; 
4):在HashSet查询current_link,如果命中,表明页面已经被爬取过,则不再爬取跳转到第8步;如果该页面没有爬取过,则通过Web页面爬取工具爬取该页面,并将该链接加入到HashSet中,即执行HashSet.add(current_link); 
5):如果该页面URL前缀是“http://en.wikipedia.org/wiki/Category:”,则保存 该页面到ArticleSet,并跳转到第7)步; 
6):如果该页面URL前缀是“http://en.wikipedia.org/wiki/”,进一步判断该条目页面是否含有HTML标签<table class="navbox">,如有则保存该页面到CategorySet; 
7):解析该页面,依据HTML标签<a>和</a>找出该页面中的所有超链接{hyperlinki}m,将所有这些超链接压入超链接栈LinkStack中,即LinkStack.pushAll({hyperlinki}m); 
8):如果LinkStack不为空,current_link=LinkStack.pop(),跳转到第4步;如果LinkStack为空,退出。 
2.根据权利要求1所述的一种从维基百科半结构化数据自动构建分类树的方法,其特征在于,第2步中目录页面中上下位关系的抽取包括以下步骤: 
第2.1.1步:解析目录页面的HTML结构,根据页面HTML标签定位目录页面的逻辑块,包括标题块、子目录块、子页面块及父目录块,逻辑块中的每个超链指向的页面表示一个实体,定义上下位关系集HRS,并设HRS=0; 
第2.1.2步:依据HTML标签<h1id="firstHeading">和</h1>定位标题块,解析标题块中标签<span>和</span>得到目录页面的标题,表示为ct; 
第2.1.3步:依据HTML标签<div id="mw-subcategories">和</div>定位子目录块,依据HTML标签<a>和</a>识别子目录块中的超链接,并抽取超链接的title属性值,表示为sci,所有超链接的title属性值的集合表示为{sci}m,其中m表示子目录块中超链接的个数;子目录块中超链接title属性值的集合{sci}m与目录页面标题ct形成上下位关系集{<sci,ct>}m,其中<sci,ct>表示第i个上下位关系,sci表示下位实体,ct表示上位实体,最后将{<sci,ct>}m加入HRS,即HRS=HRS∪{<sci,ct>}m; 
第2.1.4步:依据HTML标签<div id="mw-pages">和</div>定位子页面块,依据HTML标签<a>和</a>识别子页面块中的超链接,并抽取超链接的title属性值,表示为sai,所有超链接的title属性值的集合表示为{sai}n,其中n表示子页面块中超链接的个数;子页面块中超链接title属性值的集合{sai}n与目录页面标题ct形成上下位关系集{<sai,ct>}m,sai表示下位实体,ct表示上位实体,最后将{<sai,ct>}m加入HRS,即HRS=HRS∪{<sai,ct>}n; 
第2.1.5步:依据HTML标签<div id="mw-normal-catlinks">和</div>定位父目录块,依据HTML标签<a>和</a>识别父目录块中的超链接,并抽取超链接的title属性值,表示为fci,所有超链接的title属性值的集合表示为{fci}k,其中k表示父目录块中超链接的个数;目录页面标题ct与父目录块中超链接title属性值的集合{fci}k形成上下位关系集{<ct,fci>}k,ct表示下位实体,fci表示上位实体,最后将{<ct,fci>}k加入HRS,即HRS=HRS∪{<ct,fci>}k。 
3.根据权利要求1所述的一种从维基百科半结构化数据自动构建分类树的方法,其特征在于,第2步中导航表格中上下位关系的抽取包括以下步骤: 
第2.2.1步:针对每个包含导航表格的页面,根据导航表格的HTML标签<table class="navbox">和</table>,定位每个表格的起始位置和结束位置; 
第2.2.2步:根据导航表格标题字体的格式<font style="font-size:110%">和</font>,识别导航表格的标题title; 
第2.2.3步:在表格范围内根据是否存在HTML标签<table class="nowraplinks collapsible collapsed navbox-subgroup">判断表格下面是否嵌套子表格,如果嵌套则抽取每个子表格STi的标题subti并执行HRS=HRS∪{<title,subti>},针对每个STi重复执行第2.2.3步;如果不包含子表格则执行第2.2.4步; 
第2.2.4步:导航表格由两列组成,根据HTML标签<th class="navbox-group">和</th>抽取导航表格第1列的实体,形成实体集合{group_entityi}u,其中u是导航表格的行数,然后组合title与{group_entityi}u形成上下位关系集合{<title,group_entityi>}u,并将{<title,group_entityi>}u加入到HRS,即HRS=HRS∪{<title,group_entityi>}u; 
第2.2.5步:针对抽取导航表格第2列的每个元素,分别根据是否存在HTML标签<table class="nowraplinks navbox-subgroup">和<table class="nowraplinks collapsible autocollapse navbox-subgroup">判断是否嵌套sub_group和sub_box两种子表格,如果嵌套则迭代执行第2.2.4步并添加到HRS中,否则根据HTML标签<td class="navbox-list navbox-odd hlist">和<td>解析得到列表中的实体集合{list_entityj}v,其中v表示列表中实体的个数,然后组合group_entityi与{list_entityj}v形成上下位关系集合 
并将加入到HRS,即
4.根据权利要求1所述的一种从维基百科半结构化数据自动构建分类树的方法,其特征在于,第3步源于不同半结构化数据的上下位关系融合具体包括以下步骤: 
第3.1步:构建一个有向无权简单图G=(V,E),其中V表示实体集合,E表示实体间的上下关系,开始G为空; 
第3.2步:从HRS中取出一个上下位关系ei=<hypo,hyper>∈HRS,同时执行HRS=HRS-{ei}; 
第3.3步:判断在V中某个下位实体与hypo是否等价,如果不存在等价实体,则将hypo加入V,V=V∪{hypo}; 
第3.4步:判断在V中某个上位实体与hyper是否等价,如果不存在等价实体,则将 hyper加入V,V=V∪{hyper}; 
第3.5步:如果hyper或hypo任何一个在V中不存在等价实体,则将ei作为G的一条新的边,即E=E∪{ei}; 
第3.6步:执行第3.2步,直到HRS为空;得到有向无权简单图G; 
第3.7步:根据实体root∈V及G,通过有向无权简单图G的深度优先遍历得到以root为根的分类树T=(V',E',root),其中
CN201410040234.9A 2014-01-27 2014-01-27 一种从维基百科半结构化数据自动构建分类树的方法 Expired - Fee Related CN103778238B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201410040234.9A CN103778238B (zh) 2014-01-27 2014-01-27 一种从维基百科半结构化数据自动构建分类树的方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201410040234.9A CN103778238B (zh) 2014-01-27 2014-01-27 一种从维基百科半结构化数据自动构建分类树的方法

Publications (2)

Publication Number Publication Date
CN103778238A CN103778238A (zh) 2014-05-07
CN103778238B true CN103778238B (zh) 2015-03-04

Family

ID=50570473

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201410040234.9A Expired - Fee Related CN103778238B (zh) 2014-01-27 2014-01-27 一种从维基百科半结构化数据自动构建分类树的方法

Country Status (1)

Country Link
CN (1) CN103778238B (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109710725A (zh) * 2018-12-13 2019-05-03 中国科学院信息工程研究所 一种基于文本分类的中文表格列标签恢复方法和系统

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105760514B (zh) * 2016-02-24 2018-12-07 西安交通大学 一种从社区问答网站自动获取知识领域短文本的方法
CN105787105B (zh) * 2016-03-21 2019-04-19 浙江大学 一种基于迭代模型的中文百科知识图谱分类体系构建方法
CN106649819B (zh) * 2016-12-29 2021-04-02 北京奇虎科技有限公司 一种提取实体词和上位词的方法及装置
CN107943838B (zh) * 2017-10-30 2021-09-07 北京大数元科技发展有限公司 一种自动获取xpath生成爬虫脚本的方法及系统
CN109933692B (zh) * 2019-04-01 2022-04-08 北京百度网讯科技有限公司 建立映射关系的方法和装置、信息推荐的方法和装置
US11501070B2 (en) 2020-07-01 2022-11-15 International Business Machines Corporation Taxonomy generation to insert out of vocabulary terms and hypernym-hyponym pair induction
CN114329076A (zh) * 2021-12-13 2022-04-12 珠海市新德汇信息技术有限公司 半结构化数据规范处理方法、存储介质及设备

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1766871A (zh) * 2004-10-29 2006-05-03 中国科学院研究生院 基于上下文的半结构化数据语义提取的处理方法
CN100592296C (zh) * 2007-12-27 2010-02-24 腾讯科技(深圳)有限公司 一种分页方法及分页装置
CN101520798A (zh) * 2009-03-06 2009-09-02 苏州锐创通信有限责任公司 基于垂直搜索和聚焦爬虫的网页分类技术
CN101908071B (zh) * 2010-08-10 2012-09-05 厦门市美亚柏科信息股份有限公司 一种提高搜索引擎搜索效率的方法及其系统
US8788436B2 (en) * 2011-07-27 2014-07-22 Microsoft Corporation Utilization of features extracted from structured documents to improve search relevance
CN102591992A (zh) * 2012-02-15 2012-07-18 苏州亚新丰信息技术有限公司 基于垂直搜索和聚焦爬虫技术的网页分类识别系统及方法

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109710725A (zh) * 2018-12-13 2019-05-03 中国科学院信息工程研究所 一种基于文本分类的中文表格列标签恢复方法和系统

Also Published As

Publication number Publication date
CN103778238A (zh) 2014-05-07

Similar Documents

Publication Publication Date Title
CN103778238B (zh) 一种从维基百科半结构化数据自动构建分类树的方法
US8868621B2 (en) Data extraction from HTML documents into tables for user comparison
CN103023714B (zh) 基于网络话题的活跃度与集群结构分析系统及方法
CN101515287B (zh) 一种用于复杂页面的包装器自动生成方法
CN107423391B (zh) 网页结构化数据的信息提取方法
CN104572934B (zh) 一种基于dom的网页关键内容抽取方法
Zheng et al. Template-independent news extraction based on visual consistency
CN103838796A (zh) 一种网页结构化信息抽取方法
CN103870495B (zh) 用于从网站中提取信息的方法和装置
CN106354844B (zh) 基于文本挖掘的服务组合包推荐系统及方法
CN104331438B (zh) 对小说网页内容选择性抽取方法和装置
CN105389329A (zh) 一种基于群体评论的开源软件推荐方法
CN102650999A (zh) 一种从网页中抽取对象属性值信息的方法和系统
CN103246732A (zh) 一种在线Web新闻内容的抽取方法及系统
CN102760150A (zh) 基于属性重现和标签路径的网页抽取方法
CN102654873A (zh) 基于中文分词的旅游信息抽取与聚合方法
CN104268283A (zh) 一种自动解析互联网网页的方法
Nikhil et al. A survey on text mining and sentiment analysis for unstructured web data
CN107220250A (zh) 一种模板配置方法及系统
Tahir et al. Corpulyzer: A novel framework for building low resource language corpora
CN107145591B (zh) 一种基于标题的网页有效元数据内容提取方法
CN104915438B (zh) 一种获取特定话题微博中pcu关联数据的方法
CN105528357A (zh) 一种基于url和网页文档结构的相似性的网页内容提取方法
CN106547821A (zh) 一种浏览器内根据关键词搜索相关网页的方法
CN106897287A (zh) 网页发布时间抽取方法和用于网页发布时间抽取的装置

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20150304

Termination date: 20180127

CF01 Termination of patent right due to non-payment of annual fee