0

我有一个非常大的 HTML 表数据集(最初从 Wikipedia 中提取)。我想从这些表中提取有意义的tripleSet(这不会与从维基百科信息框中提取三元组相冲突,这是相对容易得多的任务)。

对于人类来说,三元组必须在语义上有意义,而不是像 DBpedia 那样将三元组提取为 URI 和其他格式。所以我可以只提取表格文本值。

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

例子 在此处输入图像描述

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

<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>.

另外,请记住,主要实体并不总是位于表格的第一列,甚至有些表格根本不谈论同一主题。

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

在此处输入图像描述

该表应生成如下关系:

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

问题

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

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

4

2 回答 2

1

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

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

1-提取表并将它们导入内存对象的组件

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

3-剥离表格样式并通过按跨度数重复数据来解决列/行跨度的组件

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

5-一个基于机器学习的分类器,用于对应该是关系三元组的“主题”的行/列进行分类<主题><谓词><对象>

第一个分类器是支持向量机分类器,它采用字符计数、表/行单元格计数比率、数字与文本比率、大写等特征。我们在准确率和召回率上都达到了大约 80~85%

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

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

一般来说,维基百科没有使用额外的数据来使该工具更适用于网络上的任何 html 表格。但是分类器的训练数据主要偏向于维基百科的内容!

完成后,我将使用源代码更新问题代码。

于 2013-02-12T09:56:55.633 回答
1

很棒的项目!!如果你让它工作,def尝试将它纳入 dbpedias crawlers/extractors - 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元素帮助,即。- 允许我们假设页面本身即。阿森纳是表中数据的主体。

还有一些微格式,如关于维基百科的 vcard scatter 可能会阻止阐明这些关系

我不确定它在维基百科的所有表格中的通用性,但应该是一个好的开始。我想尽可能地坚持 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:Property。http://example.com/property/Developed_by rdfs:label "开发者"@en

你见过 - http://wifo5-03.informatik.uni-mannheim.de/bizer/silk/ -可能值得生成映射

于 2013-02-11T22:37:07.253 回答