#author("2019-04-14T15:37:51+00:00","default:masatomix","masatomix")
#topicpath
----

#contents


** 日本語Wikipediaのデータを学習させる [#w2b00213]
やってみます。

*** Rubyとツール準備 [#uae8c73f]
 $ ruby --version
 ruby 2.6.0p0 (2018-12-25 revision 66547) [x86_64-linux]
 $ rbenv exec gem  install wp2txt bundler

*** 日本語Wikipediaデータのダウンロードと変換 [#we0c7aea]

日本語データはWikipediaのデータを使う事にします。
 $ mkdir wikipedia && cd $_
 $ curl https://dumps.wikimedia.org/jawiki/latest/jawiki-latest-pages-articles.xml.bz2  -o jawiki-latest-pages-articles.xml.bz2
2G以上あるのでご注意。

ダウンロードしたデータを wp2txt を使ってただのテキストファイルに変換します。
 $ rbenv exec wp2txt --input-file jawiki-latest-pages-articles.xml.bz2
 WP2TXT is spawming 2 threads to process data
 Preparing ... This may take several minutes or more ca... Done.
 jawiki-latest:   8% |oooooooooooooo

 Processing finished
 $

たくさんのファイルが出来るので、ファイルをMecabで分かち書きしながら、連結します
 $ cat jawiki-latest-pages-articles.xml*.txt | mecab -Owakati -b 81920 > jawiki-latest-pages-articles-all_wakati.txt
 $

*** 学習 [#xe270072]

 $ python3 -m venv ~/venv/venv_ai
 $ source ~/venv/venv_ai/bin/activate
 (venv_ai) $
 
 (venv_ai) $ mkdir ../python && cd $_
 (venv_ai) $ cat save_model.py
 from gensim.models import word2vec
 import logging
 
 logging.basicConfig(format='%(asctime)s : %(levelname)s : %(message)s', level=logging.INFO)
 sentences = word2vec.Text8Corpus('../wikipedia/jawiki-latest-pages-articles-all_wakati.txt')
 
 model = word2vec.Word2Vec(sentences, size=200, min_count=20, window=15)
 model.save("./wiki.model")
 
 (venv_ai) $ pip install gensim
 (venv_ai) $ python3 save_model.py
 
 ...めちゃくちゃ時間がかかる

 (venv_ai) $ 
 
日本語の学習は以上です。

*** 動かしてみる。 [#n8b66f14]
やってみます。

 (venv_ai) $ cat word2vec_test.py
 from gensim.models import word2vec
 
 model = word2vec.Word2Vec.load("./wiki.model")
 results = model.wv.most_similar(positive=['講義'])
 for result in results:
     print(result)
 
 (venv_ai) $ python3 word2vec_test.py
 ('クライミング', 0.7824140787124634)
 ('ロッククライミング', 0.720820963382721)
 ('スノーボード', 0.6274969577789307)
 ('アウトドア', 0.6219459772109985)
 ('パラグライダー', 0.6193433403968811)
 ('トレッキング', 0.6125744581222534)
 ('スキーヤー', 0.6124218106269836)
 ('サイクリング', 0.6103093028068542)
 ('エクストリームスポーツ', 0.6046898365020752)
 ('climbing', 0.5836126804351807)
 (venv_371) sysmgr@ubuntu2:~/nlp/python$




----
この記事は
#vote(おもしろかった,そうでもない)

#comment

#topicpath

SIZE(10){現在のアクセス:&counter;}


トップ   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS