5

美好的一天,堆栈溢出,

我需要向用户建议一个单词的不同上下文,以便他有可能消除它的歧义。

例如:一个单词“ less ”可以是 Unix 程序、css 框架或其他一些东西。单词“ apple ”可以是水果、公司、河流、美国的一个州(大苹果)或一堆其他东西。

我希望你明白了。

我查看了互联网,到目前为止我只能提出这个查询。

但它仍然远非完美。它经常给出太多或太少的词,有时什么也没有(对于“jquery”)。

http://www.visualdataweb.org/relfinder/relfinder.php似乎也使用了 dbpedia,但它的结果比我的要好得多。

我应该如何更改我的查询以获得更相关的结果?

4

1 回答 1

5

如果您正在寻找 Web API,请使用:DBpedia LookupDBpedia Spotlight。如果您需要在 SPARQL 中执行此操作,可以使用DBpedia Lexicalization Dataset

对于 DBpedia 查找,您可以提供一个字符串并检索带有与这些字符串匹配的标签的 DBpedia 资源: lookup.dbpedia.org/api/search.asmx/KeywordSearch?QueryString=apple

对于 DBpedia Spotlight,您可以选择提供更多上下文: spotlight.dbpedia.org/rest/candidates ?text=apple+company+macintosh+computer

对于词汇化数据集,尚无可用的 SPARQL 端点。您需要下载它,将其加载到您自己的 RDF 存储中并运行如下查询:

PREFIX skos: <http://www.w3.org/2004/02/skos/core#>
SELECT ?resource ?score WHERE {
GRAPH ?g {
  ?resource skos:altLabel ?label.
}
  ?g <http://dbpedia.org/spotlight/score> ?score.
  FILTER (REGEX(?label, "apple", "i"))
}
于 2012-05-22T08:49:17.647 回答