質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Python 2.7

Python 2.7は2.xシリーズでは最後のメジャーバージョンです。Python3.1にある機能の多くが含まれています。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

Q&A

解決済

1回答

1141閲覧

word2vecをPythonのWebアプリケーションで動かしたいのですが……

SHERRY

総合スコア15

Python 2.7

Python 2.7は2.xシリーズでは最後のメジャーバージョンです。Python3.1にある機能の多くが含まれています。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

0グッド

1クリップ

投稿2015/08/11 15:09

プログラミング初心者です。
PythonのFlaskを使って、word2vecを軽く体感できるWebアプリケーションを作ってみようと思っているのですが、詰まっています。

具体的には
http://eyepodtouch.net/?p=77
↑こちらのサイトを参考にして

from gensim.models import word2vec

sentences = word2vec.Text8Corpus("text8")
model = word2vec.Word2Vec(sentences, size=100)
model.save("sample.model")
model = word2vec.Word2Vec.load("sample.model")

(text8とは、シェル上でword2vecを動かす際に、デモ用にインストールされる分かち書き済みのテキストデータです。そのまま使用しています。)
と記述しているのですが、一向に結果を得られない(10分くらい後にエラーが出る)のでシェル上でPythonを起動させ

from gensim.models import word2vec
sentences = word2vec.Text8Corpus("text8")
model = word2vec.Word2Vec(sentences, size=100)

と直打ちしたところ

UserWarning: C extension not loaded for Word2Vec, training will be slow. Install a C compiler and reinstall gensim for fast training.
warnings.warn("C extension not loaded for Word2Vec, training will be slow. "

このようなエラー(?)が出て、やはり結果が得られませんでした。
gensimの再インストールも試しましたがダメでした。
text8は同じディレクトリの階層に置いています。

解決方法が分かる方、ぜひご教授ください。

〈追記〉
コーパスが悪いのかと思い、適当に都道府県名を入力した”todouhuken.txt”というテキストファイル(文字コードはutf-8)を作り、対話環境(ipython)で学習させてみたのですが、またしてもエラーが出ました。本当にわかりません。

from gensim.models import word2vec
sentences = word2vec.Text8Corpus("todouhuken.txt")
model = word2vec.Word2Vec(sentences, size=100)

RuntimeError Traceback (most recent call last)
<ipython-input-4-185bd86536f8> in <module>()
----> 1 model = word2vec.Word2Vec(sentences, size=100)

/Library/Python/2.7/site-packages/gensim/models/word2vec.pyc in init(self, sentences, size, alpha, window, min_count, max_vocab_size, sample, seed, workers, min_alpha, sg, hs, negative, cbow_mean, hashfxn, iter, null_word)
416 raise TypeError("You can't pass a generator as the sentences argument. Try an iterator.")
417 self.build_vocab(sentences)
--> 418 self.train(sentences)
419
420 def make_cum_table(self, power=0.75, domain=2**31 - 1):

/Library/Python/2.7/site-packages/gensim/models/word2vec.pyc in train(self, sentences, total_words, word_count, chunksize, total_examples, queue_factor, report_delay)
664
665 if not self.vocab:
--> 666 raise RuntimeError("you must first build vocabulary before training the model")
667 if not hasattr(self, 'syn0'):
668 raise RuntimeError("you must first finalize vocabulary before training the model")

〈環境〉
OSX Yosemite ver10.10.4
Python ver2.7.10
gensim ver0.12.1

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

エラーメッセージで検索した所、次のアーカイブがひっかかりました。

Training word2vec model on CentOS: "UserWarning: C extension not loaded for Word2Vec"(英語)

最後のメッセージに解決方法が書かれていたので、引用します。

1. pip uninstall gensim 2. pip uninstall scipy 3. pip install --no-cache-dir scipy==0.15.1 4. pip install --no-cache-dir gensim==0.12.1 # pythonの対話環境で確認 5. from gensim.models import word2vec >> word2vec.FAST_VERSION # 1が出力されればOK

githubのリポジトリにもissueが登録されていますが、開発者はscipyを0.15.1にしていて問題ない、と回答していました。

投稿2015/08/11 15:20

退会済みユーザー

退会済みユーザー

総合スコア0

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

SHERRY

2015/08/12 02:44

教えて頂いた解決方法で出来ました!ありがとうございました! (sudoでuninstallしたのち、手順通りにscipyとgensimを入れなおして確認したところ、出力は「0」でしたが問題ありませんでした)
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問