動かざることバグの如し

近づきたいよ 君の理想に

word2vecを試してみる

予めMecab様のインストールは済んでるものとする

word2vecのインストール

git clone https://github.com/dav/word2vec.git
cd scripts && sh demo-word.sh

サンプルまでご丁寧にダウンロードされるのでしばらく待つ

辞書データを用意する

今回はおとなしくWikipediaを使う

http://dumps.wikimedia.org/jawiki/latest/jawiki-latest-pages-articles.xml.bz2をダウンロード 2GB超するので注意

wp2txtで整形するのでダウンロードしたファイルのあるディレクトリで

bundle init
echo 'gem "wp2txt"' >> Gemfile
bundle --path=v

するとv/ruby/2.x.x/bin/wp2txtファイルができるので

v/ruby/2.2.0/bin/wp2txt --input-file jawiki-latest-pages-articles.xml.bz2

wikipediaデータをwp2txtで整形

wp2txt --input-file jawiki-latest-pages-articles.xml.bz2
cat jawiki-latest-pages-articles.xml-*corpus.txt > 

Mecab分かち書き

生成されたcorpus.txtをword2vecディレクトリへ持っていって分かち書き

mecab -b 100000  -Owakati corpus.txt -o corpus_wakati.txt

-bオプションは適宜付けないとinput-buffer overflowって怒られる

word2vecで学習

bin/word2vec -train corpus_wakati.txt -output data.bin -window 5 -threads 2 -binary 1

試す

成功した例

イマイチな例

  • 東京→東京タワー 大阪→オカンとボクと、時々、オトン
  • 秋葉原AKB48 名古屋→NMB48
  • 秋葉原AKB48 博多→NMB48
  • JK→女子高生 JC→PMP
  • コーヒー→飲料 カレーライス→スナック菓子