【问题标题】:Get dbpedia link of entity using stanford NER使用 stanford NER 获取实体的 dbpedia 链接
【发布时间】:2015-04-24 10:19:52
【问题描述】:

我正在尝试使用 stanford NER 从文本中查找实体。到目前为止它工作正常。现在我想找到实体的dbpedia 链接。 我在alchemy API 中看到了它。 是否可以使用 stanford NER 找到实体的dbpedia 链接?

【问题讨论】:

  • 当然,您只需要编写一个 SPARQL 查询就可以从 DBpedia 中获取数据。
  • 您能否提供一个您的 NER 提取内容的示例,然后我们可以为您提供 DBpedia 的链接。

标签: nlp sparql stanford-nlp dbpedia named-entity-recognition


【解决方案1】:

通常,Dbpedia 中的所有实体都有rdfs:label,这是一个分配给实体的字符串。因此,当您遇到 NER 提取的名称时,可以将其用于过滤目的。以下示例将提供标签为 Sulfuric acid 的所有实体的 URI:

select distinct * 
    where {
    ?URI rdfs:label ?name.
    filter(str(?name)="Sulfuric acid")
} 

但是,标签并不总是您所寻找的,您有时需要实际查找分配给您的 URI 的 name。例如,如果您打开sulfuric acid 页面,您可以看到它包含dbpprop:iupacname。因此,您需要将查询更改为:

select distinct * 
    where {
    ?URI dbpprop:iupacname ?name.
    filter(str(?name)="Sulfuric acid")
} 

在这个特定示例中,结果集是相同的。但是假设您的任务是查找London,那么您需要将您的属性更改为foaf:name,并且在运行以下两个查询时,结果集完全不同。

select distinct * 
    where {
    ?URI rdfs:label ?name.
    filter(str(?name)="London")
} 

这包含 8 个结果,而以下查询包含 21 个结果。

    select distinct * 
    where {
    ?URI foaf:name ?name.
    filter(str(?name)="London")
}

所以我的意思是,您需要决定是否要使用标签或名称。如果您决定使用名称,则需要找到合适的属性来编写 SPARQL 查询。之后,您只需要一个方法来使用您的查询访问 DBpedia。

【讨论】:

    【解决方案2】:

    您可以使用 Stanford NER 提取实体名称和 DBpedia Spotlight 以链接到 DBpedia URI。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-06-16
      相关资源
      最近更新 更多