gensim #3 结果持久化

有时我们希望在计算结束后对一条新的文档获取相似度向量。
这时,可以预先在整体计算时,将index、dictionary等数据保存到文件。后续计算时,可以从文件加载之前的计算结果。

gensim主要实例对象都提供了save(filepath)方法,可以直接保存到文件。

如何储存

在#2中的代码结尾追加:

dictionary.save('/tmp/gensim/test.dict')
tfidf_model.save('/tmp/gensim/test.model')
index.save('/tmp/gensim/test.index')

重新执行后,发现/tmp/gensim目录下有:

test.dict
test.model
test.index
test.index.0

值得一提的是,由于我们使用了可迭代计算的gensim.similarities.Similarity类,并在初始化时,指定首个参数为'/tmp/gensim/test,其会自动保存结果到文件,并根据索引大小分片(shard)。文件会命名为test.index.0test.index.1test.index.2等等。

如何读取

import gensim
dictionary = gensim.corpora.Dictionary.load('/tmp/gensim/test.dict')
model = gensim.models.tfidfmodel.load('/tmp/gensim/test.model')
index = gensim.similarities.Similarity.load('/tmp/gensim/test.index')

读取后,就可以进行新文档的运算:

doc = 'xxx xxx xx xxx'
vec = dictionary.doc2bow(doc.split())
similarity = index[model[vec]]
print(similarity)

你可能感兴趣的:(gensim #3 结果持久化)