在真实开发环境中我们需要将训练好的模型保存起来,下次直接加载保存好的模型进行使用,而不用重复的训练.
import split_jieba2
from sklearn.externals import joblib
def train():
// 保存训练好的模型,生成tfidf_model.m文件,在test中直接load文件就OK。
tfidf_train_2 = tv.fit_transform(train_data);
joblib.dump(tv,"tfidf_model.m")
// 保存训练好的模型,生成clf_model.m文件
clf = MultinomialNB(alpha=0.01)
clf.fit(tfidf_train_2,train_target)
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