Gensim模型:类'FileNotFoundError'

问题描述

问题是我有1000份文档,并且通过了所有文档以进行Gensim模型的训练,并且成功地将模型训练并保存为.model格式。

但是使用当前格式,还生成了2个新文件

  1. doc2vec.model
  2. doc2vec.model.trainables.syn1neg.npy
  3. doc2vec.model.wv.vectors.npy

由于硬件的限制,我分别训练了模型并将其保存在Google Colab和Google Driver中。当我在本地计算机上下载生成的模型和其他文件并运行代码时,出现“找不到文件错误”,而我在.py文件或当前工作目录所在的位置添加了特定文件

我用下面的代码

from gensim.models.doc2vec import doc2vec,TaggedDocument
from nltk.tokenize import word_tokenize

files = readfiles("CuratedData")
data = [TaggedDocument(words=word_tokenize(_d.decode('utf-8').strip().lower()),tags=[str(i)]) for i,_d in enumerate(files)]

max_epochs = 100
vec_size = 300
alpha = 0.025

model = doc2vec(vector_size=vec_size,alpha=alpha,min_alpha=0.00025,min_count=1,dm=1)

model.build_vocab(data)

for epoch in range(max_epochs):
    print('iteration {0}'.format(epoch))
    model.train(data,total_examples=model.corpus_count,epochs=model.iter)
    # decrease the learning rate
    model.alpha -= 0.0002
    # fix the learning rate,no decay
    model.min_alpha = model.alpha

model.save("doc2vec.model")
print("Model Saved")

加载模型的代码

    webVec = ""
    try:

        path = os.path.join(os.getcwd(),"doc2vec.model")

        model = Word2Vec.load(path)

        data = word_tokenize(content['htmlResponse'].lower())

        # Webvector
        webVec = model.infer_vector(data)
    except ValueError as ve:
        print(ve)
    except (TypeError,ZeroDivisionError) as ty:
        print(ty)
    except:
        print("Oops!",sys.exc_info()[0],"occurred.")

任何帮助将不胜感激。谢谢,干杯

解决方法

保存大型模型通常将为大型内部阵列创建多个子文件。所有这些文件都必须存放在一起。 (它们都以相同的字符串开头,即您最初指定的名称-在您的情况下为doc2vec.model。)

可能还有另一个文件下载失败。但是,在没有看到您用来触发错误的代码或完整的错误回溯堆栈(涉及文件名和代码行)的情况下,很难猜测您是如何触发FileNotFoundError的。您可能需要编辑问题以添加该信息,因此可以更清楚地知道之前运行的代码以及涉及的库代码,确切的错误。