【问题标题】:Easy way to export Wikipedia's translated titles导出维基百科翻译标题的简单方法
【发布时间】:2023-03-31 22:00:03
【问题描述】:

有没有一种简单的方法可以导出维基百科的翻译标题以获得这样的集合:
russian_title -> english_title

我试图从 ruwiki-latest-pages-meta-current.xml.bz2 and ruwiki-latest-pages-articles.xml.bz2,但是,翻译的数量少于 25k。

我发现有些不存在。例如。可以看到英文 wiki here 的链接,但转储中没有链接 [[en:Yandex]]

也许我应该尝试解析英文维基百科,但我确信有更好的解决方案。

顺便说一句,我正在使用wikixmlj + 试图用grep 查找en:Yandex

UPD: 链接到@svick 的解决方案数据:http://dumps.wikimedia.org/ [语言代码] wiki/latest/ 例如http://dumps.wikimedia.org/ruwiki/latest/

【问题讨论】:

  • 谢谢@Anton。但是维基媒体转储下载页面上有很多链接:dumps.wikimedia.org/enwiki/latest。我需要处理数以百万计的英语文章(内容)及其有关西班牙语和德语的相关文章。我应该下载哪些文件?

标签: wikipedia


【解决方案1】:

各种语言的维基百科文章之间的大部分链接现在位于Wikidata。因此,如果您想获取源代码,您可以下载 Wikidata 的转储并对其进行解析(它是 JSON 格式)。

但我认为更好的方法是使用the langlinks table 的转储。这包含您想要的信息,包括来自 Wikidata 的链接和仍处于旧形式的链接。

此转储为 SQL 格式。您可以将该转储导入 MySQL 数据库,也可以直接解析它(我写过a .Net library that does that)。

该表包含从您的 wiki 的页面 id(在您的情况下为俄语维基百科)到其他 wiki 中的页面标题的映射。这意味着您将需要您感兴趣的页面的页面 ID。对于少量页面,您可以使用 the “Page information” link 手动查找它们,或者您可以使用 API。但如果您需要大量页面,则应下载包含此映射的page 表的转储。

【讨论】:

  • 似乎可以解决问题。打算用一些 JVM 语言编写脚本。谢谢。
  • 我做错了什么? $ grep 'Alice' extwiki-20131231-langlinks.sql 什么也不返回。这是错误的转储吗?
  • @Anton 您希望返回什么?我在 extwiki 上找不到任何包含标题中带有“Alice”的页面的语言链接的页面。 (而且我在 extwiki 上也找不到标题中包含“Alice”的任何页面,但您的 grep 找不到这些页面。)
  • 我希望像 ([id], 'en', 'Alice's Adventures in Wonderland') 这样的东西。我正在寻找所有维基百科标题的翻译。
  • 我之前构建了这个来帮助:adamhwang.github.io/wikitranslator 代码是开源的
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2019-04-18
  • 1970-01-01
  • 1970-01-01
  • 2011-04-16
  • 2018-01-02
  • 1970-01-01
  • 2013-11-13
相关资源
最近更新 更多