美好的一天,stackoverflow,
我需要建议用户使用不同的上下文,这样他才有可能对其进行消歧。
例如:单词“ less ”可以是Unix程序,css框架或其他一些东西。 “ apple ”这个词可以是水果,公司,河流,美国的一个州(大苹果)或其他一些东西。
我希望你明白了。
我浏览了互联网,到目前为止我只能查询this。
但它仍然远非完美。它经常提供太多或太少的单词,有时甚至没有(对于“jquery”)。
http://www.visualdataweb.org/relfinder/relfinder.php似乎也使用了dbpedia,但其结果远远好于我的。
如何更改查询以获得更相关的结果?
答案 0 :(得分:4)
如果您正在寻找Web API,请使用:DBpedia Lookup或DBpedia Spotlight。如果您需要在SPARQL中执行此操作,则可以使用DBpedia Lexicalization Dataset。
对于DBpedia Lookup,您可以给出一个字符串并检索带有与这些字符串匹配的标签的DBpedia资源: lookup.dbpedia.org/api/search.asmx/KeywordSearch?QueryString=apple
对于DBpedia Spotlight,您可以选择提供更多上下文: spotlight.dbpedia.org/rest/candidates?text=apple+company+macintosh+computer
对于词汇化数据集,还没有可用的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"))
}