我正在使用word2vec来计算两个单词之间的相似度。因此,对于该模型,我正在使用GoogleNews。该模型非常庞大,因此需要花费很多时间来加载。
model = Word2Vec.load_word2vec_format('D:/Userfiles/vsachidananda/Downloads/GoogleNews-vectors negative300.bin.gz', binary=True)
我想加载它并保留在变量/对象中,以便每当我运行python程序时,我都应该能够调用
model.similarity('word1','word2')
如何做到这一点?任何的想法?
我知道在Python进程之间共享复杂对象的唯一方法是使用multiprocessing.Manager
。但是,model
将腌制和拆封每次需要一个子进程共享的时间。我想这将是缓慢的load_word2vec_format
。
您可以改为运行启动程序,该启动程序加载model
一次,然后等待并根据需要执行另一个python脚本。一个非常简单的启动器如下所示:
import Word2Vec
model = Word2Vec.load_word2vec_format(...)
try:
import traceback
import script
while True:
raw_input()
try:
reload(script)
script.main(model)
except:
print traceback.print_exc()
except KeyboardInterrupt:
print 'exit launcher'
使用此基本启动器,script.py
应位于同一文件夹中,并需要定义main()
:
def main(model):
model.similarity('word1','word2')
...
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句