LoginSignup
1

More than 3 years have passed since last update.

AWS Cloud9上にMecabでwikipediaコーパスを作る.

Posted at

AWS Cloud9上にMecabでwikipediaコーパスを作る

  1. Wikipediaのデータセットをダウンロード
  2. Mecabのインストール
  3. Mecabで分かち書き

開発環境

AWS Cloud9を使って環境を作ります.
現時点ではOSがAmazon LinuxUbuntu16選べました.

m4.large vCPU:2 Mem:6.5 0.10USD/時間
$ cat /proc/version
Linux version 4.15.0-1037-aws (buildd@lcy01-amd64-006) (gcc version 7.3.0 (Ubuntu 7.3.0-16ubuntu3)) 
#39-Ubuntu SMP Tue Apr 16 08:09:09 UTC 2019

$ uname -a
Linux ip-172-31-29-237 4.15.0-1037-aws 
#39-Ubuntu SMP Tue Apr 16 08:09:09 UTC 2019 x86_64 x86_64 x86_64 GNU/Linux

$ python -V
Python 2.7.15rc1

Wikipedia コーパスをダウンロード

curlを使ってダウンロードしてきます。

bz2で圧縮されたファイルがダウンロードできます。

$ curl https://dumps.wikimedia.org/jawiki/latest/jawiki-latest-pages-articles.xml.bz2 -o jawiki-latest-pages-articles.xml.bz2

$ ls -al
-rw-rw-r-- 1 ubuntu ubuntu 2.7G May 12 08:39 jawiki-latest-pages-articles.xml.bz2

2.7GBのファイルをダウンロードしました。

Mecabのセットアップ

mecabはapt-getでインストールできます

# mecabとその他必要そうなモジュールをインストールします
$ sudo apt-get install -y mecab libmecab-dev mecab-ipadic-utf8 git make curl xz-utils file

# mecab-ipadic-NEologd辞書をインストールします
$ git clone --depth 1 https://github.com/neologd/mecab-ipadic-neologd.git
$ cd mecab-ipadic-neologd
$ ./bin/install-mecab-ipadic-neologd -n -a

# 辞書が格納されているディレクトリの場所を確認しておきます
$ echo `mecab-config --dicdir`"/mecab-ipadic-neologd"
/usr/lib/x86_64-linux-gnu/mecab/dic/mecab-ipadic-neologd/


# 辞書の場所は長いのでに環境変数に格納しておきます。(以下2行は同じ意味です)
$ export MECABPATH=`mecab-config --dicdir`"/mecab-ipadic-neologd"         
$ export MECABPATH=/usr/lib/x86_64-linux-gnu/mecab/dic/mecab-ipadic-neologd/

# mecabの実行
$ mecab -d /usr/lib/x86_64-linux-gnu/mecab/dic/mecab-ipadic-neologd/
$ echo "8月3日に放送された「中居正広の金曜日のスマイルたちへ」(TBS系)で、1日たった5分でぽっこりおなかを解消するというダイエット方法を紹介。キンタロー。のダイエットにも密着。" | mecab -d /usr/lib/x86_64-linux-gnu/mecab/dic/mecab-ipadic-neologd/

nfkもインストールしておきます Ubuntu16:nkfのインストール - 開発メモ

$ sudo apt install nkf
$ nkf --version
Network Kanji Filter Version 2.1.4 (2015-12-12) 

WikiExtractorのインストール

Python製のWikipedia整形ツールです

WikiExtractorをgithubからクローンします

$ git clone https://github.com/attardi/wikiextractor.git

クローンするとwikiextractorディレクトリの中にWikiExtractor.pyがありますので、
引数に先ほどダウンロードしたWikipedia圧縮ファイルをしていして回答します。

※ pythonは2系を使用しています。 READMEには3系でも大丈夫とありました。

$ python wikiextractor/WikiExtractor.py jawiki-latest-pages-articles.xml.bz2 --processes 2

 -- 省略 --

INFO: 17607     篆書体
INFO: 17608     制限酵素
INFO: 17609     桜島線
INFO: 17612     京阪鴨東線
INFO: 17613     光ケーブル
INFO: 17614     マウリッツ・エッシャー
INFO: 17618     測定
INFO: 17619     日光江戸村
INFO: 17620     ぜんまいばね
INFO: 17621     96
INFO: 17622     95
INFO: 17623     94
INFO: 17624     93
INFO: 17625     92
INFO: 17626     91
INFO: 17627     90
INFO: 17629     燃えろ!!プロ野球
INFO: 17630     ばね
INFO: 17631     HIDランプ
INFO: 17632     低圧放電灯
INFO: 17633     71
INFO: 17634     藤原町 (栃木県)
INFO: 17635     野岩鉄道会津鬼怒川線
INFO: 17636     野岩鉄道
INFO: 17637     縁日
INFO: 17638     73
INFO: 17639     薬師如来

 -- 省略 --

INFO: 3941074   五百淵公園
INFO: 3941075   ジャニーズ銀座
INFO: 3941076   植物に学ぶ生存戦略 話す人・山田孝之
INFO: 3941082   小山美姫
INFO: 3941083   ファンダメンタル・フィルムズ
INFO: 3941085   ヨエロスン
INFO: 3941089   平澤芽衣
INFO: 3941091   数学の未来
INFO: 3941098   ダンプリン
INFO: 3941099   アーサー・シャウクロス
INFO: 3941100   トムキャット・スクリーミング・アウトサイド
INFO: 3941104   Nesno 10th Anniversary Balance Music
INFO: 3941107   祖約

INFO: Finished 2-process extraction of 1149985 articles in 7261.8s (158.4 art/s)
INFO: total of page: 1654236, total of articl page: 1149985; total of used articl page: 1149985

(開始18:54 - 終了22:13)

wiki.txtにすべてまとめる

find text/ | grep wiki | awk '{system("cat "$0" >> wiki.txt")}'

mecabで分かち書きする

# デフォルト辞書を使用
mecab -Owakati wiki.txt -o wiki_wakati.txt -b 16384
nkf -w --overwrite wiki_wakati.txt

# Neo辞書を使用
mecab -d $MECABPATH -Owakati wiki.txt -o wiki_wakati_neo.txt -b 16384
nkf -w --overwrite wiki_wakati_neo.txt

以上

参考

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1