word2vecのpythonインターフェースをWindwos PCに入れようとしてもうまくいきません。
pip install word2vec
と、pipしてもword2vecのコンパイルが失敗します。
これはword2vecのソースコードがLinux用だからです。
word2vec-c\word2vec.c:19:21: fatal error: pthread.h: No such file or directory
実際、こんな感じで「pthread.h」が無いと怒られます。
そこで本記事では、Windows用に移植されたソースを使って無理くりインストールしてみます。インストールにあたっては、make、gcc、gitなどが必要になりますのであらかじめインストールしておいてください。
最初にやることは、word2vecのpythonインターフェースの入手です。githubから入手します。
このとき適当な作業フォルダで作業します(例ではC:\tmp)
C:\tmp> C:\tmp>git clone https://github.com/danielfrg/word2vec
windwos用のword2vecのソースをgithubから入手します。
C:\tmp>git clone https://github.com/zhangyafeikimi/word2vec-win32
word2vecのpythonインターフェースのフォルダに移動します。
そして、Windows版のソースを格納するための空のフォルダ「word2vec-c」を作成します。
C:\tmp>cd word2vec C:\tmp\word2vec>mv word2vec-c word2vec-c_bak #適当な名前でバックアップ C:\tmp\word2vec>mkdir word2vec-c #word2vec-cフォルダを作成
新しく作成した「word2vec-c」フォルダに、「C:\tmp\word2vec-win32」にあるWindows版ソースコード、Makefile一式をコピーします。
Makefile compute-accuracy.c distance.c win32-port.h word-analogy.c word2phrase.c word2vec.c
次に「C:\tmp\word2vec」にある「setup.py」をエディタで開いて編集します。
42行目をコメントアウトします。
#compile('word2vec-sentence2vec.c', 'word2vec-doc2vec')
続いて53-56行目を以下のように編集します。ポイントは2つのコマンド「word2phrase」・「word2vec-doc2vec」の削除と
コマンド名に拡張子「.exe」を付けることです。
【修正前】
data_files=[('bin', ['bin/word2vec', 'bin/word2phrase', 'bin/word2vec-distance', 'bin/word2vec-word-analogy', 'bin/word2vec-compute-accuracy', 'bin/word2vec-doc2vec'])],
【修正後】
data_files=[('bin', ['bin/word2vec.exe', 'bin/word2vec-distance.exe', 'bin/word2vec-word-analogy.exe', 'bin/word2vec-compute-accuracy.exe'])],
最後に編集した「setup.py」を実行します。
C:\tmp\word2vec>python setup.py install
最後にpythonを立ち上げてimportできることを確認してみましょう。
C:\tmp\word2vec>python Python 2.7.2 (default, Jun 12 2011, 15:08:59) [MSC v.1500 32 bit (Intel)] on win32 Type "help", "copyright", "credits" or "license" for more information. >>> import word2vec >>>
無事、importできました!
機能がオリジナルのLinux版と比べて少ないようですが・・・