2012-12-17 88 views
1

我在酸洗通過nltk訓練的樸素貝葉斯分類器時遇到了問題。這裏是我用來保存分類器的代碼:保存樸素貝葉斯分類器nltk

pickledfile=open('my_classifier.pickle','wb') 
pickle.dump(classifier,pickledfile) 
pickledfile.close() 

這似乎工作正常。但是,當我嘗試使用以下代碼加載醃製文件時:

f1=open('my_classifier.pickle') 
classifier=pickle.load(f1) 
f1.close() 

我收到EOF錯誤。我直接從這個問題得到了這段代碼,它對我無論如何都不起作用:Save Naive Bayes Trained Classifier in NLTK。讓我知道如果你知道這是怎麼回事。

+1

我遇到了一些麻煩,這也算。使用'cPickle'模塊進行轉儲和加載爲我工作。如果它不起作用,請嘗試將協議設置爲1:'pickle.dump(分類器,pickledfile,1)' –

+0

是的,然後設置協議參數修復MaxEnt模型的類似問題。 – winwaed

回答

1

我沒有環境設置來測試你的代碼,但我覺得它不適合你保存/加載泡菜的部分。

談到NLTK書Storing Taggers部分,我會改變你的代碼,做這樣的:

def save_classifier(classifier): 
    f = open('my_classifier.pickle', 'wb') 
    pickle.dump(classifier, f, -1) 
    f.close() 

def load_classifier(): 
    f = open('my_classifier.pickle', 'rb') 
    classifier = pickle.load(f) 
    f.close() 
    return classifier 

希望它能幫助。

https://stackoverflow.com/posts/17635668/