日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

八、朴素贝叶斯中文分类实战

發布時間:2024/9/16 编程问答 35 豆豆
生活随笔 收集整理的這篇文章主要介紹了 八、朴素贝叶斯中文分类实战 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

1.樸素貝葉斯中文分類實戰

文本分類的流程如下圖所示

樸素貝葉斯中文分類的目錄結構

  • 中文分類的目錄機構包括停用詞文件、訓練集文件和和測試集文件,具體內容如下圖所示:

2 數據準備與處理

2.1 數據集介紹

  • 案例中使用的數據是一些新聞數據,每條數據包含了新聞類型和新聞標題。
  • 類型有以下四種:財經類、娛樂類、健康類和體育類。

2.3 加載數據

  • load_data函數的功能是讀取訓練數據和測試數據:titles_list和labels_list中分別存放文本標題和對應的標簽信息。
# 加載數據def load_data(_dir):file_list = os.listdir(_dir)titles_list = []labels_list = []for file_name in file_list:file_path = _dir + '/' + file_nametitles, labels = load_file(file_path)titles_list += titleslabels_list += labelsreturn titles_list, labels_list

2.4 中文分詞

  • load_file()函數的功能是對文本數據進行分詞,為實現文本向量化做準備,tiltes和labels存放標題和標簽
# 分詞def load_file(file_path):with open(file_path, encoding='utf-8') as f:lines = f.readlines()titles = [] # 樣本數據labels = [] # 標簽for line in lines:line = line.encode('unicode-escape').decode('unicode-escape')line = line.strip().rstrip('\n')_lines = line.split('---')if len(_lines) != 2:continuelabel, title = _lineswords = jieba.cut(title)s = ''for w in words:s += w + ' 's = s.strip()titles.append(s)labels.append(label)return titles, 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('紅薯的好處 常吃這種食物能夠幫你減肥'))

總結

以上是生活随笔為你收集整理的八、朴素贝叶斯中文分类实战的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。