Doc2Vec онлайн обучение - PullRequest
       22

Doc2Vec онлайн обучение

0 голосов
/ 04 декабря 2018

Я тренирую свою модель doc2vec:

data = ["Sentence 1",
        "Sentence 2",
        "Sentence 3",
        "Sentence 4"]

tagged_data = [TaggedDocument(words=word_tokenize(_d.lower()), tags[str(i)]) 
                              for i, _d in enumerate(data)]

обучающая часть:

model = Doc2Vec(size=100, window=10, min_count=1, workers=11, alpha=0.025, 
                min_alpha=0.025, iter=20)

model.build_vocab(tagged_data, update=False)

model.train(tagged_data,epochs=model.iter,total_examples=model.corpus_count)

Сохранение модели:

model.save("d2v.model")

И это работа.Чем я хочу добавить предложение в свой словарный запас и модель.Пример:

new_data = ["Sentence 5",
            "Sentence 6",
            "Sentence 7"]
new_tagged_data= 
[TaggedDocument(words=word_tokenize(_d.lower()),tags[str(i+len(data))]) 
                for i,_d in enumerate(new_data)]

И чем обновить модель:

model.build_vocab(new_tagged_data, update=True)

model.train(new_tagged_data, 
            epochs=model.iter,total_examples=model.corpus_count)

Но это не работает.Юпитер срочно отключился и не ответил.Я использую аналогично с моделью word2vec, и она работает!

В чем может быть проблема?

1 Ответ

0 голосов
/ 04 декабря 2018

Функциональность build_vocab(..., update-True) была разработана только экспериментально в gensim для Word2Vec и не была протестирована / отлажена для Doc2Vec.При попытке использовать ее с Doc2Vec:

https://github.com/RaRe-Technologies/gensim/issues/1019

существует давно открытая ошибка сбоя. Итак, она пока не поддерживается.

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

...