Ruby
Python
wp2txt

Wikipedia(日本語版)全文データをテキストファイルへ変換

書籍「Pythonniよるスクレイピング&機械学習」(ソシム社)の第6章内で、Wikipedia(日本語版)の全文データを辞書データとして利用する箇所がある。しかし、多少情報が古いせいか、現在ではそのまま操作してもうまくインストールできなかった。
インストール時にハマったので、次回以降のためにメモを残す。

実行環境:

MacbookPro(Retina, MID 2012)
Docker 17.12.0-ce-mac46 (21698)上に
・Ubuntu 16.04 LTS
・Anaconda 1.6.5
・Python 3.6.3 :: Anaconda custom (64-bit)

目的:

Word2Vecで利用するWikipedia(日本語版)全文データをテキストファイルに変換する。

Step1.

目的のデータ(Wikipedia(日本語版)全文データ)をダウンロードする。

対象(となる圧縮ファイルの)URL:
https://dumps.wikimedia.org/jawiki/latest/jawiki-latest-pages-articles.xml.bz2

方法:

shell-script
$ wget https://dumps.wikimedia.org/jawiki/latest/jawiki-latest-pages-articles.xml.bz2

参考:

【 wget 】 ファイルをダウンロードする:ITpro http://itpro.nikkeibp.co.jp/article/COLUMN/20060228/230995/?n_cid=nbpitp_twbn_top

※同書では、ダウンロード後にbzip2コマンドで圧縮ファイルを展開するように書かれていますが、後ほどデータ変換に使用するwp2txtの--input-fileオブションの引数には、そのまま.bz2ファイルを引き渡して良いと書いてあるので、ここでは展開せず、.bz2ファイルのままにしておきます。

Step2.

Wikipedia(日本語版)データ(XML)をテキストデータ(.txt)へ変換する。
そのために必要となるツール「wp2txt」は、Ruby製なので、先にRubyをインストールします。

shell-script
$ apt-get install -y git
$ git clone https://github.com/sstephenson/rbenv.git ~/.rbenv
$ git clone https://github.com/sstephenson/ruby-build.git ~/.rbenv/plugins/ruby-build
$ echo 'export PATH="$HOME/.rbenv/bin:$PATH"' >> ~/.bash_profile
$ echo 'eval "$(rbenv init -)"' >> ~/.bash_profile
$ source ~/.bash_profile
$ rbenv install 2.3.0
$ rbenv global 2.3.0

※rbenvはRubyのバージョン管理ツールで、任意のバージョンのRubyを選んで使えるようになります。同書では、Ruby 2.0.0-p647というバージョンを使っていますが、これだと失敗します。参考にしたサイト(http://jabberwocky.hatenablog.com/entry/2016/11/12/061709)
によると、このバージョンでは「wp2txt」は使用できないらしい。同サイトに書かれている通り、Ruby 2.3.0をインストールすることにした。

Step3.

Wikipedia(日本語版)データ(XML)をテキストデータへ変換するツール「wp2txt」をインストールする。

shell-script
$ gem install wp2txt

※gemはRubyのパッケージ管理ツール(PythonのpipやLinuxのapt-getみたいなもの?)

Step4.

Wikipedia(日本語版)データをテキストファイルへ変換します。

shell-script
$ wp2txt --input-file jawiki-latest-pages-articles.xml.bz2

スクリーンショット 2018-01-11 14.38.38.png

ちなみに、返還前の.bz2データのサイズが約2.2GBで、変換後の.txvデータが約5.6GB以上になるため、変換には1時間半以上かかりました(当社調べw)。

Step5.

変換後には500以上のテキストファイルへ分割されるため、それを以下のコマンドで1つのファイルにまとめます。

shell-script
$ cat jawiki-latest-pages-articles.xml-* > wiki.txt

以上で、Wikipedia(日本語版)全文データのテキストファイル化、完了!