【问题标题】:Python libraries that can tokenize wikipedia pages可以标记维基百科页面的 Python 库
【发布时间】:2012-05-24 11:59:00
【问题描述】:

我想用一个或多个 python 库标记出感兴趣的维基百科页面。我对表格和列表最感兴趣。然后我希望能够将这些数据导入 Postgres 或 Neo4j。

例如,以下是我感兴趣的三个数据集:

每一个的来源都是用维基百科的标记品牌编写的,用于将它们呈现出来。原始数据表单中使用了许多特定于维基百科的标签和语法。 HTML 可能几乎是更简单的解决方案,因为我可以使用 BeautifulSoup。

有人知道更好的标记化方法吗?如果我采用最终的 HTML 并用 BeautifulSoup 解析它,我觉得我会重新发明轮子。另外,如果我能找到一种方法以 XML 格式输出这些页面,那么表数据可能没有被充分标记化,并且需要进一步处理。

【问题讨论】:

  • Here 是 wiki 语法的一些解析器。有一些 Python 解决方案,但您应该选择一个生成可以进一步处理的中间表示的解决方案。例如,mediawiki-parser 看起来很有希望。
  • Here's an example that uses mediawiki api to get data as XML. 注意:它不会标记标记(对于一些特定情况,处理原始文本可能比某些 mediawiki 标记解析器的标记输出更简单)。跨度>

标签: python web-scraping wikipedia


【解决方案1】:

由于 Wikipedia 是基于 MediWiki 构建的,因此您可以利用 api。还有Special:Export可以使用。

获得原始数据后,您可以通过mwlib 对其进行解析。

【讨论】:

  • 谢谢,但我特别关注已经标记页面的 Python 库。如果我从这个 API 开始,我会编写大量代码,如果我要使用 python-wikitools 之类的东西,仍然需要做很多解析。
  • 注意:如果您不希望托管代码(而是希望删除不需要的标记),那么使用 mwlib 会很痛苦。去过那里。试过了。想想还是会冒冷汗醒来。
  • 感谢克里斯的温暖! :D
【解决方案2】:

这更多地涉及语义网络方向,但DBPedia 允许使用 SPARQL 查询维基百科数据的部分(社区转换工作)。这使得提取所需数据在理论上很简单,但是处理 RDF 三元组可能很麻烦。

此外,我不知道 DBPedia 是否包含您感兴趣的任何数据。

【讨论】:

猜你喜欢
  • 2010-12-26
  • 2022-01-10
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多