我训练了一个朴素贝叶斯分类器来做基本的情感分析。型号是208MB。我只想加载它一次,然后使用Gearman工作器不断调用模型以获得结果。装载一次需要相当长的时间。我如何加载模型只有一次,然后继续调用它?
一些代码,希望有帮助:
import nltk.data
c=nltk.data.load("/path/to/classifier.pickle")
这仍然是加载器脚本。
现在我有一个gearman worker脚本,它应该调用这个"c"对象,然后对文本进行分类。c.classify('features')
这就是我想做的。谢谢。
如果问题是如何使用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是否可以帮助