上一章主要是講了分類的過程,這一章主要是講一些優化問題
主要是對于訓練的模型,要儲存下結果,而不用重複的訓練.
import split_jieba2
from sklearn.externals import joblib
def train():
tfidf_train_2 = tv.fit_transform(train_data);
//在訓練中訓練完tfidf,儲存一下tfidf模型,生成tfidf_model.m檔案,在test中直接load檔案就OK。
joblib.dump(tv,"tfidf_model.m")
clf = MultinomialNB(alpha=0.01)
clf.fit(tfidf_train_2,train_target)
//同樣訓練完MultinomialNB模型後,儲存成clf_model.m檔案。
joblib.dump(clf,"clf_model.m")
//上面訓練完模型後,後面就可以直接load檔案進行測試了。
def test(line):
test_data = []
content = split_jieba2.split_jieba(line)
test_data.append(content.strip())
//加載模型
tv = joblib.load("tfidf_model.m")
tfidf_test_2 = tv.transform(test_data);
clf = joblib.load("clf_model.m")
ls = []
proba=clf.predict_proba(tfidf_test_2)
for i in range(len(proba[0])):
lk = str(i) +":"+str( proba[0][i] )
ls.append(lk)
return ls
//最後傳回各個類和對應的機率