像 API 调用一样使用 Pickle 对象

发布于 2024-10-30 06:13:01 字数 379 浏览 0 评论 0原文

我训练了一个 NaiveBayes 分类器来进行基本的情感分析。型号为208MB。我只想加载一次,然后使用 Gearman 工作人员继续调用模型来获取结果。仅加载一次就需要相当长的时间。如何仅加载模型一次然后继续调用它?

一些代码,希望这有帮助:

import nltk.data
c=nltk.data.load("/path/to/classifier.pickle")

这仍然是加载器脚本。

现在我有一个 gearman 工作脚本,它应该调用这个“c”对象,然后对文本进行分类。

c.classify('features')

这就是我想做的。 谢谢。

I trained a NaiveBayes classifier to do elementary sentiment analysis. The model is 208MB . I want to load it only once and then use Gearman workers to keep calling the model to get the results. It takes rather long time to load it only once. How do i load the model only once and then keep calling it ?

Some code , hope this helps :

import nltk.data
c=nltk.data.load("/path/to/classifier.pickle")

This remains as the loader script.

Now i have a gearman worker script which should call this "c" object and then classify the text.

c.classify('features')

This is what i want to do .
Thanks.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

夏天碎花小短裙 2024-11-06 06:13:01

如果问题是如何使用 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 是否有帮助

If the question is how to use pickle, than that's the answer

    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')

if it's a problem to load large object in such a way, than I don't know whether pickle could help

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文