樸素貝葉斯實戰:新聞文本分類

擊上方
「藍色字」
可關注咱們!


今日分享:基於貝葉斯模型的新聞文本分類web


一:流程windows

一、從網站下載獲取數據集,該數據集也是由sklearn提供的,不過因爲數據集較大(其實也就15M左右),所以須要在使用時從網站直接下載(如若下載不成功,請在本QQ學習羣獲取)微信

二、數據集劃分網絡

三、進行特徵工程,對新聞文本數據進行 TF-IDF 提取electron

四、實例化貝葉斯估計器,訓練,預測ide


二:數據集介紹學習


該新聞數據集大約包含11314個新聞文本,共20大類測試


(單個新聞文本示例)


(類別編碼及實際類別描述)fetch


三:代碼演示網站


#導入相關庫
from sklearn.datasets import fetch_20newsgroups
from sklearn.model_selection import train_test_split
from sklearn.feature_extraction.text import TfidfVectorizer
from sklearn.naive_bayes import MultinomialNB
from sklearn.metrics import classification_report


def naba():
   '''樸素貝葉斯新聞文本分類'''
   
   #獲取數據集 網絡下載獲取 參數代表將訓練集和測試集的數據所有下載
   news = fetch_20newsgroups(subset='all')
   
   #劃分數據集
   x_train,x_test,y_train,y_test = train_test_split(news.data,news.target,test_size=0.25)
   
   #對文本進行特徵提取
   tf = TfidfVectorizer()
   
   x_train = tf.fit_transform(x_train)
   
#     print(tf.get_feature_names())
   
   x_test = tf.transform(x_test)
   
   #貝葉斯實例化
   mlt = MultinomialNB(alpha=1.0)
   
   mlt.fit(x_train,y_train)
   
   y_predict = mlt.predict(x_test)
   
   print('預測的文章類別爲:',y_predict)
   
   print('準確率爲:',mlt.score(x_test,y_test))
   
   print('每一個類別的精確率和召回率:',
         classification_report(y_test,y_predict,target_names = news.target_names))
   
   
if __name__ == '__main__':
   naba()


輸出結果

預測的文章類別爲:
[16  6  4 ... 13 14 14]

準確率爲:
0.8539898132427843

每一個類別的精確率和召回率:
                          precision    recall  f1-score   support

            alt.atheism       0.84      0.78      0.81       179
          comp.graphics       0.94      0.73      0.82       271
comp.os.ms-windows.misc       0.87      0.83      0.85       250
comp.sys.ibm.pc.hardware       0.79      0.77      0.78       254
  comp.sys.mac.hardware       0.87      0.87      0.87       234
         comp.windows.x       0.92      0.91      0.92       239
           misc.forsale       0.92      0.72      0.81       248
              rec.autos       0.91      0.90      0.90       245
        rec.motorcycles       0.91      0.96      0.93       248
     rec.sport.baseball       0.96      0.95      0.96       243
       rec.sport.hockey       0.93      0.98      0.96       253
              sci.crypt       0.81      0.98      0.88       251
        sci.electronics       0.85      0.85      0.85       237
                sci.med       0.96      0.90      0.93       247
              sci.space       0.88      0.95      0.92       263
 soc.religion.christian       0.56      0.98      0.71       241
     talk.politics.guns       0.73      0.99      0.84       222
  talk.politics.mideast       0.92      0.97      0.95       237
     talk.politics.misc       0.97      0.60      0.74       192
     talk.religion.misc       0.93      0.16      0.27       158

            avg / total       0.87      0.85      0.85      4712


源代碼及數據集文件已上傳至QQ羣




Python基礎知識集錦

爬蟲專題文章整理篇!!!

Python數據分析乾貨整理篇

Matplotlib數據可視化專題集錦貼



公衆號     QQ羣

掃QQ羣二維碼進交流學習羣

或在後臺回覆:加羣

本文分享自微信公衆號 - 數據指南(BigDataDT)。
若有侵權,請聯繫 support@oschina.cn 刪除。
本文參與「OSC源創計劃」,歡迎正在閱讀的你也加入,一塊兒分享。

相關文章
相關標籤/搜索