将Pickle对象用作API调用

0 投票
1 回答
1121 浏览
提问于 2025-04-16 15:06

我训练了一个朴素贝叶斯分类器,用来做简单的情感分析。这个模型的大小是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能不能帮上忙了。

撰写回答