我正在使用gensim处理某些事情。
在gensim中,var index
通常表示gensim.similarities.<cls>
的对象。
首先,我使用gensim.similarities.Similarity(filepath, ...)
将索引另存为文件,然后按gensim.similarities.Similarity.load(filepath + '.0')
加载。因为gensim.similarities.Similarity
默认将索引保存到分片文件,如index.0
。
当索引文件变大时,它会自动分成更多分片,例如index.0
,index.1
,index.2
......
如何加载这些分片文件? gensim.similarities.Similarity.load()
只能加载一个文件。
答案 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)
答案 1 :(得分:0)
shoresh的答案是正确的。 OP缺少的关键部分是 index.save(output_fname)
虽然只是创建对象出现来保存它,但实际上只保存了碎片,这需要保存某种目录文件(通过index.save(output_fname)可以整体访问)对象。