【问题标题】:Parse Wiktionary XML data dump into MySQL database using PHP使用 PHP 将维基词典 XML 数据转储到 MySQL 数据库中
【发布时间】:2014-08-08 09:24:56
【问题描述】:

好的,我只是想解析Wikimedia 提供的维基词典Data Dump

我的目的是将 XML 数据转储到 MySQL 数据库中。我没有找到有关此 XML 结构的适当文档。此外,我无法打开该文件,因为它实际上非常大(~1 GB)。

我曾想过使用一些 PHP 脚本来解析它,但我对要继续的 XML 结构一无所知。因此,如果有人已经使用 PHP 解析(或知道任何解析工具)到 MySQL,请分享详细信息。如果在 PHP 中什么都没有,其他方法也可以。

我刚刚关注了这篇文章 (http://www.igrec.ca/lexicography/installing-a-local-copy-of-wiktionary-mysql/),但没有成功..:( 如果有人在此过程中成功,请提供帮助。在此先感谢。

【问题讨论】:

标签: php mysql xml-parsing data-dump wiktionary


【解决方案1】:

这些文件可以在 PHP 中解析,XMLReadercompress.bzip2:// stream 上运行。您拥有的文件结构堪称典范(查看前 3000 个元素):

\-mediawiki (1)
  |-siteinfo (1)
  | |-sitename (1)
  | |-base (1)
  | |-generator (1)
  | |-case (1)
  | \-namespaces (1)
  |   \-namespace (40)
  \-page (196)
    |-title (196)
    |-ns (196)
    |-id (196)
    |-restrictions (2)
    |-revision (196)
    | |-id (196)
    | |-parentid (194)
    | |-timestamp (196)
    | |-contributor (196)
    | | |-username (182)
    | | |-id (182)
    | | \-ip (14)
    | |-comment (183)
    | |-text (195)
    | |-sha1 (195)
    | |-model (195)
    | |-format (195)
    | \-minor (99)
    \-redirect (5)

文件本身有点大,所以需要相当长的时间来处理。或者,不要对 XML 转储进行操作,而只需通过 mysql 命令行工具导入 SQL 转储。网站上也提供 SQL 转储,请查看 英语维基词典的所有转储格式:


整个文件略大,包含超过 66 849 000 个元素:

\-mediawiki (1)
  |-siteinfo (1)
  | |-sitename (1)
  | |-base (1)
  | |-generator (1)
  | |-case (1)
  | \-namespaces (1)
  |   \-namespace (40)
  \-page (3993913)
    |-title (3993913)
    |-ns (3993913)
    |-id (3993913)
    |-restrictions (552)
    |-revision (3993913)
    | |-id (3993913)
    | |-parentid (3572237)
    | |-timestamp (3993913)
    | |-contributor (3993913)
    | | |-username (3982087)
    | | |-id (3982087)
    | | \-ip (11824)
    | |-comment (3917241)
    | |-text (3993913)
    | |-sha1 (3993913)
    | |-model (3993913)
    | |-format (3993913)
    | \-minor (3384811)
    |-redirect (27340)
    \-DiscussionThreading (4698)
      |-ThreadSubject (4698)
      |-ThreadPage (4698)
      |-ThreadID (4698)
      |-ThreadAuthor (4698)
      |-ThreadEditStatus (4698)
      |-ThreadType (4698)
      |-ThreadSignature (4698)
      |-ThreadParent (3605)
      |-ThreadAncestor (3605)
      \-ThreadSummaryPage (11)

【讨论】:

  • 谢谢@hakre Cheers..:) 但我想知道哪个 sql 文件包含有意义的词,因为有些是链接、site_stats 等。反正我只是拿了 enwiktionary-latest-page.sql.gz
  • 它最有可能被编码到维基文本中,并且已经不能作为专用列使用。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-02-06
  • 2022-01-14
  • 1970-01-01
  • 1970-01-01
  • 2023-04-03
  • 1970-01-01
相关资源
最近更新 更多