八、朴素贝叶斯中文分类实战
生活随笔
收集整理的這篇文章主要介紹了
八、朴素贝叶斯中文分类实战
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
1.樸素貝葉斯中文分類實戰
文本分類的流程如下圖所示:
樸素貝葉斯中文分類的目錄結構
- 中文分類的目錄機構包括停用詞文件、訓練集文件和和測試集文件,具體內容如下圖所示:
2 數據準備與處理
2.1 數據集介紹
- 案例中使用的數據是一些新聞數據,每條數據包含了新聞類型和新聞標題。
- 類型有以下四種:財經類、娛樂類、健康類和體育類。
2.3 加載數據
- load_data函數的功能是讀取訓練數據和測試數據:titles_list和labels_list中分別存放文本標題和對應的標簽信息。
2.4 中文分詞
- load_file()函數的功能是對文本數據進行分詞,為實現文本向量化做準備,tiltes和labels存放標題和標簽
3 模型的構建
步驟一:加載停用詞
stop_words = load_stopwords('stop_word/stopword.txt')步驟二:加載訓練數據
train_datas, train_labels = load_data('train_data')步驟三:文本向量表示
tf = CountVectorizer(stop_words=stop_words, max_df=0.5) train_features = tf.fit_transform(train_datas) train_features_arr = train_features.toarray()步驟四:多項式貝葉斯分類器
clf = MultinomialNB(alpha=0.001).fit(train_features_arr, train_labels)test_datas, test_labels = load_data('test_data') test_features = tf.transform(test_datas)步驟五:模型的評估和保存
# 預測數據 predicted_labels = clf.predict(test_features)# 計算準確率 score = metrics.accuracy_score(test_labels, predicted_labels) print(score)joblib.dump(clf, 'nb.pkl') joblib.dump(tf, 'tf.pkl')步驟六:模型的加載預測
def nb_predict(title):assert MODEL != None and TF != Nonewords = jieba.cut(title)s = ' '.join(words)test_features = TF.transform([s]) predicted_labels = MODEL.predict(test_features)return predicted_labels[0]if __name__ == '__main__':load_model('nb.pkl', 'tf.pkl')print (nb_predict('東莞市場采購貿易聯網信息平臺參加部委首批聯合驗收'))print (nb_predict('留在中超了!踢進生死戰決勝一球,武漢卓爾保級成功'))print (nb_predict('陳思誠全新系列電影《外太空的莫扎特》首曝海報 黃渤、榮梓杉演父子'))print (nb_predict('紅薯的好處 常吃這種食物能夠幫你減肥'))總結
以上是生活随笔為你收集整理的八、朴素贝叶斯中文分类实战的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 七、朴素贝叶斯中文文本分类
- 下一篇: 九、N-gram语言模型