2

バックグラウンド

MediaWiki からすべてのページ/リビジョンの解析済みコンテンツ テキストを抽出したいとします。巨大な英語版ウィキペディアについて考えてみましょう。

これを行うには、必要なデータをダウンロードし、独自の MediaWiki インストールをセットアップし、ループを実行して次のように呼び出します。

http://localhost/mediawiki/api.php?uselang=en&format=xml&action=query&prop=extracts&exintro=&explaintext=&titles=

これは TextExtracts ( https://github.com/wikimedia/mediawiki-extensions-TextExtracts ) 拡張機能を使用します。これは実際には内部的に次のようなことを行います:

http://localhost/mediawiki/api.php?uselang=en&format=xml&action=parse&prop=text&title=

質問

今、私はMediaWiki のインストールを MySQL データベースと一緒に使用したくありません。しかし、MediaWiki XML データ ダンプ (巨大な英語の Wikipedia XML ダンプ - enwiki-latest-pages-articles.xml.bz2) を使用して説明したことだけを実行したいと考えています。この問題にどのようにアプローチできるかについてのアイデアはありますか?

呼び出すすべての解析ロジックと多くのものが MediaWiki PHP クラス内にあるように見えます。WikiPage->getContentこれらは密接に結合されているため、それらを取り出して (何週間も費やしたい場合を除きます)、ダンプで動作する独自のスクリプトを作成することはできません。 . これを可能にするスクリプトはありますか? 私の好みの言語は Java ですが、オプションも自由です。

4

1 に答える 1

1

2005 年頃、MW XML を Dict に変換する Python コードを書きました。まだ機能しているかどうかはわかりませんが、Python が好きかどうかを確認するのに役立つかもしれません: wik2dict

昨年、XML ダンプを Meteor アプリ (そして最後に Phonegap アプリ) に変換する CoffeeScript コードを書きました。mediawikixml2meteor2phonegap . これは英語版ウィキペディアではサイズが大きいため失敗しますが、Hitchwikiなどの小規模なウィキでは問題なく機能します。

これらのプロジェクトはどちらも完璧とは言えませんが、ほとんどのケースを処理できます。

于 2014-06-16T11:51:53.273 に答える