我有一个网站,允许用户提交野生动物的照片。上传后,他们可以识别照片上的硬币,例如" Polar bear"。
这使我从维基百科获取有关该物种的信息,使用该搜索词:
$query = "http://en.wikipedia.org/w/api.php?action=query&rvprop=content&format=json&titles=" . $query;
$pages = file_get_contents($query);
此类查询返回以下内容之一:
我遇到的问题与套管有关。例如,搜索词" Milky stork",什么都不返回,甚至不返回重定向。 " Milky Stork"确实有效。对查询中的每个单词进行大写,也不是解决方案,因为可能是某些页面是小写的,而大写查询不起作用。没有一致性。
我正在寻找一种方法来使其更加强大。不应该因为错误的套管而导致查询失败,甚至无法在用户侧预测。
有没有人知道这方面的解决方案?除了尝试每种可能的外壳组合?
注意:有些人可能会建议使用dbpedia,但这不能满足我的总需求。
答案 0 :(得分:3)
不幸的是,没有简单的解决方案 - 阅读http://www.mediawiki.org/wiki/API:Opensearch#Note_on_case_sensitivity
您可以尝试使用opensearch来查找合适的大小写(如果普通查询没有返回任何可用的大小): http://en.wikipedia.org/w/api.php?action=opensearch&search=milky+stork&namespace=0&suggest= 会给你
["milky stork",["Milky Stork"]]
答案 1 :(得分:1)
我认为尝试所有可能的组合是一种可行的解决方案。因此,您的查询可能如下所示:
http://en.wikipedia.org/w/api.php?action=query&rvprop=content&format=json&titles=Milky stork|Milky Stork
请注意,维基百科上的第一个字母不区分大小写。