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

Кто-нибудь знает, какую функцию мне следует использовать, если я хочу использовать предварительно обученные модели doc2vec на этом веб-сайте https://github.com/jhlau/doc2vec?

Я знаю, что мы можем использовать Keyvectors.load_word2vec_format() для создания векторов слов из предварительно обученных моделей word2vec, но есть ли у нас аналогичная функция для загрузки предварительно обученных моделей doc2vec в gensim?

Большое спасибо.


person Vera    schedule 17.10.2017    source источник


Ответы (2)


Когда модель, такая как Doc2Vec, сохраняется с родным save() gensim, ее можно перезагрузить родным load() методом:

model = Doc2Vec.load(filename)

Обратите внимание, что большие внутренние массивы могли быть сохранены вместе с основным именем файла в других именах файлов с дополнительными расширениями - и все эти файлы должны храниться вместе, чтобы повторно загрузить полнофункциональную модель. (Вам по-прежнему нужно указать только основной файл сохранения, а вспомогательные файлы будут обнаружены с ожидаемыми именами рядом с ним в том же каталоге.)

У вас могут возникнуть другие проблемы при использовании этих предварительно обученных моделей. Особенно:

  • как указано на связанной странице, автор использовал собственный вариант gensim, который появился около 2 лет назад; файлы могут не загружаться в стандартном gensim или более поздних версиях

  • не совсем понятно, какие параметры использовались для обучения этих моделей (хотя я полагаю, что если вам удастся их загрузить, вы сможете увидеть их как свойства в модели), и сколько метаоптимизации использовалось для каких целей, и будут ли эти цели использоваться соответствовать вашему собственному проекту

  • если параметры такие, как показано в одном из файлов репо, [train_model.py][1], некоторые из них несовместимы с передовой практикой (min_count=1 обычно плохо для Doc2Vec) или очевидным размером модели (модель всего 1,4 ГБ не может содержать 300-мерные векторы для все миллионы документов или словосочетаний в Википедии 2015 г.)

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

person gojomo    schedule 17.10.2017
comment
Спасибо за ответы, gogomo! но, к сожалению, мне не удалось загрузить модель с помощью метода load (), поэтому я ищу помощь в stackflow, чтобы узнать, есть ли кто-нибудь, кто напишет код, чтобы исправить эту проблему (а также проблему с версией gensim). - person Vera; 18.10.2017
comment
Вы не упоминаете, в какую ошибку или блок вы попали, это означает, что вы не можете его загрузить, поэтому трудно быть уверенным, в чем может быть проблема. Но, как упоминает автор модели, вам, вероятно, потребуется использовать его старую кастомную вилку gensim, доступную на Github. Вы пробовали это? Если нет, то это первое, что нужно попробовать. Но также: даже если это удастся, вы можете быть разочарованы этой моделью по всем причинам, которые я упомянул. - person gojomo; 18.10.2017

Попробуй это:

import gensim.models as g

model="model_folder/doc2vec.bin"  #point to downloaded pre-trained doc2vec model

#load model
m = g.Doc2Vec.load(model)
person Vyas    schedule 09.02.2019