Nlp 如何为一个简单的知识图收集RDF三元组?

Nlp 如何为一个简单的知识图收集RDF三元组?,nlp,rdf,semantic-web,linked-data,Nlp,Rdf,Semantic Web,Linked Data,构建知识图时,第一步(如果我理解正确的话)是收集结构化数据,主要是使用一些本体编写的RDF三元组,例如Schema.org现在,收集这些RDF三元组的最佳方法是什么? 看来我们可以做两件事 使用爬虫对web内容进行爬网,对于特定页面,在该页面上搜索RDF三元组。如果我们找到它们,就收集它们。如果没有,请转到下一页 对于当前页面,不要查找现有的RDF三元组,而是使用一些NLP工具来理解页面内容(例如使用NELL,请参阅) 现在,我的上述理解(基本/几乎)正确吗?如果是,为什么我们要使用NLP?为什

构建知识图时,第一步(如果我理解正确的话)是收集结构化数据,主要是使用一些本体编写的RDF三元组,例如Schema.org现在,收集这些RDF三元组的最佳方法是什么?

看来我们可以做两件事

  • 使用爬虫对web内容进行爬网,对于特定页面,在该页面上搜索RDF三元组。如果我们找到它们,就收集它们。如果没有,请转到下一页

  • 对于当前页面,不要查找现有的RDF三元组,而是使用一些NLP工具来理解页面内容(例如使用NELL,请参阅)

  • 现在,我的上述理解(基本/几乎)正确吗?如果是,为什么我们要使用NLP?为什么不依赖现有的RDF三元组呢?似乎NLP没有我们希望的那么好/可靠…我可能完全错了

    这里是问同样问题的另一次尝试 假设我们想使用@AKSW提到的第三种方法创建RDF三元组,即从一些网页(文本)中提取RDF三元组

    。如果您打开它并使用“ViewSource”,您可以看到相当多的语义标记(使用OGP和Schema.org)。因此,我的爬虫程序可以简单地做到这一点:只抓取/解析这些标记,并轻松地将这些标记更改为RDF三元组,然后声明成功,转到下一页

    所以爬虫在这个文本页面上所做的非常简单:只收集语义标记并从这些标记创建RDF三元组。它简单有效

    另一种选择是使用NLP工具从同一文本中自动提取结构化语义数据(可能我们对现有的标记不满意)。一旦我们提取结构化信息,我们就从中创建RDF三元组。这显然是一件很难做到的事情,我们也不确定它的准确性(?)

    这里的最佳实践是什么,优点/缺点是什么?我更喜欢简单/简单的方法-只需收集现有标记并将其更改为RDF内容,而不是使用NLP工具


    我不知道有多少人会同意这一点?这是最佳实践吗?或者,这仅仅是一个我们的需求将我们引向何方的问题?

    您的问题不清楚,因为您没有说明您的数据源,并且本页上的所有答案都假定它是web标记。事实并非如此,因为如果您对根据最佳实践发布的结构化数据(称为链接数据)感兴趣,则可以使用所谓的SPARQL端点查询链接开放数据(LOD)数据集,并通过联邦查询生成知识图。如果您想从网站标记中收集结构化数据,则必须解析标记以查找和检索用RDFa、HTML5微数据或JSON-LD编写的轻量级注释。此类注释的可用性可能在很大一部分网站上受到限制,但对于以RDF表示的结构化数据,您根本不应该使用NLP,因为RDF语句是机器可解释的,并且比非结构化数据(如文本网站内容)更容易处理。创建您提到的三元组的最佳方法取决于您试图实现的目标。

    您的问题很奇怪,我不知道您到底想听到什么……显然,要么I)您手动创建RDF三元组ii)要么重用现有RDF数据,要么iii)您从其他类型的源(如关系数据库)提取RDF数据,XML文件、文本…“我们为什么要NLP”?您还想如何从文本中自动提取结构化语义数据,而文本实际上只是非结构化数据?当然,你不必——你可以爬网并为每个网页手动生成RDF三元组——这可能很费时,对吧?我的错,没有清楚地问这个问题,让我再试一次,请看上面的问题。没有唯一的答案。1) 您甚至不知道现有的语义标记是如何创建的(它也可能是自动生成的),因此,不能保证正确性。高质量2)从文本中提取您自己的数据可以增加您可以找到的RDF事实的数量-显然,这项任务正在进行研究,并且在实现方面存在局限性。即使NLP工具具有100%的准确性,但事实并非如此,从这些提取的结构到RDF三元组的映射也非常重要。仅供参考(可能您知道):嵌入的RDF通常采用or格式。至于NLP,也许你可以试试。也许你会感兴趣。如果你喜欢爬行,请看看我的包装纸。对于基于Java的RDF ORM,请查看或