如何为Python TextBlob保留模型?

时间:2017-07-11 14:35:43

标签: python textblob

如何在TextBlob中保存模型结果以便稍后更新?

可在此处找到文档参考https://github.com/sloria/TextBlob

我注意到文档指定了如何更新训练数据,但我没有看到保存上次会话数据的方法或方法。

如何更新: https://textblob.readthedocs.io/en/dev/classifiers.html#updating-classifiers-with-new-data

特别是我指的是对文本进行分类。我确实觉得自己对这个特定主题感到愚蠢,因为我总是发现很难知道在任何AI示例中这些训练课程的持久性。

您不想再次运行整个事情吗?你想从你离开的地方开始,并不断迭代地改进它。

我想这样做:

  1. 如果存在过去的培训结果,请将其加载到模型中
  2. 更新或运行新的培训课程
  3. 保存培训课程
  4. 根据需要稍后重复

1 个答案:

答案 0 :(得分:1)

可以使用酸洗 unpickling 来保持模型和培训。

>>> from textblob.classifiers import NaiveBayesClassifier
>>> train = [('love the weather','pos'),('love the world','pos'),('horrible place','neg')]
>>> cl = NaiveBayesClassifier(train)
>>> [cl.prob_classify("love food").prob('pos'),cl.prob_classify("love food").prob('neg')]
[0.8590880780051973, 0.14091192199480246]
>>> import cPickle
>>> save_training = open('/tmp/save_training.pickle','wb')
>>> cPickle.dump(cl,save_training)  # SAVE TRAINED CLASSIFIER
>>> save_training.close()
>>> 
>>> load_training = open('/tmp/save_training.pickle','rb')
>>> new_cl = cPickle.load(load_training) # LOAD TRAINED CLASSIFIER
>>> [new_cl.prob_classify("love food").prob('pos'),new_cl.prob_classify("love food").prob('neg')]
[0.8590880780051973, 0.14091192199480246]