首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何通过gensim.similarities.Similarity加载索引分片?

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

Stack Overflow用户
提问于 2018-05-07 20:01:11
回答 2查看 422关注 0票数 1

我正在做一些使用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()只能加载一个文件。

顺便说一下:我试着在gensim的文档中找到答案,但失败了。

EN

回答 2

Stack Overflow用户

发布于 2019-06-26 02:51:38

代码语言:javascript
复制
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

票数 0
EN

Stack Overflow用户

发布于 2019-11-04 23:50:00

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

虽然创建对象似乎只是为了保存它,但它实际上只是保存分片,这需要保存一种目录文件(通过index.save(output_fname)以使其作为整个对象可访问)。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50213754

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档