将Pickle对象用作API调用
我训练了一个朴素贝叶斯分类器,用来做简单的情感分析。这个模型的大小是208MB。我想只加载一次这个模型,然后用Gearman工作者不断调用它来获取结果。可是,加载这个模型的时间挺长的。我该怎么做才能只加载一次,然后一直调用它呢?
这里有一些代码,希望能帮到你:
import nltk.data
c=nltk.data.load("/path/to/classifier.pickle")
这部分是加载模型的脚本。
现在我有一个Gearman工作者脚本,它应该去调用这个“c”对象,然后对文本进行分类。
c.classify('features')
这就是我想要做的事情。谢谢。
1 个回答
0
如果问题是关于如何使用pickle,那这个就是答案。
import pickle
class Model(object):
#some crazy array of data
def getClass(sentiment)
#return class of sentiment
def loadModel(filename):
f = open(filename, 'rb')
res = pickle.load(f)
f.close()
return res
def saveModel(model, filename):
f = open(filename, 'wb')
pickle.dump(model, f)
f.close()
m = loadModel('bayesian.pickle')
如果用这种方式加载大对象有问题,那我就不知道pickle能不能帮上忙了。