从维基百科中提取数据

时间:2014-07-24 15:33:12

标签: java wikipedia-api

我正在创建一个Spring应用程序,我需要与Wikipedia集成。特别是,我想提取给定(大)城市集的数据,例如:国家,网站和坐标。

我试图了解哪些库或框架可能有用,但我正在处理的一个大问题是我想从中提取信息的页面没有参考结构。主要问题不是缺少一些信息,这是完全可以接受的,而是城市代表性从一个城市到另一个城市的变化。例如。 DBPedia本体(例如http://dbpedia.org/ontology/City)没有反映我可以从dbpedia.org/sparql通过SPARQL查询提取的内容。这样,我不知道如何系统地提取我需要的数据(即我的整个集合)。

是否有任何技术可以支持我在一组预定义城市中提取数据的任务?

一种解决方案可能是实现一些自然语言处理,以便在整个维基百科页面中寻找所需的信息,但如果我必须自己编写,那需要付出很多努力。 另一个解决方案可能是利用结构化数据源为我预先处理维基百科,并为所包含的信息提供一些结构,但我找不到一个。 第三种解决方案可能是尝试向维基百科提出不同的查询,但我无法找到通过维基百科API提取所需信息的方法。

3 个答案:

答案 0 :(得分:5)

维基百科的数据正在转移到Wikidata。使用他们的API你可以得到你想要的。如果您想要快捷方式,可以使用维基数据查询工具:http://wdq.wmflabs.org/api_documentation.html

答案 1 :(得分:2)

名为Wiki Parser的软件将维基百科数据(整个维基百科数据库转储)转换为标准XML。它还处理信息框,这是你正在寻找的。然后,您可以使用任何XML库从解析的XML中提取所需的信息。

答案 2 :(得分:0)

我不是一个java人,但我在.Net做了类似的事情。

您需要某种网络抓取框架。

在.Net中有HtmlAgilityPack。在哪里获得该网站,然后使用fx XPATH浏览网站的元素。当然你需要知道网站上的信息是什么。这可能是标题,文本等周围的标签。

对于java,我刚发现的框架是

  • 标签汤
  • 的HtmlUnit
  • Web的收获
  • jARVEST
  • jsoup
  • Jericho HTML Parser