获取维基百科上包含特定单词的所有页面标题

时间:2013-01-22 17:55:50

标签: javascript mediawiki sparql wikipedia dbpedia

我正在使用HTML和JavaScript编写an "auto-wikifier" tool。对于要被文本化的文本中的每个单词,我需要获得包含该单词的页面列表(以便文本中的匹配短语可以被自动获取,如果找到它们)。有没有办法使用维基百科的API或Web服务之一获取包含特定单词的所有维基百科页面的列表?

function getMatchingPageTitles(theString){
    //get a list of all matching page titles for a specific string, using one of Wikipedia's APIs or web services
}

2 个答案:

答案 0 :(得分:6)

FirstI'm not sure I understand how would something { {3}} like that be。 (维基百科有关于所有常用词的文章,我认为与它们的链接没有任何用处。)

但是如果你真的想做这样的事情,我认为更好的方法是使用useful找出你输入文字中哪些词有文章。

例如,对于字符串I am writing an "auto-wikifier" tool,您的查询可能类似于:

the API

答案是:

<api>
  <query>
    <normalized>
      <n from="am" to="Am" />
      <n from="writing" to="Writing" />
      <n from="an" to="An" />
      <n from="auto-wikifier" to="Auto-wikifier" />
      <n from="tool" to="Tool" />
    </normalized>
    <pages>
      <page ns="0" title="Auto-wikifier" missing="" />
      <page pageid="2513432" ns="0" title="Am" />
      <page pageid="2513422" ns="0" title="An" />
      <page pageid="25346998" ns="0" title="I" />
      <page pageid="30677" ns="0" title="Tool" />
      <page pageid="32977" ns="0" title="Writing" />
    </pages>
  </query>
</api>

很少注意到:

  • 结果不符合您指定的顺序。
  • 如果页面不存在,则结果为missing=""属性。
  • JSON和JSONP格式也可用,可能更适合JavaScript。
  • titles参数的每个查询的限制为50个。

答案 1 :(得分:1)

API:Allpages是一个有趣的开始。可悲的是,it is limited to 500 queries