从表中提取信息三元组

时间:2012-12-31 14:11:54

标签: relationship semantics ontology wikipedia

我有一个非常大的HTML表格数据集(最初从维基百科中提取)。我想从每个表中提取有意义的tripleSet(这与从维基百科信息框中提取三元组相矛盾,这是相对容易的任务)。

三元组必须对人类具有语义意义,而不像DBpedia,其中三元组被提取为URI和其他格式。所以我只需提取表格文本值即可。

请记住各种桌面方向和形状。 我看到的主要任务是提取表记录的主要实体(例如学校记录中的学生姓名),以便它可以用作三元组的“主题”。

示例 enter image description here

对于像这样的表,我们应该知道主要实体是“Server”而其他只是对象,所以关系应该是这样的:

<AOLserver> <Developed by> <NaviSoft>.
<AOLserver> <Open Source> <Yes>.
<AOLserver> <Software license> <Mozilla>.
<AOLserver> <Last stable version> <4.5.1>.
<AOLserver> <Release date> <2009-02-02>.

另外,请记住,并不总是主要实体位于表格的第一列,甚至有些表格都不会涉及同一主题。

这是一个表,主要实体是最后一列而不是第一列:

enter image description here

此表应生成如下关系:

<Arsène Wenger> <Position> <Manager>.
<Steve Bould> <Position> <Assistant manager>

问题

我的第一个问题是,这可以使用基于规则的方法来完成,围绕示例制定一些规则并尝试概括以便我可以检测到正确的实体吗?你能建议一些示例规则吗?

第二个问题是关于评估,我该如何评估这样的系统?我如何衡量我的表现,以便我可以加强它?

2 个答案:

答案 0 :(得分:1)

梦幻般的项目!!如果你让它工作,def尝试将它合并到dbpedias爬虫/提取器 - http://wiki.dbpedia.org/Documentation中。

供参考 - http://en.wikipedia.org/wiki/Comparison_of_web_server_software

如果查看HTML,列标题位于thead元素中,而行全部包含在tbody元素内的tr元素中,实体的标题(/ rdfs:label)位于th元素中 - 这应该走很长的路要解决你的问题,而不要太肮脏和不精确。

我认为检查html结构以查看有多少行的元素值得评估这种方法。

在第二个例子中(http://en.wikipedia.org/wiki/Arsenal_F.C.)确实它没有一个thead元素帮助ie。 - 允许我们假设页面本身即。阿森纳是表中数据的主题。

还有关于维基百科的vcard散布等微格式可能会停止阐明关系

我不确定它在维基百科的所有表格中有多普遍,但应该是一个好的开始。我会想象它能够尽可能地坚持使用html结构和微格式,而不是陷入任何过于棘手的事情

此外 - 每个链接都有一个dbpedia uri来识别它,这在这些情况下非常有用。例如。 http://example.com/resource/AOLserver http://example.com/property/Server http://dbpedia.org/resource/AOLserverhttp://example.com/resource/AOLserver http://example.com/property/Developed_by http://dbpedia.org/resource/NaviSofthttp://example.com/property/Developed_by一个rdf:财产。 http://example.com/property/Developed_by rdfs:label“由”

开发 你知道吗 - http://wifo5-03.informatik.uni-mannheim.de/bizer/silk/ - 值得生成映射

答案 1 :(得分:1)

所以,最后我已经能够实现我的项目的目标,它需要大量的工作和测试,但它已经实现。

这个想法主要停留在以下管道中:

1-用于提取表并将其导入内存中对象的组件

2 - 排除坏表的组件,这些是表标签中使用的东西,但它们不是真正的表(有时页面的编写者想要组织数据外观,所以他们将它们放在表中)< / p>

3-一个组件,用于去除表格的样式,并通过以跨度数重复数据来解析列/行跨度

4-a基于机器学习的分类器,用于对表格的方向(水平/垂直)和该表格的标题行/列进行分类。

5-a基于机器学习的分类器,用于对应该是关系三元组的“主题”的行/列进行分类。主题&gt; &LT;谓词&gt; &LT;对象&gt;

第一个分类器是一个支持向量机分类器,它具有字符数,表/行单元计数比,数字与文本比,大写等特征。 我们在精度和召回率方面达到了80%~85%

第二个分类器是一个随机森林分类器,它采用与一行/列内的单元格相关性更相关的特征。我们在精确度和召回率方面也达到了85%左右。

该过程涉及一些其他改进组件和启发式方法,以使输出更清晰并与表格的上下文相关

通常,维基百科没有使用其他数据来使该工具更加通用于网络上的任何html表。但是分类器的训练数据主要偏向维基百科内容!

一旦完成,我将用源代码更新问题代码。