通过gensim相似性模型保存并加载多个分片

问题描述 投票:0回答:1

我的数据有超过一百万行,在训练gensim相似性模型时,它正在制作多个.sav文件(model.sav,model.sav.0,model.sav.1等。)。问题是在加载时,它仅加载一个子部分,而不是所有子部分,因此在预测中表现糟糕。根据gensim文档,参数/选项不起作用。

根据gensim文档-https://radimrehurek.com/gensim/similarities/docsim.html另存为文件句柄并提供以下参数应该起作用-:

  1. model.save(fname_or_handle,分别= None)
  2. model.load(filepath,mmap ='r')

甚至试图-

  1. 修补.sav文件(此文件仅腌制第一个分片,即model.sav)
  2. 将所有子部分压缩为.gz文件(这仅压缩一个分片,而不是所有子部分),并且还会出现某些pickle错误。
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)

预期结果应提供语料库中所有匹配的文档,但这仅来自model.sav(加载时提到的文件)。它甚至不执行其他分片。我检查了每个分片的结果。

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

python model gensim
1个回答
0
投票

据我了解,'model.sav'用作访问所有实际相似性碎片的目录。

您从len(sims1)输出什么?在65,536个条目的语料库上运行上面的代码(恰好创建两个分片),我可以保存和加载语料库并检查它是否具有65,536个文档。我还可以添加文档并进一步保存/加载。

© www.soinside.com 2019 - 2024. All rights reserved.