樸樹貝葉斯 sklean 文字分類實現

2021-08-15 07:48:04 字數 1862 閱讀 4906

讀取本地檔案進行分析,分詞中英文都支援,可以換結巴分詞。

訓練樣本可以自己定義,目錄結構就是當前專案的 data_log資料夾,一級目錄是類別,二級目錄是檔案即可。

博主訓練集合 僅供參考:

from sklearn.datasets import load_files

# 載入資料集

training_data = load_files('./data_log', encoding='utf-8')

'''這是開始提取特徵,這裡的特徵是詞頻統計。

'''from sklearn.feature_extraction.text import countvectorizer

count_vect = countvectorizer()

x_train_counts = count_vect.fit_transform(training_data.data)

'''這是開始提取特徵,這裡的特徵是tfidf特徵。

'''from sklearn.feature_extraction.text import tfidftransformer

tfidf_transformer = tfidftransformer()

x_train_tfidf = tfidf_transformer.fit_transform(x_train_counts)

'''使用樸素貝葉斯分類,並做出簡單的**

'''from sklearn.*****_bayes import multinomialnb

clf = multinomialnb().fit(x_train_tfidf, training_data.target)

docs_new = ['danger_degree:1;breaking_sighn:0;event']

x_new_counts = count_vect.transform(docs_new)

x_new_tfidf = tfidf_transformer.transform(x_new_counts)

predicted = clf.predict(x_new_tfidf)

for doc, category in zip(docs_new, predicted):

print('%r => %s' % (doc, training_data.target_names[category]))

'''使用測試集來評估模型好壞。

'''from sklearn import metrics

import numpy as np;

# twenty_test = fetch_20newsgroups(subset='test',categories=categories, shuffle=true, random_state=42)

testing_data = load_files('./predict_test_log', encoding='utf-8')

docs_test = testing_data.data

x_test_counts = count_vect.transform(docs_test)

x_test_tfidf = tfidf_transformer.transform(x_test_counts)

predicted = clf.predict(x_test_tfidf)

print(metrics.classification_report(testing_data.target, predicted,target_names=testing_data.target_names))

print("accurary\t"+str(np.mean(predicted == testing_data.target)))

樸樹貝葉斯分類 拼寫檢查

coding utf 8 貝葉斯分類之拼寫檢查 原理 1.統計每個單詞出現的概率 2.計算輸入單詞與詞典中正確單詞的距離 3.找到概率最大的單詞 import re import collections 提文字中的單詞 defwords text return re.findall a z text...

樸樹貝葉斯演算法

首先就是貝葉斯定理 進行貝葉斯分類一般就是三個過程 1 確定分類的特徵屬性,及其劃分 比如 確定乙個賬號是真實帳號還是假賬號中,確定的特徵屬性是 a1 日誌數量 註冊天數,a2 好友數量 註冊天數,a3 是否使用 真實頭像。在sns社群中這三項都是可以直接從資料庫裡得到或計算出來的。2 訓練分類器 ...

樸素貝葉斯實現的文字分類

參考文章 樸素貝葉斯實現的文字分類原理 coding utf 8 created on 2017 author xyj import jieba import os import random import math deftextprocessing floder path,train size ...