如何通过gensim.similarities.Similarity加载索引碎片?

时间:2018-05-07 12:01:11

标签: python gensim

我正在使用gensim处理某些事情。

在gensim中,var index通常表示gensim.similarities.<cls>的对象。

首先,我使用gensim.similarities.Similarity(filepath, ...)将索引另存为文件,然后按gensim.similarities.Similarity.load(filepath + '.0')加载。因为gensim.similarities.Similarity默认将索引保存到分片文件,如index.0

当索引文件变大时,它会自动分成更多分片,例如index.0index.1index.2 ......

如何加载这些分片文件? gensim.similarities.Similarity.load()只能加载一个文件。

BTW:我试图在gensim的doc中找到答案,但失败了。

2 个答案:

答案 0 :(得分:0)

from gensim.corpora.textcorpus import TextCorpus
from gensim.test.utils import datapath, get_tmpfile
from gensim.similarities import Similarity

temp_fname = get_tmpfile("index")
output_fname = get_tmpfile("saved_index")
corpus = TextCorpus(datapath('testcorpus.txt'))
index = Similarity(output_fname, corpus, num_features=400)

index.save(output_fname)
loaded_index = index.load(output_fname)

https://radimrehurek.com/gensim/similarities/docsim.html

答案 1 :(得分:0)

shoresh的答案是正确的。 OP缺少的关键部分是     index.save(output_fname)

虽然只是创建对象出现来保存它,但实际上只保存了碎片,这需要保存某种目录文件(通过index.save(output_fname)可以整体访问)对象。