基于朴素贝叶斯的书籍评价信息分类
生活随笔
收集整理的這篇文章主要介紹了
基于朴素贝叶斯的书籍评价信息分类
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
1 中文文本數據集預處理
假設現在需要判斷一封郵件是不是垃圾郵件,其步驟如下:
(1) 數據集拆分成單詞,中文分詞技術;
(2) 計算句子中總共多少單詞,確定詞向量大小;
(3) 句子中的單詞轉換成向量,BagofWordsVec;
計算 P(Ci),P(Ci|w)=P(w|Ci)P(Ci)/P(w),表示 w 特征出現時,該樣本被分為 Ci 類的條
件概率;
判斷 P(w[i]C[0])和 P(w[i]C[1])概率大小,兩個集合中概率高的為分類類標。
下面講解一個具體的實例。
2 數據集讀取
假設存在如下所示 10 條 Python 書籍訂單評價信息,每條評價信息對應一個結果(好評
和差評),如下圖所示:
?
3、代碼實現
#-*-coding:utf-8-*- import pandas as pd import jieba from sklearn.feature_extraction.text import CountVectorizer data=pd.read_csv('./data.csv',encoding='ansi') #確定特征值與目標 feature=data.loc[:,'內容 '] target=data.loc[:,'評價'] #將特征值與目標值轉化為數值類型 data.loc[data.loc[:,"評價"]=='好評','評價']=0 data.loc[data.loc[:,"評價"]=='差評','評價']=1 #將object轉化為int類型 data.loc[:,'評價']=data.loc[:,'評價'].astype('int') #轉化特征值為數值型 content_list=[] for tmp in data.loc[:,'內容 ']:res=jieba.cut(tmp,cut_all=False)#組裝分詞res_str=','.join(res)content_list.append(res_str) #print(content_list) #處理停用詞 stop_words=[] with open('./stopwords.txt',encoding='utf-8')as f:lines=f.readlines()for line in lines:line_obj=line.strip()#去除空格stop_words.append(line_obj) #去除重復的停用詞 stop_words=list(set(stop_words)) print(stop_words) #進行統計詞數 con_vet=CountVectorizer(stop_words=stop_words) #統計分詞 X=con_vet.fit_transform(content_list) #獲取分詞結果 names=con_vet.get_feature_names() print(names) #print(X.toarray()) #將特征值與目標值組成完整的數據 import numpy as npnew_data=np.concatenate((X.toarray(),data.loc[:,'評價'].values.reshape((-1,1))),axis=1) #數組拼接concatenate print(new_data)?
總結
以上是生活随笔為你收集整理的基于朴素贝叶斯的书籍评价信息分类的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: jieba 分词的三种模式
- 下一篇: 数据分析词数统计和词的重要程度统计