我正在做一些使用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()只能加载一个文件。
顺便说一下:我试着在gensim的文档中找到答案,但失败了。
发布于 2019-06-26 02:51:38
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)发布于 2019-11-04 23:50:00
shoresh的答案是正确的。OP缺少的关键部分是index.save(output_fname)
虽然创建对象似乎只是为了保存它,但它实际上只是保存分片,这需要保存一种目录文件(通过index.save(output_fname)以使其作为整个对象可访问)。
https://stackoverflow.com/questions/50213754
复制相似问题