Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/301.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 保存和加载gensim相似模型生成的多个碎片_Python_Model_Gensim - Fatal编程技术网

Python 保存和加载gensim相似模型生成的多个碎片

Python 保存和加载gensim相似模型生成的多个碎片,python,model,gensim,Python,Model,Gensim,我的数据有100多万行,在训练gensim相似性模型时,它正在生成多个.sav文件(model.sav、model.sav.0、model.sav.1等等)。问题是,当加载时,它只加载一个子部分,而不是所有子部分,因此在预测中表现糟糕。参数/选项不符合gensim文档的要求 根据gensim文件- 保存为文件句柄并提供以下参数应该有效-: model.save(fname\u或\u handle,单独=无) load(文件路径,mmap='r') 甚至试图- pickle.sav文件(这只会pi

我的数据有100多万行,在训练gensim相似性模型时,它正在生成多个.sav文件(model.sav、model.sav.0、model.sav.1等等)。问题是,当加载时,它只加载一个子部分,而不是所有子部分,因此在预测中表现糟糕。参数/选项不符合gensim文档的要求

根据gensim文件- 保存为文件句柄并提供以下参数应该有效-:

  • model.save(fname\u或\u handle,单独=无)
  • load(文件路径,mmap='r')
  • 甚至试图-

  • pickle.sav文件(这只会pickle第一个碎片,即model.sav)
  • 将所有子部分压缩为.gz文件(这将只压缩一个碎片,而不是所有子部分),并且还会出现某种pickle错误
  • 预期的结果应该给出来自语料库的所有匹配文档,但这只给出model.sav(加载时提到的文件)中的匹配文档。它甚至不执行其他碎片。我检查了每个碎片的结果


    问题:我如何使用gensim模型的所有子文件来预测我的测试文档的相似性,而不必逐个循环遍历每个子文件,然后呈现这些结果的联合。

    我的理解是,'model.sav'作为一种目录来访问所有实际的相似性碎片


    你从len(sims1)的输出是什么?在65536个条目的语料库上运行上述代码(正好创建两个碎片),我可以保存和加载一个语料库,并检查它是否包含65536个文档。我还可以添加文档并进一步保存/加载

    我的正在创建5个碎片,预测结果不好…我们检查了每个碎片的结果,默认情况下它只选择模型。sav.0Hi,Riya你有没有找到解决方案,我的问题也与你的问题非常相似。我需要加载使用gensim相似模型保存的多个索引。no Mohsin。我用不同的碎片做了预测。它预测不同长度的结果。无法合并碎片。
    tf_idf = gensim.models.TfidfModel(corpus)
    
    sims = gensim.similarities.Similarity('./models/model.sav',tf_idf[corpus],
                                              num_features=len(dictionary))
    sims.save('./models/model.sav')
    
    sims1 = gensim.similarities.Similarity.load(./models/model.sav)