使用sklearn中的贝叶斯算法建立药品分类任务

准备分类的训练数据第一列为:输入
第二列为:输出

使用sklearn中的贝叶斯算法建立药品分类任务

文章插图
药品分类数据
数据分词预处理import jiebacutname=lambda x : ' '.join(jieba.lcut(x))data['药品名称']=data['药品名称'].Apply(cutname)将数据拆分为训练集和测试集x_train,x_test,y_train,y_test=train_test_split(data.药品名称,data.药品类型,test_size=0.3)构建分类器# 向量化(vectorizer) => 转换器(transformer) => 分类器(classifier)from sklearn.feature_extraction.text import TfidfTransformerfrom sklearn.feature_extraction.text import CountVectorizerfrom sklearn.naive_bayes import MultinomialNB #贝叶斯text_clf = Pipeline([('vect', CountVectorizer()),('tfidf', TfidfTransformer()),('clf', MultinomialNB()), ])text_clf.fit(x_train, y_train)#训练模型评估print(classification_report(y_test,text_clf.predict(x_test)))predicted = text_clf.predict(x_test)np.mean(predicted == y_test) 
使用sklearn中的贝叶斯算法建立药品分类任务

文章插图
模型评估
  • 对原料药和保健药品分类效果比较差

使用sklearn中的贝叶斯算法建立药品分类任务

文章插图
模型评估
调用分类器进行分类预测text_clf.predict(['阿莫西林']) 
使用sklearn中的贝叶斯算法建立药品分类任务

文章插图
阿莫西林药品分类

【使用sklearn中的贝叶斯算法建立药品分类任务】


    推荐阅读