Wikipedia/MediaWiki API:查找文章是否涉及个人、组织或位置

Wikipedia/MediaWiki API:查找文章是否涉及个人、组织或位置,mediawiki,wikipedia,wikipedia-api,Mediawiki,Wikipedia,Wikipedia Api,我试图找出是否有一种方法可以确定给定的文章是否涉及某个人、组织或地点。我想答案就在“类别”和“类别”参数中。。。然而,问题是 以阿尔伯特·爱因斯坦为例。查询的结果如下: …告诉我,阿尔伯特·爱因斯坦确实是“柏林人”的一员 类似地,只要浏览维基百科上的分类树,我就可以通过以下路径显示“柏林人”是“人”类别的子类别: People>People\u categories\u按参数>按地点>按城市>按国家和城市>按德国城市>柏林人 但是,Albert Einstein(直接)不是“人”类别的成员,因

我试图找出是否有一种方法可以确定给定的文章是否涉及某个人、组织或地点。我想答案就在“类别”和“类别”参数中。。。然而,问题是

以阿尔伯特·爱因斯坦为例。查询的结果如下:

…告诉我,阿尔伯特·爱因斯坦确实是“柏林人”的一员

类似地,只要浏览维基百科上的分类树,我就可以通过以下路径显示“柏林人”是“人”类别的子类别:

People>People\u categories\u按参数>按地点>按城市>按国家和城市>按德国城市>柏林人

但是,Albert Einstein(直接)不是“人”类别的成员,因此此查询:

…在类别下没有得到任何结果,也就是说,它不是匹配项

是否有某种方法可以确定页面是否是任何类别X的成员,其中类别X是指定类别Y的后代


谢谢

我不知道维基百科API有什么方法可以做到这一点,但我可以想出一种自由基的方法。下面的freebase查询将获得与给定Wikipedia文章关联的freebase“类型”。“人”、“政客”、“艺术家”、“地方”等都很容易从这些类型中辨认出来

{
  "key": [{
    "namespace": "/wikipedia/en",
    "value": "William_Ambrose"
  }],
  "type": []
}
(当然,用实际的维基百科语言替换
en
,用维基百科文章名替换
“William_Amrose”
。不过,请参阅下面关于转义的注释!)

在这种情况下,结果是:

{
  "result": {
    "type": [
      "/common/topic",
      "/people/person",
      "/people/deceased_person",
      "/government/politician"
    ],
    "key": [{
      "namespace": "/wikipedia/en",
      "value": "William_Ambrose"
    }]
  }
}
。。。这显然意味着这是一个“人”和一个“政治家”(同时也是一个“死者”,但那是另一回事)

有关API如何工作的注释和REST示例,请参见我对的回答。特别是,请仔细阅读有关从Google获取API密钥和Freebase转义字符串的说明


祝你好运。

现在你应该这样做,谁的遗嘱会告诉你“是人类”之类的事情。

没有API。您只能像以前一样浏览类别树。如果该工具对您有帮助的话,请查看该工具(文件格式应易于解析)。为了让生活更困难,我刚刚读到维基百科的分类“树”实际上根本不是一棵树,而是一个包含大量电路的有向图。。。而且,对每个查询树执行一级遍历听起来不太理想。一个可能的“足够好”的解决方案是只检查一个页面是否属于以一个或多个特定单词开头的类别,例如“人员…”或“公司…”。。。有什么办法吗?看起来发电机可能很有用,但到目前为止我还不知道如何使用。这看起来是一个很好的选择。我从没听说过Freebase。谢谢