2015-05-10 8 views
3

Gensim's official tutorial явно заявляет, что можно продолжить обучение (загруженной) модели. Я знаю, что согласно документации невозможно продолжить обучение модели, загруженной из формата word2vec. Но даже когда вы генерируете модель с нуля, а затем пытается вызвать метод train, невозможно получить доступ к вновь созданным меткам для экземпляров LabeledSentence, предоставленных в train.Продолжить обучение модели Doc2Vec

>>> 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']) 

Возможно ли продолжить обучение модели Doc2Vec в Gensim новыми предложениями? Если да, то как это можно достичь?

ответ

4

Я понимаю, что это невозможно для новых ярлыков. Мы можем продолжать обучение только тогда, когда новые данные имеют те же метки, что и старые. В результате мы обучаем или перенастраиваем весы уже изученного словаря, но не можем изучать новый словарь.

Существует аналогичный вопрос для добавления новых этикеток/слова/фразы во время тренировки: https://groups.google.com/forum/#!searchin/word2vec-toolkit/online $ 20word2vec/word2vec-инструментарий/L9zoczopPUQ/_Zmy57TzxUQJ

Кроме того, вы можете следить за этой дискуссии: https://groups.google.com/forum/#!topic/gensim/UZDkfKwe9VI

Update: Если вы хотите добавить новые слова к уже обученной модели, посмотрите на онлайн word2vec здесь: http://rutumulkar.com/blog/2015/word2vec/

Смежные вопросы