オープンデータとプログラミング

Windowsにword2vecをインストールする方法

このページでは、word2vecをWindows PCにインストールする方法について解説します。

word2vecは、もともとLinux用に書かれたc言語のコードなのでそのままでは、Windowsではコンパイルできません。多くのブログで解説されている記事はほとんどLinux用のインストール方法です。Windowsでのインストール方法について説明された記事がないので、メモとして残しておきます。

最初にLinux用のソースコードをコンパイルするとどのようになるかを確認してきましょう。Linux用のソースコードをコンパイルすると次のように「pthread.h」が無いといわれます。この問題は、Windows用に移植されたコードを利用することで解決することができます。

word2vec-c\word2vec.c:19:21: fatal error: pthread.h: No such file or directory

予め準備しておくツールは以下のとおりです。

  • gitクライアント
  • wgetコマンド
  • make、gcc等の開発ツール
  • make、gcc等については、CygwinというパッケージをインストールすればOKです。詳細はhttps://cygwin.com/を参照してください。

準備ができたら以下の手順でインストールを行ってください。

【手順】
gitコマンドでWindows用のソースコード一式をダウンロードします。

git clone https://github.com/zhangyafeikimi/word2vec-win32

「word2vec-win32」というフォルダができるのでcdして、makeします。

cd word2vec-win32
make

「demo-word.sh」を実行するとサンプルデータの作成が開始されます。
このときに「textt8」というコーパスのファイルから、「vectors.bin」というベクトルデータが作成されます。
私のWindows PCでは8分30秒ほどかかりました。

demo-word.sh
Welcome to Git (version 1.9.0-preview20140217)


Run 'git help git' to display the help index.
Run 'git help <command>' to display help for specific commands.
Starting training using file text8
Vocab size: 71291
Words in train file: 16718843
Alpha: 0.000121  Progress: 99.58%  Words/thread/sec: 20.16k
real    8m31.240s
user    0m0.000s
sys     0m0.031s
Enter word or sentence (EXIT to break):

処理が終了すると入力待ちになりますので、何か単語をタイプしてみましょう。
例えば、japanと入力してみます。

Enter word or sentence (EXIT to break): japan

Word: japan  Position in vocabulary: 582

                                              Word       Cosine distance
------------------------------------------------------------------------
                                             china              0.658320
                                             korea              0.592824
                                            taiwan              0.553882
                                          japanese              0.549832
                                           paekche              0.489144
                                               jpy              0.488681
                                          thailand              0.482999
<<以下省略>>

距離的に近いワードがでてきます。

EXITと入力すると、終了します。もう一度起動する場合は以下のようにタイプします。

distance vectors.bin
Enter word or sentence (EXIT to break):

Comments are closed.