在构建知识图时,第一步(如果我理解正确)是收集结构化数据,主要是使用某些本体编写的RDF三元组,例如Schema.org。 现在,收集这些RDF三元组的最佳方法是什么?
似乎我们可以做的两件事。
使用抓取工具抓取网页内容,对于特定网页,请在此页面上搜索RDF三元组。如果我们找到它们,请收集它们。如果没有,请转到下一页。
对于当前页面,使用一些NLP工具来理解页面内容(例如使用NELL,请参阅http://rtw.ml.cmu.edu/rtw/),而不是查找现有的RDF三元组。
现在,我的理解(基本/几乎)是正确的吗?如果是这样,我们为什么要使用NLP?为什么不依靠现有的RDF三元组呢?看起来像NLP并不像我们希望的那样好/可靠......我可能完全错了。
让我们说我们想要使用@AKSW提到的第三种方法创建RDF三元组,即从一些网页(文本)中提取RDF三元组。
For example, this page。如果你打开它并使用"查看源代码",那么你可以看到很多语义标记(使用OGP和Schema.org)。所以我的抓取工具可以简单地执行此操作:只抓取/解析这些标记,并轻松将这些标记更改为RDF三元组,然后声明成功,转到下一页。
因此,爬虫在此文本页面上所做的非常简单:只收集语义标记并从这些标记创建RDF三元组。它简单而有效。
另一种选择是使用NLP工具从同一文本中自动提取结构化语义数据(可能我们对现有标记不满意)。一旦我们提取结构化信息,我们就会从中创建RDF三元组。这显然是一件非常难的事情,我们也不确定它的准确性(?)。
这里的最佳做法是什么,这里的优缺点是什么?我更喜欢简单/简单的方式 - 只需收集现有的标记并将其更改为RDF内容,而不是使用NLP工具。
我不确定有多少人同意这个?这是最好的做法吗?或者,这只是我们的要求在多大程度上引领我们的问题?
答案 0 :(得分:1)
您的问题不明确,因为您没有说明您的数据来源,并且此页面上的所有答案都认为它是网络标记。这不一定是这种情况,因为如果您对根据最佳实践(称为关联数据)发布的结构化数据感兴趣,您可以使用所谓的SPARQL端点来查询链接开放数据(LOD)数据集并通过联合生成您的知识图查询。如果要从网站标记中收集结构化数据,则必须解析标记以查找和检索用RDFa,HTML5微数据或JSON-LD编写的轻量级注释。这些注释的可用性可能在很大一部分网站上受到限制,但对于以RDF表示的结构化数据,您根本不应使用NLP,因为RDF语句是机器可解释的,并且比非结构化数据(如文本网站内容)更易于处理。创建你提到的三元组的最好方法取决于你想要达到的目的。