貝葉斯分類 分詞例項 停用詞

2021-09-19 15:23:10 字數 1603 閱讀 8079

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 樸素貝葉斯的思想基礎是這樣的 對於給出的待分類項,求解在此項出現的條件下各個類別出現的概率,哪個最大,就認為此待分類項屬於哪個類別。通俗來說,就好比這麼個道理,你在街上看到乙個黑人,我問你你猜這哥們 來的,...