import pandas as pd
data_origin = pd.read_csv('data.csv',encoding = 'gbk')
#開啟停用詞檔案
with open('stopwords.txt','r',encoding = 'utf-8') as fp:
stop_words = fp.readlines() #返回列表
#通過map函式將空格去掉,再用map函式對映生成生成器,用list雜湊
stop_list = list(map(lambda word:word.strip(),stop_words))
print(len(stop_list))
#對列表進行去重
stopword_list = set(stop_list)
data_content = data_origin['內容 '] #列名字段
data_tag = data_origin['評價']
import jieba
comment_list =
for comment in data_content:
seglist = jieba.cut(comment,cut_all = false) #cut_all 引數預設為false,所有使用cut方法時預設為精確模式(true時為全模式,所有可以成詞的詞語都掃瞄出來,速度快,eg:今天,今天天氣,天天,天氣,真好)
#去除停用詞
final = ""
for seg in seglist:
if seg not in stopword_list: #如果不在停用詞的列表裡就取出來
final += seg
from sklearn.feature_extraction.text import countvectorizer
#countvectorizer 將文字轉化為詞頻矩陣
vector = countvectorizer()
x = vector.fit_transform(comment_list)
print(vector.get_feature_names())
print(x.toarray())
#**值:前十個作為樣本,後三條為測試資料
#訓練集 取前十個
x_train = x.toarray()[:10]
#測試集,從10 取到最後
x_test = x.toarray()[10:]
y = list(map(lambda x:1 if x == '好評' else 0, data_tag)) #將所有分類名轉化為數值型便於計算
y_train = y[:10]
y_test = y[10:]
from sklearn.*****_bayes import multinomia1nb #匯入樸素貝葉斯公式
clf = multinomia1nb()
clf.fit(x_train,y_train)
#**result = clf.predict(x_test)
print(result)
print(y_test)
貝葉斯分類
貝葉斯分類 有意義區分和無意義區分 既然要區分兩種點那麼兩種點必然有區別,當區分有區別的點時說是有意義區分。而完全區分那種一模一樣的點則是無意義區分。所以我們所討論的都是有意義的區分。完全區分和不完全區分 貝葉斯分類器是一種概率上的區分,而假如兩種點一種是黑的一種是白的那不需要用貝葉斯分類器區分,因...
貝葉斯分類
樸素貝葉斯模型是一組非常簡單快速的分類演算法,通常適用於維度非常高的資料集,因為執行速度快,而且可調引數少,因此非常適合為分類問題提供快速粗糙的基本方案。貝葉斯分類 樸素貝葉斯分類器建立在貝葉斯分類方法上,其數學基礎是貝葉斯定理,乙個描述統計計量條件概率關係的公式。在貝葉斯分類中,我們希望確定乙個具...
樸素貝葉斯分類
1 貝葉斯分類是一類分類演算法的總稱,這類演算法均以貝葉斯定理為基礎,故統稱為貝葉斯分類。2 樸素貝葉斯的思想基礎是這樣的 對於給出的待分類項,求解在此項出現的條件下各個類別出現的概率,哪個最大,就認為此待分類項屬於哪個類別。通俗來說,就好比這麼個道理,你在街上看到乙個黑人,我問你你猜這哥們 來的,...