2017-07-11 79 views
1

如何在TextBlob中稍後更新模型結果?

的文檔可以參考這裏https://github.com/sloria/TextBlob如何爲Python TextBlob保存模型?

發現我注意到指定如何更新訓練數據的文檔,但我沒有看到一個方法或方式將數據從上次會話保存。

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

尤其我指的是文本分類。我確實覺得自己在這個特定的主題中很愚蠢,因爲我總是很難知道這些培訓課程在任何AI示例中都持續存在。

你不想再次運行整個事情嗎?你想從你離開的地方開始,並不斷改進它。

我想這樣做:

  1. 如果過去的訓練成果存在,它們加載到模型
  2. 更新或在以後的時間運行新的訓練
  3. 保存訓練
  4. 重複根據需要
+1

我不知道答案,但在tensorflow中有:'tf.train.Saver.restore()',它恢復了以前保存的變量。 – user1767754

+0

Yah,我幾乎想要使用它,但是這個庫很容易。 –

回答

1

該模型和培訓可以堅持使用酸洗取出

>>> 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] 
+1

謝謝@DhruvPathak!你的代表是有保證的。 –

+0

你認爲這個圖書館足夠分類超過2個分類嗎? –

+0

@JasonSebring它使用NaiveBayes,所以如果你想使用NaiveBayes分類器,它對任何數量的標籤都是足夠的。用於其他分類器,包括NaiveBayes。或者更好地控制文本的處理方式,會推薦scikit-learn。 – DhruvPathak