八、朴素贝叶斯中文分类实战
生活随笔
收集整理的這篇文章主要介紹了
八、朴素贝叶斯中文分类实战
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
1.樸素貝葉斯中文分類實(shí)戰(zhàn)
文本分類的流程如下圖所示:
樸素貝葉斯中文分類的目錄結(jié)構(gòu)
- 中文分類的目錄機(jī)構(gòu)包括停用詞文件、訓(xùn)練集文件和和測試集文件,具體內(nèi)容如下圖所示:
2 數(shù)據(jù)準(zhǔn)備與處理
2.1 數(shù)據(jù)集介紹
- 案例中使用的數(shù)據(jù)是一些新聞數(shù)據(jù),每條數(shù)據(jù)包含了新聞?lì)愋秃托侣剺?biāo)題。
- 類型有以下四種:財(cái)經(jīng)類、娛樂類、健康類和體育類。
2.3 加載數(shù)據(jù)
- load_data函數(shù)的功能是讀取訓(xùn)練數(shù)據(jù)和測試數(shù)據(jù):titles_list和labels_list中分別存放文本標(biāo)題和對應(yīng)的標(biāo)簽信息。
2.4 中文分詞
- load_file()函數(shù)的功能是對文本數(shù)據(jù)進(jìn)行分詞,為實(shí)現(xiàn)文本向量化做準(zhǔn)備,tiltes和labels存放標(biāo)題和標(biāo)簽
3 模型的構(gòu)建
步驟一:加載停用詞
stop_words = load_stopwords('stop_word/stopword.txt')步驟二:加載訓(xùn)練數(shù)據(jù)
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()步驟四:多項(xiàng)式貝葉斯分類器
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)步驟五:模型的評估和保存
# 預(yù)測數(shù)據(jù) predicted_labels = clf.predict(test_features)# 計(jì)算準(zhǔn)確率 score = metrics.accuracy_score(test_labels, predicted_labels) print(score)joblib.dump(clf, 'nb.pkl') joblib.dump(tf, 'tf.pkl')步驟六:模型的加載預(yù)測
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('東莞市場采購貿(mào)易聯(lián)網(wǎng)信息平臺參加部委首批聯(lián)合驗(yàn)收'))print (nb_predict('留在中超了!踢進(jìn)生死戰(zhàn)決勝一球,武漢卓爾保級成功'))print (nb_predict('陳思誠全新系列電影《外太空的莫扎特》首曝海報(bào) 黃渤、榮梓杉演父子'))print (nb_predict('紅薯的好處 常吃這種食物能夠幫你減肥'))總結(jié)
以上是生活随笔為你收集整理的八、朴素贝叶斯中文分类实战的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 七、朴素贝叶斯中文文本分类
- 下一篇: 九、N-gram语言模型