从维基百科中的单词获取类别

时间:2014-04-28 11:05:11

标签: wikipedia wikipedia-api

我想知道这个词落入的类别。

就像它可能是一个地方,食物,衣服......等我如何从维基百科API获得?目前我在这个例子中使用:比萨饼属于类别食物。我怎么做到。以下查询给了我整个页面。我怎么只得到类别?我非常感谢任何帮助。提前致谢。

http://en.wikipedia.org/w/api.php?action=query&prop=categories&rvprop=content&format=xml&titles=pizza  

响应:

<api><warnings><main xml:space="preserve">Unrecognized parameter: 'rvprop'</main></warnings><query-continue><categories clcontinue="24768|Pizza"/></query-continue><query><normalized><n from="pizza" to="Pizza"/></normalized><pages><page pageid="24768" ns="0" title="Pizza"><categories><cl ns="14" title="Category:All articles needing additional references"/><cl ns="14" title="Category:All articles with unsourced statements"/><cl ns="14" title="Category:Articles including recorded pronunciations"/><cl ns="14" title="Category:Articles needing additional references from June 2010"/><cl ns="14" title="Category:Articles with unsourced statements from March 2013"/><cl ns="14" title="Category:Flatbreads"/><cl ns="14" title="Category:Greek inventions"/><cl ns="14" title="Category:Italian cuisine"/><cl ns="14" title="Category:Italian inventions"/><cl ns="14" title="Category:Mediterranean cuisine"/></categories></page></pages></query></api>

1 个答案:

答案 0 :(得分:4)

prop=revisions替换为prop=categories,您将获得该文章所在类别的列表。

例如,api.php?action=query&prop=categories&titles=pizza为您提供(除其他外):

<api>
 <query>
  <pages>
   <page pageid="24768" ns="0" title="Pizza">
    <categories>
     <cl ns="14" title="Category:All articles needing additional references"/>
     <cl ns="14" title="Category:All articles with unsourced statements"/>
     <cl ns="14" title="Category:Articles including recorded pronunciations"/>
     <cl ns="14" title="Category:Articles needing additional references from June 2010"/>
     <cl ns="14" title="Category:Articles with unsourced statements from March 2013"/>
     <cl ns="14" title="Category:Flatbreads"/>
     <cl ns="14" title="Category:Greek inventions"/>
     <cl ns="14" title="Category:Italian cuisine"/>
     <cl ns="14" title="Category:Italian inventions"/>
     <cl ns="14" title="Category:Mediterranean cuisine"/>
    </categories>
   </page>
  </pages>
 </query>
</api>

请注意,您获得了文章类别,而不是文章所涉及的某种分类。你可能可以关注一个链条&#39; (更像是一棵树)类别,你可以关注几个大类别。例如,Flatbreads类别会导致Breads,这会导致Foods。这意味着你可以认为披萨是一种食物。但是,这并不能保证。文章类别并不是真正意味着以这种方式使用。

如果你想更好地分类事物而不是文章,可以试试像Freebase这样的东西 - 例如,它有助于将披萨列为一种食物。示例查询如下所示:

[{"id":null,"name":"Pizza","type":[{"id":null,"name":null}]}]

除此之外,还有食物,美食,面包和人造物等。