美好的一天,stackoverflow,

我需要建议用户为一个单词使用不同的上下文,以便他可以消除该单词的歧义。

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

我希望你有主意。

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

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

http://www.visualdataweb.org/relfinder/relfinder.php似乎也使用dbpedia,但其结果远比我的好。

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

最佳答案

如果您正在寻找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

对于Lexicalization数据集,尚无SPARQL端点可用。您将需要download it,将其加载到您自己的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"))
}

关于rdf - 查询dbpedia以查找可能的上下文以消除单词歧义,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/10572606/

10-13 00:26