使用stanford NER获取实体的dbpedia链接



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

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

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

然而,标签并不总是您想要的,有时您需要实际查找分配给URI的name。例如,如果打开硫酸页面,可以看到其中包含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。

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

最新更新