word2vecで遊ぶ

Word2Vec

Word2Vecで遊ぶ

  • Wikipediaの内容をWord2Vecに食わせる。
  • 将来的に因子分析結果の因子名の命名などをword2vecでやれるようにしたい。
    • Rとの連携が必要か。

Wikipediaデータのダウンロード

wget http://dumps.wikimedia.org/jawiki/latest/jawiki-latest-pages-articles.xml.bz2
  • 2GB、2時間以上かかるので注意!

pythonのパッケージ管理ツールpipをインストール

sudo apt-get install python-pip

gensimをインストール

pip install --upgrade gensim

mecabインストール

  • mecabのインストールはこちらを参考に。
  • utf8に指定する。

word2vecインストール

word2vecのpythonインターフェースをインストール

pip install word2vec

Rubyインストール

  • 最新版のRubyのソースを落としてビルドすること。

wp2txtインストール

gem install wp2txt
  • または依存関係ごとインストール
    $ gem install bundle
    $ mkdir ~/ruby_bundle
    $ cd ~/ruby_bundle
    $ bundle init
    Writing new Gemfile to /file_to_path/ruby_bundle/Gemfile
    $ echo 'gem "wp2txt"' >> Gemfile
    $ bundle install

wikipediaデータをwp2txtにかける

wp2txt --input-file jawiki-latest-pages-articles.xml.bz2
  • かなり時間かかるので注意!スペックの高いマシンでやった方がいい。

wp2txtの結果を結合

cat jawiki-latest-pages-articles.xml-* > corpus.txt

mecabを使って分かち書きする

mecab -Owakati corpus.txt -o corpus_wakati.txt
  • それなりに時間がかかるので注意!
  • この時"input-buffer overflow. The line is splitted. use -b #SIZE option."というエラーがでたら-bオプションでバッファサイズを変更して再度実行する
    mecab -b 100000  -Owakati corpus.txt -o corpus_wakati.txt
  • バッファサイズ足りないエラーが出た場合に出力されたファイルは、pythonのコードでword2vecに読ませる際にエンコードがおかしいというエラーで怒られる。

gensimライブラリを使ってコーディング

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です