EnsekiTT Blog

EnsekiTTが書くブログです。

Wikipediaのデータを使いましたって書いてある論文は実際どうやって使える状態にしてるのか調べた話

つまりなにしたの?

Wikipediaの日本語データを使って学習してる論文を見かけたのでどうやって使える状態にしてるのか調べてみた。
もちろん、本当に今回やった方法でやったのかを論文の筆者に確かめたわけではない。
概ね近い結果が得られる程度にはクリーニングできると嬉しい程度の調査。
f:id:ensekitt:20171015020327j:plain


*1

見かけた論文

日本語単語ベクトルの構築とその評価
https://ipsj.ixsq.nii.ac.jp/ej/?action=pages_view_main&active_action=repository_view_main_item_detail&item_id=141870&item_no=1&page_id=13&block_id=8

論文で使われていたデータセット

が使われている。
今回はこの中で日本語Wikipediaのテキストデータを拾ってきてクリーニングすることにした。

ダウンロード

日本語WikipediaのデータベースダウンロードページからDumpページに飛んでダウンロードしてきた。
Wikipedia:データベースダウンロード - Wikipedia
中でも、
https://dumps.wikimedia.org/jawiki/
にあるみたい。

先月Wikipedia財団が寄付しろってめっちゃ言ってたときに少額ながら寄付したので罪悪感なくダウンロードできた。

クリーニング

よっしゃ、クリーニングだ!って思ったらWikiExtractorというものが開発されていた。
その他にも色々あるみたいだけど、今日やろうとしてたことはWikiExtractorでできることが発覚。

WikiExtractorをインストール

Wikipedia Extractor - Medialab
github.com

git clone https://github.com/attardi/wikiextractor.git
# Pyenv環境にする人はここで
python setup.py install
cd ..

WikiExtractorを使ってみる

# 時間がかかるらしいのでひよってRecombineじゃないものにした。
# https://dumps.wikimedia.org/jawiki/20170920/ 
python wikiextractor/WikiExtractor.py -o wikipedia jawiki-20170920-pages-articles1.xml-p1p168815.bz2
# すごい勢いで見出しが流れていく

f:id:ensekitt:20171015035351g:plain

出来上がったファイルの中身はテキストファイルになっていてデフォルトだと1MB毎に別れていた。
f:id:ensekitt:20171015015752p:plain
中身は

<doc id="1856" url="https://ja.wikipedia.org/wiki?curid=1856" title="VHS">
VHS
〜〜〜中略〜〜〜
</doc>

で記事ごとにまとめられている。全部見たわけじゃないけどデフォルトでそれ以外のタグは残っていないみたい。

参考: かかった時間

最後にどれくらいの時間がかかったのか示してくれた。(素晴らしい)
INFO: Finished 3-process extraction of 83038 articles in 730.1s (113.7 art/s)
5つに別れているArticleファイルのうちの1つ目だけだけどFGOやってる間に終わった。

尚上記は
MacBook Pro (13-inch, 2016, Four Thunderbolt 3 Ports)
macOS Sierra 10.12.6
プロセッサ 2.9 GHz Intel Core i5
メモリ 16GB 2133 MHz LPDDR3
内蔵SSDから読み込み
内蔵SSDへ書き込み
空き容量は60GB程度
での計測(1回施行)

中身をちょっと眺めてみて

ウィキペディアンたちの努力に感謝しかない。
曖昧さ回避ページとかもあってどうなるかと思ったら意外とあっさりしてた。

<doc id="168701" url="https://ja.wikipedia.org/wiki?curid=168701" title="グランツーリスモ (曖昧さ回避)">
グランツーリスモ (曖昧さ回避)

グランツーリスモ( 、略称:GT)は、イタリア語で「大旅行」の意味。

</doc>