LoginSignup
23
16

More than 5 years have passed since last update.

word2vecの追加学習でエラーが出たのでメモ

Last updated at Posted at 2017-09-20

自然言語処理系の研究室所属になった新人のメモです.

[修正] おまけ部分の記述について (2018/08/02)

最新のgensimでは追加学習で新規語彙を学習できるそうです.
ご指摘ありがとうございます.

word2vecの追加学習

素性を作る際にword2vecを使うことになって,頂いたモデルに追加で学習が必要になりました.
普通に分かち書きしたテキストを以下のようにすれば追加学習できると思っていたのですが

model.train(wakati_list)

以下のようなエラー

ValueError: You must specify either total_examples or total_words, for proper alpha and progress calculations. The usual value is total_examples=model.corpus_count.

解決策

どうも新しいバージョンではtotal_examplesepochsをちゃんと指定しないといけないようでした.

ですので,コードを以下のように修正

model.train(sentences, total_examples = sum([len(wakati) for wakati in wakati_list]), epochs = model.iter)

おまけ

追加学習した際に新しい単語が入っていたとしてもその単語のベクトルが新しく登録されることはないらしい...気をつけねば. 
最新のgensimでは追加学習で新規語彙を学習できるそうです.
自分の事例において新規語彙が登録されない理由は「model作成時のmin_countパラメータに引っかかっている」あるいは「新規学習データsentenceがリストになっていない」とのことです.
(コメント欄参照)

参考文献

Gensim word2vec training error on tweets
gensimとword2vec

23
16
2

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
23
16