準(zhǔn)備分類的訓(xùn)練數(shù)據(jù)
第一列為:輸入
第二列為:輸出
藥品分類數(shù)據(jù)
數(shù)據(jù)分詞預(yù)處理
import jieba
cutname=lambda x : ' '.join(jieba.lcut(x))
data['藥品名稱']=data['藥品名稱'].Apply(cutname)
將數(shù)據(jù)拆分為訓(xùn)練集和測試集
x_train,x_test,y_train,y_test=train_test_split(data.藥品名稱,data.藥品類型,test_size=0.3)
構(gòu)建分類器
# 向量化(vectorizer) => 轉(zhuǎn)換器(transformer) => 分類器(classifier)
from sklearn.feature_extraction.text import TfidfTransformer
from sklearn.feature_extraction.text import CountVectorizer
from sklearn.naive_bayes import MultinomialNB #貝葉斯
text_clf = Pipeline([ ('vect', CountVectorizer()),
('tfidf', TfidfTransformer()),
('clf', MultinomialNB()),
])text_clf.fit(x_train, y_train)#訓(xùn)練
模型評估
print(classification_report(y_test,text_clf.predict(x_test)))
predicted = text_clf.predict(x_test)np.mean(predicted == y_test)
模型評估
- 對原料藥和保健藥品分類效果比較差
模型評估
調(diào)用分類器進(jìn)行分類預(yù)測
text_clf.predict(['阿莫西林'])
阿莫西林藥品分類