wikipediaコーパスを気軽に使いたい人へ
お久しぶりです。
前回の投稿から随分と時間が経ってしまいました。
就活のこととかも書きたいですが、それはまた今度ということで。
今回はタイトル通りwikipediaコーパスを使うためにRubyをインストールからwp2txtを使えるまでの話です。
(Rubyは完全に初心者なので理屈はわかりません・・・)
環境はUbuntu14.04です。
準備
Ubuntuは標準でRubyが入っているらしいのでまずは確認。
>>ruby -v ruby 1.9.3p484 (2013-11-22 revision 43786) [x86_64-linux]
あと、Rubyのライブラリをインストールできるgemってやつ(pythonで言うところのpipかな?)も確認。
>>gem -v 1.8.23
gemでインストールしたパッケージの管理するbundlerってやつもインストールしておく。
>>sudo gem install bundler Fetching: bundler-1.13.2.gem (100%) Successfully installed bundler-1.13.2
あとgitも必要なので、確認。
>>git --version git version 1.9.1
これで準備完了です。
rbenvのインストール
wp2txtを使うためにはruby2.3以上のバージョンが必要らしい。
そこで、複数のRubyを管理できるrbenvってやつを使ってruby2.3をインストールする。
まずはrbenvのインストールはgitで、
>>git clone http://github.com/sstephenson/rbenv.git ~/.rbenv
で、rbenvのpathを/.zshrcに追加(pathの追加は適宜)。
>>echo 'export PATH="$HOME/.rbenv/bin:$PATH"' >> ~/.zshrc >>echo 'eval "$(rbenv init -)"' >> ~/.zshrc
でこのままだと、
>>type rbenv rbenv not found
なので、
>>source ~/.zshrc
してからもう一度。
>>type rbenv rbenv is a shell function
これがでればrbenvのパスが通ったはず。
次にrbenvのプラグインであるruby-buildのインストール。
これはgitで以下のコマンドをたたけばおk。
>>git clone https://github.com/sstephenson/ruby-build.git ~/.rbenv/plugins/ruby-build
これで、
>>rbenv install -l Available versions: 1.8.5-p113 1.8.5-p114 1.8.5-p115 1.8.5-p231 1.8.5-p52 1.8.6-p110 1.8.6-p111 1.8.6-p114 1.8.6-p230 1.8.6-p286 ・ ・ ・ (以下略)
となり、好きなやつをインストールできるようなったように見えます(インストールできるとは言っていない)。
ruby2.3のインストール
このまま素直に、
>>rbenv install 2.3.0 Downloading ruby-2.3.0.tar.bz2... -> https://cache.ruby-lang.org/pub/ruby/2.3/ruby-2.3.0.tar.bz2 Installing ruby-2.3.0... BUILD FAILED (Ubuntu 14.04 using ruby-build 20160913-13-g8ef0c34) ・ ・ ・ (以下略)
と出てインストールできなかった。
調べてみると色々インストールが足りなかったみたいで、追加でいろいろインストールする。
>>sudo apt-get install -y libssl-dev libreadline-dev zlib1g-dev
そして、
>>rbenv install 2.3.0 Downloading ruby-2.3.0.tar.bz2... -> https://cache.ruby-lang.org/pub/ruby/2.3/ruby-2.3.0.tar.bz2 Installing ruby-2.3.0...
で、うまくいった。
これで、
>>ruby -v ruby 1.9.3p484 (2013-11-22 revision 43786) [x86_64-linux]
とやったら、あれ?変わってない・・・
なので、
>>rbenv rehash >>rbenv global 2.3.0 >>ruby -v ruby 2.3.0p0 (2015-12-25 revision 53290) [x86_64-linux]
で無事に切り替わりました。
wp2txtをインストールして使う
ここまでくれば後は簡単。
まずはgemを使ってwp2txtをインストール。
>>gem install wp2txt
で、入る。
でもこれではダメな場合もあるらしくその時はGemfile作ってやるらしい。
(自分はGemfile作ったけど上記のコマンドでうまくいった履歴があるから使ってないと思われる)
一応Gemfileの中身は、
# frozen_string_literal: true source "https://rubygems.org" gem "wp2txt"
と記述して、
>>bundle install
でいいみたい。
以下のURLからwikiのデータをダウンロード(数分かかる)。
https://dumps.wikimedia.org/jawiki/latest/
適当なディレクトリを作ってに保存。
>>mkdir wikicorpus >>cd wikicorpus >>ls Gemfile jawiki-latest-pages-articles.xml.bz2
後はコマンドで
>>wp2txt --input-file jawiki-latest-pages-articles.xml.bz2
で完成。
おまけ
500個近くファイルができるので、
>>cat jawiki-latest-pages-articles.xml-* > wikicorpus.txt
とし、一行に一カテゴリになるように書き換え(ミスがあると思われるが・・・)
#!/usr/bin/python #coding:utf-8 import re wikidata = 'wikicorpus.txt' newwikidata = 'newwikicorpus.txt' fr = open(wikidata,'r') start = 0 fg = 0 docs = '' for line in fr: line = line.rstrip('\n') if re.match('\[\[.*\]\]',line): if(start == 0): start = 1 else: fw = open(newwikidata,'a') fw.write(docs + '\n') fw.close() docs = '' elif re.match('\{\{',line): fg = 1 elif re.match('\}\}',line): fg = 0 elif not re.match('\;|\:|\*|\{|\}|\|',line) and not re.match('==.*==',line) and fg == 0: docs = docs + line fr.close()
参考URL
http://dotnsf.blog.jp/archives/1020034700.html
https://gist.github.com/hayashidac/9c9a7f5525fdc6709f78
http://qiita.com/sgtn/items/43171fe6ed40bcdafcae
https://www.ruby-lang.org/ja/documentation/installation/#rbenv
http://did2memo.net/2015/07/23/ruby-on-rails-install/
http://eyepodtouch.net/?p=77
http://qiita.com/daikw/items/31acdc75632f22afcd7d
http://qiita.com/wwacky/items/8a9eb543171afea90c0a
http://saiyu.cocolog-nifty.com/zug/2014/02/word2vec-1867.html
https://ja.wikipedia.org/wiki/Wikipedia:%E3%83%87%E3%83%BC%E3%82%BF%E3%83%99%E3%83%BC%E3%82%B9%E3%83%80%E3%82%A6%E3%83%B3%E3%83%AD%E3%83%BC%E3%83%89
http://blog.hassaku-labs.com/post/dialogue_system1/
http://qiita.com/znz/items/5471e5826fde29fa9a80