Gensimの公式チュートリアルでは、(ロードされた)モデルのトレーニングを継続できると明示的に述べています。ドキュメントによると、word2vec
フォーマットからロードされたモデルのトレーニングを継続することはできないことを認識しています。ただし、モデルを最初から生成してからtrain
メソッドを呼び出そうとしても、にLabeledSentence
提供されたインスタンスの新しく作成されたラベルにアクセスすることはできませんtrain
。
>>> sentences = [LabeledSentence(['first', 'sentence'], ['SENT_0']), LabeledSentence(['second', 'sentence'], ['SENT_1'])]
>>> model = Doc2Vec(sentences, min_count=1)
>>> print(model.vocab.keys())
dict_keys(['SENT_0', 'SENT_1', 'sentence', 'first', 'second'])
>>> sentence = LabeledSentence(['third', 'sentence'], ['SENT_2'])
>>> model.train([sentence])
>>> print(model.vocab.keys())
# At this point I would expect the key 'SENT_2' to be present in the vocabulary, but it isn't
dict_keys(['SENT_0', 'SENT_1', 'sentence', 'first', 'second'])
GensimでDoc2Vecモデルのトレーニングを新しい文で継続することは可能ですか?もしそうなら、これはどのように達成できますか?
私の理解では、これは新しいレーベルでは不可能です。新しいデータに古いデータと同じラベルが付いている場合にのみ、トレーニングを続行できます。その結果、すでに学習した語彙の重みをトレーニングまたは再調整していますが、新しい語彙を学習することはできません。
トレーニング中に新しいラベル/単語/文を追加するための同様の質問があります:https://groups.google.com/forum/#!searchin / word2vec-toolkit / online $ 20word2vec / word2vec-toolkit / L9zoczopPUQ / _Zmy57TzxUQJ
また、このディスカッションに注目することをお勧めします:https://groups.google.com/forum/#!topic / gensim / UZDkfKwe9VI
更新:すでにトレーニングされたモデルに新しい単語を追加したい場合は、ここでオンラインのword2vecを見てください:http://rutumulkar.com/blog/2015/word2vec/
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加