在从内存加载的gensim Doc2Vec模型上使用infer_vector时的TypeError

时间:2017-09-15 11:09:31

标签: python gensim doc2vec

我对doc2vec算法有点新,并且在python中使用gensim进行实现。

遵循gensim教程"Gensim Doc2vec Tutorial on the IMDB Sentiment Dataset"我已经构建了词汇并训练了doc2vec模型,并使用以下方法将其存储在光盘上:

model = Doc2Vec(dm=0, dbow_words=1, size=300, window=8, min_count=2, iter=10, workers=cores, alpha=0.025, min_alpha=0.025)
model.build_vocab(art_shuffle, progress_per=10000)
model.train(art_shuffle, total_examples=len(art_shuffle), epochs=10)
model.save('doc2vec_model')

它在我的目录中创建以下四个文件:

doc2vec_model
doc2vec_model.docvecs.doctag_syn0.npy
doc2vec_model.syn1neg.npy
doc2vec_model.wv.syn0.npy

我使用与保存它相同的文件名加载模型,即

model = Doc2Vec.load('doc2vec_model')

之后,如果我使用这个模型为我的文档创建一个向量,我会收到错误

model.infer_vector(tokenize(doc_text))

Traceback (most recent call last):
  File "C:\Users\vipul\Documents\NLP_testing\python-nlp\doc2vec_trials\story_prediction_doc2vec.py", line 394, in <module>
    inferred_vector = model.infer_vector(tokenize(doc_text))
  File "C:\Python27\lib\site-packages\gensim\models\doc2vec.py", line 743, in infer_vector
    doctag_vectors=doctag_vectors, doctag_locks=doctag_locks)
  File "gensim\models\doc2vec_inner.pyx", line 272, in gensim.models.doc2vec_inner.train_document_dbow (./gensim/models/doc2vec_inner.c:3535)
    _word_vectors = <REAL_t *>(np.PyArray_DATA(word_vectors))
TypeError: Cannot convert list to numpy.ndarray

我哪里错了?

注意:tokenize()函数使用nltk wordpunct_tokenizer返回单词列表

0 个答案:

没有答案