2016年12月12日月曜日

word2vec 〜 日本語wikipediaによる学習 〜


はじめに


 日本語wikipediaを使いword2vecを行う。詳細な手順はこちらのサイトにある。以下サイトAと呼ぶことにする。ここでは、サイトAと異なる箇所だけを示す。

mecabのインストール


 mecabだけでなく、その辞書であるmecab-ipadic-neologdもインストールする。以下のコマンドで日本語の分かち書き(品詞の間に空白を入れる)を行う事ができる。形容詞や動詞の活用形を終止形に直すこともしている。参考サイト 実行例は以下の通り。

原文
このページは、コンピュータ プログラムが記事を自動収集し、生成しています。 表示される日付や時刻は(記事のタイムライン機能の表示を含む)、Google ニュースに記事が追加/更新された時間です。
結果
この ページ は 、 コンピュータ プログラム が 記事 を 自動 収集 する 、 生成 する て いる ます 。 表示 する れる 日付 や 時刻 は ( 記事 の TIME LINE 機能 の 表示 を 含む ) 、 Googleニュース に 記事 が 追加 / 更新 する れる た 時間 です 。

日本語wikipediaのダウンロード


 サイトAでは、2.2GB程度とあるが5GBを越えるデータ(xml)がダウンロードされた。rubyを使ったテキストファイルへの変換手順と1つのテキストファイルへの統合手順はサイトAと同じである。サイトAでは触れられていないが、空白の行が一行おきに入るので、この空白行を取り除いた。そのあと、以下のコマンドを使い、このテキストファイル(jawiki.txt)を分かち書きする。 -bオプションは入力バッファサイズである。デフォルト値(8192)のまま行うと途中で落ちるので上記のように増やした。

word2vecの訓練


 word2vecのインストール手順はサイトAと同じ。以下のコマンドで学習を行う。 1つの単語を200次元ベクトルに置き換えます。

word2vecの予測


 以下のコマンドで相関の強い単語を検索できる。 わずか200次元のベクトルでこれだけの精度が出るとは。凄いの一言。単語をベクトルで表現できたので、画像のCNNによるベクトル化と統合して何かしたい。

2016年12月11日日曜日

迷子のaws

macportsで入れたpipでawscliをインストールしたら、awsコマンドが迷子になりました。以下の場所に隠れておりました。
/opt/local/Library/Frameworks/Python.framework/Versions/2.7/bin