Qiita Teams that are logged in
You are not logged in to any team

Log in to Qiita Team
Community
OrganizationEventAdvent CalendarQiitadon (β)
Service
Qiita JobsQiita ZineQiita Blog
16
Help us understand the problem. What are the problem?

More than 3 years have passed since last update.

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

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

[修正] おまけ部分の記述について (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

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
16
Help us understand the problem. What are the problem?