Как получить векторы слов из gensim Doc2Vec?

Я обучил модель gensim.models.doc2vec.Doc2Vec
d2v_model = Doc2Vec (предложения, size = 100, window = 8, min_count = 5, worker = 4), и я могу получить векторы документов с помощью docvec = d2v_model.docvecs [0 ]

Как я могу получить векторы слов из обученной модели?


person V Y    schedule 19.05.2016    source источник


Ответы (2)


Doc2Vec наследуется от Word2Vec, и поэтому вы можете получить доступ к векторам слов так же, как в Word2Vec, напрямую путем индексации модели:

wv = d2v_model['apple']

Обратите внимание, однако, что режим обучения Doc2Vec, такой как чистый DBOW (dm=0), не требует или не создает векторов слов. (Чистый DBOW по-прежнему работает довольно хорошо и быстро для многих целей!) Если вы действительно получаете доступ к векторам слов из такой модели, они будут просто автоматически инициализированными случайным образом векторами без всякого смысла.

Только когда сам режим Doc2Vec совместно обучает векторы слов, как в режиме DM (по умолчанию dm=1) или при добавлении дополнительного обучения слов в DBOW (dm=0, dbow_words=1), оба вектора слов и векторы документов обучаются одновременно.

person gojomo    schedule 28.05.2016

Если вы хотите получить все обученные векторы документов, вы можете легко использовать model.docvecs.doctag_syn0. Если вы хотите получить проиндексированный документ, вы можете использовать model.docvecs[i]. Если вы тренируете модель Word2Vec, вы можете получить model.wv.syn0. Если вы хотите получить больше, проверьте эту ссылку на проблему github: (https://github.com/RaRe-Technologies/gensim/issues/1513)

person lugq    schedule 14.08.2018