朴素贝叶斯_商品评论情感分析
目录
- api介绍
- 商品评论情感分析
- 导入模块
- 获取数据
- 数据基本处理
- 取出内容列,用于后面分析
- 把评价中的好评差评转换为数字
- 选择停用词
- 把“内容”处理,转化成标准格式
- 准备训练集和测试集
- 模型训练
- 模型评估
api介绍
sklearn.naive_bayes.MultinomialNB(alpha = 1.0)
- 朴素⻉叶斯分类
- alpha:拉普拉斯平滑系数
商品评论情感分析
导入模块
import pandas as pd
import numpy as np
import jieba
import matplotlib.pyplot as plt
from sklearn.feature_extraction.text import CountVectorizer
from sklearn.naive_bayes import MultinomialNB
获取数据
data = pd.read_csv("./data/书籍评价.csv", encoding="gbk")
data
| Unnamed: 0 | 内容 | 评价 | |
|---|---|---|---|
| 0 | 0 | 从编程小白的角度看,入门极佳。 | 好评 |
| 1 | 1 | 很好的入门书,简洁全面,适合小白。 | 好评 |
| 2 | 2 | 讲解全面,许多小细节都有顾及,三个小项目受益匪浅。 | 好评 |
| 3 | 3 | 前半部分讲概念深入浅出,要言不烦,很赞 | 好评 |
| 4 | 4 | 看了一遍还是不会写,有个概念而已 | 差评 |
| 5 | 5 | 中规中矩的教科书,零基础的看了依旧看不懂 | 差评 |
| 6 | 6 | 内容太浅显,个人认为不适合有其它语言编程基础的人 | 差评 |
| 7 | 7 | 破书一本 | 差评 |
| 8 | 8 | 适合完完全全的小白读,有其他语言经验的可以去看别的书 | 差评 |
| 9 | 9 | 基础知识写的挺好的! | 好评 |
| 10 | 10 | 太基础 | 差评 |
| 11 | 11 | 略_嗦。。适合完全没有编程经验的小白 | 差评 |
| 12 | 12 | 真的真的不建议买 | 差评 |
数据基本处理
取出内容列,用于后面分析
content = data["内容"]
content
0 从编程小白的角度看,入门极佳。 1 很好的入门书,简洁全面,适合小白。 2 讲解全面,许多小细节都有顾及,三个小项目受益匪浅。 3 前半部分讲概念深入浅出,要言不烦,很赞 4 看了一遍还是不会写,有个概念而已 5 中规中矩的教科书,零基础的看了依旧看不懂 6 内容太浅显,个人认为不适合有其它语言编程基础的人 7 破书一本 8 适合完完全全的小白读,有其他语言经验的可以去看别的书 9 基础知识写的挺好的! 10 太基础 11 略_嗦。。适合完全没有编程经验的小白 12 真的真的不建议买 Name: 内容, dtype: object
把评价中的好评差评转换为数字
data.loc[:, "评价"]
0 好评 1 好评 2 好评 3 好评 4 差评 5 差评 6 差评 7 差评 8 差评 9 好评 10 差评 11 差评 12 差评 Name: 评价, dtype: object
data.loc[data.loc[:, "评价"] == "好评", "评论编号"] = 1
data
| Unnamed: 0 | 内容 | 评价 | 评论编号 | |
|---|---|---|---|---|
| 0 | 0 | 从编程小白的角度看,入门极佳。 | 好评 | 1.0 |
| 1 | 1 | 很好的入门书,简洁全面,适合小白。 | 好评 | 1.0 |
| 2 | 2 | 讲解全面,许多小细节都有顾及,三个小项目受益匪浅。 | 好评 | 1.0 |
| 3 | 3 | 前半部分讲概念深入浅出,要言不烦,很赞 | 好评 | 1.0 |
| 4 | 4 | 看了一遍还是不会写,有个概念而已 | 差评 | NaN |
| 5 | 5 | 中规中矩的教科书,零基础的看了依旧看不懂 | 差评 | NaN |
| 6 | 6 | 内容太浅显,个人认为不适合有其它语言编程基础的人 | 差评 | NaN |
| 7 | 7 | 破书一本 | 差评 | NaN |
| 8 | 8 | 适合完完全全的小白读,有其他语言经验的可以去看别的书 | 差评 | NaN |
| 9 | 9 | 基础知识写的挺好的! | 好评 | 1.0 |
| 10 | 10 | 太基础 | 差评 | NaN |
| 11 | 11 | 略_嗦。。适合完全没有编程经验的小白 | 差评 | NaN |
| 12 | 12 | 真的真的不建议买 | 差评 | NaN |
data.loc[data.loc[:, "评价"] == "差评", "评论编号"] = 0
data
| Unnamed: 0 | 内容 | 评价 | 评论编号 | |
|---|---|---|---|---|
| 0 | 0 | 从编程小白的角度看,入门极佳。 | 好评 | 1.0 |
| 1 | 1 | 很好的入门书,简洁全面,适合小白。 | 好评 | 1.0 |
| 2 | 2 | 讲解全面,许多小细节都有顾及,三个小项目受益匪浅。 | 好评 | 1.0 |
| 3 | 3 | 前半部分讲概念深入浅出,要言不烦,很赞 | 好评 | 1.0 |
| 4 | 4 | 看了一遍还是不会写,有个概念而已 | 差评 | 0.0 |
| 5 | 5 | 中规中矩的教科书,零基础的看了依旧看不懂 | 差评 | 0.0 |
| 6 | 6 | 内容太浅显,个人认为不适合有其它语言编程基础的人 | 差评 | 0.0 |
| 7 | 7 | 破书一本 | 差评 | 0.0 |
| 8 | 8 | 适合完完全全的小白读,有其他语言经验的可以去看别的书 | 差评 | 0.0 |
| 9 | 9 | 基础知识写的挺好的! | 好评 | 1.0 |
| 10 | 10 | 太基础 | 差评 | 0.0 |
| 11 | 11 | 略_嗦。。适合完全没有编程经验的小白 | 差评 | 0.0 |
| 12 | 12 | 真的真的不建议买 | 差评 | 0.0 |
选择停用词
stopwords = []
with open("./data/stopwords.txt", "r", encoding="utf-8") as f:lines = f.readlines()print(lines)
['!\n', '"\n', '#\n', '$\n', '%\n', '&\n', "'\n", '(\n', ')\n', '*\n', '+\n', ',\n', '-\n', '--\n', '.\n', '..\n', '...\n', '......\n', '...................\n', './\n', '.一\n', '.数\n', '.日\n', '/\n', '//\n', '0\n', '1\n', '2\n', '3\n', '4\n', '5\n', '6\n', '7\n','8\n', '9\n', ':\n', '://\n', '::\n', ';\n', '<\n', '=\n', '>\n','>>\n', '?\n', '@\n', 'A\n', 'Lex\n', '[\n', '\\\n', ']\n', '^\n', '_\n', '`\n', 'exp\n', 'sub\n', 'sup\n', '|\n', '}\n', '~\n', '~~~~\n', '·\n', '×\n', '×××\n', 'Δ\n', 'Ψ\n', 'γ\n', 'μ\n', 'φ\n', 'φ.\n', 'В\n', '—\n', '——\n', '———\n', '‘\n', '’\n', '’‘\n', '“\n', '”\n', '”,\n', '…\n', '……\n', '…………………………………………………③\n', '′∈\n', '′|\n', '℃\n', 'Ⅲ\n', '↑\n', '→\n', '∈[\n', '∪φ∈\n', '≈\n', '①\n', '②\n', '②c\n', '③\n', '③]\n', '④\n', '⑤\n', '⑥\n', '⑦\n', '⑧\n', '⑨\n', '⑩\n', '──\n', '■\n', '▲\n', '\u3000\n', '、\n', '。\n', '〈\n', '〉\n', '《\n', '》\n', '》),\n', '」\n', '『\n', '』\n', '【\n', '】\n', '〔\n', '〕\n', '〕〔\n', '㈧\n', '一\n', '一.\n', '一一\n', '一下\n', '一个\n', '一些\n', '一何\n', '一切\n', '一则\n', '一则通过\n', '一天\n', '一定\n', '一方面\n', '一旦\n', '一时\n', '一来\n', '一样\n', '一次\n', '一片\n', '一番\n', '一直\n', '一致\n', '一般\n', '一起\n', '一转眼\n', '一边\n', '一面\n', '七\n', '万一\n', '三\n', '三天两头\n', '三番两次\n', '三番五次\n', '上\n', '上下\n', '上升\n', '上去\n', '上来\n', '上述\n', '上面\n', '下\n', '下列\n', '下去\n', '下来\n', '下面\n', '不\n', '不一\n']
stopwords = []
with open("./data/stopwords.txt", "r", encoding="utf-8") as f:lines = f.readlines()# print(lines)for tmp in lines:line = tmp.strip()# print(line)stopwords.append(line)
stopwords
['!','"','#','$','%','&',"'",'(',')','*','+',',','-','--','.','..','...','......','...................','./','.一','.数','.日','/','//','0','1','2','3','4','5','6','7','8','9',':','://','::',';','<','=','>','>>','?','@','A','Lex','[','\\',']','^','_','`','exp','sub','sup','|','}','~','~~~~','·','×','×××','Δ','Ψ','γ','μ','φ','φ.','В','—','——','———','‘','’','’‘','“','”','”,','…','……','…………………………………………………③','′∈','′|','℃','Ⅲ','↑','→','∈[','∪φ∈','≈','①','②','②c','③','③]','④','⑤','⑥','⑦','⑧','⑨','⑩','──','■','▲','','、','。','〈','〉','《','》','》),','」','『','』','【','】','〔','〕','〕〔','㈧','一','一.','一一','一下','一个','一些','一何','一切','一则','一则通过','一天','一定','一方面','一旦','一时','一来','一样','一次','一片','一番','一直','一致','一般','一起','一转眼','一边','一面','七','万一','三','三天两头','三番两次','三番五次','上','上下','上升','上去','上来','上述','上面','下','下列','下去','下来','下面','不','不一','不下','不久','不了','不亦乐乎','不仅','不仅...而且','不仅仅','不仅仅是','不会','不但','不但...而且','不光','不免','不再','不力','不单','不变','不只','不可','不可开交','不可抗拒','不同','不外','不外乎','不够','不大','不如','不妨','不定','不对','不少','不尽','不尽然','不巧','不已','不常','不得','不得不','不得了','不得已','不必','不怎么','不怕','不惟','不成','不拘','不择手段','不敢','不料','不断','不日','不时','不是','不曾','不止','不止一次','不比','不消','不满','不然','不然的话','不特','不独','不由得','不知不觉','不管','不管怎样','不经意','不胜','不能','不能不','不至于','不若','不要','不论','不起','不足','不过','不迭','不问','不限','与','与其','与其说','与否','与此同时','专门','且','且不说','且说','两者','严格','严重','个','个人','个别','中小','中间','丰富','串行','临','临到','为','为主','为了','为什么','为什麽','为何','为止','为此','为着','主张','主要','举凡','举行','乃','乃至','乃至于','么','之','之一','之前','之后','之後','之所以','之类','乌乎','乎','乒','乘','乘势','乘机','乘胜','乘虚','乘隙','九','也','也好','也就是说','也是','也罢','了','了解','争取','二','二来','二话不说','二话没说','于','于是','于是乎','云云','云尔','互','互相','五','些','交口','亦','产生','亲口','亲手','亲眼','亲自','亲身','人','人人','人们','人家','人民','什么','什么样','什麽','仅','仅仅','今','今后','今天','今年','今後','介于','仍','仍旧','仍然','从','从不','从严','从中','从事','从今以后','从优','从古到今','从古至今','从头','从宽','从小','从新','从无到有','从早到晚','从未','从来','从此','从此以后','从而','从轻','从速','从重','他','他人','他们','他是','他的','代替','以','以上','以下','以为','以便','以免','以前','以及','以后','以外','以後','以故','以期','以来','以至','以至于','以致','们','任','任何','任凭','任务','企图','伙同','会','伟大','传','传说','传闻','似乎','似的','但','但凡','但愿','但是','何','何乐而不为','何以','何况','何处','何妨','何尝','何必','何时','何止','何苦','何须','余外','作为','你','你们','你是','你的','使','使得','使用','例如','依','依据','依照','依靠','便','便于','促进','保持','保管','保险','俺','俺们','倍加','倍感','倒不如','倒不如说','倒是','倘','倘使','倘或','倘然','倘若','借','借以','借此','假使','假如','假若','偏偏','做到','偶尔','偶而','傥然','像','儿','允许','元/吨','充其极','充其量','充分','先不先','先后','先後','先生','光','光是','全体','全力','全年','全然','全身心','全部','全都','全面','八','八成','公然','六','兮','共','共同','共总','关于','其','其一','其中','其二','其他','其余','其后','其它','其实','其次','具体','具体地说','具体来说','具体说来','具有','兼之','内','再','再其次','再则','再有','再次','再者','再者说','再说','冒','冲','决不','决定','决非','况且','准备','凑巧','凝神','几','几乎','几度','几时','几番','几经','凡','凡是','凭','凭借','出','出于','出去','出来','出现','分别','分头','分期','分期分批','切','切不可','切切','切勿','切莫','则','则甚','刚','刚好','刚巧','刚才','初','别','别人','别处','别是','别的','别管','别说','到','到了儿','到处','到头','到头来','到底','到目前为止','前后','前此','前者','前进','前面','加上','加之','加以','加入','加强','动不动','动辄','勃然','匆匆','十分','千','千万','千万千万','半','单','单单','单纯','即','即令','即使','即便','即刻','即如','即将','即或','即是说','即若','却','却不','历','原来','去','又','又及','及','及其','及时','及至','双方','反之','反之亦然','反之则','反倒','反倒是','反应','反手','反映','反而','反过来','反过来说','取得','取道','受到','变成','古来','另','另一个','另一方面','另外','另悉','另方面','另行','只','只当','只怕','只是','只有','只消','只要','只限','叫','叫做','召开','叮咚','叮当','可','可以','可好','可是','可能','可见','各','各个','各人','各位','各地','各式','各种','各级','各自','合理','同','同一','同时','同样','后','后来','后者','后面','向','向使','向着','吓','吗','否则','吧','吧哒','吱','呀','呃','呆呆地','呐','呕','呗','呜','呜呼','呢','周围','呵','呵呵','呸','呼哧','呼啦','咋','和','咚','咦','咧','咱','咱们','咳','哇','哈','哈哈','哉','哎','哎呀','哎哟','哗','哗啦','哟','哦','哩','哪','哪个','哪些','哪儿','哪天','哪年','哪怕','哪样','哪边','哪里','哼','哼唷','唉','唯有','啊','啊呀','啊哈','啊哟','啐','啥','啦','啪达','啷当','喀','喂','喏','喔唷','喽','嗡','嗡嗡','嗬','嗯','嗳','嘎','嘎嘎','嘎登','嘘','嘛','嘻','嘿','嘿嘿','四','因','因为','因了','因此','因着','因而','固','固然','在','在下','在于','地','均','坚决','坚持','基于','基本','基本上','处在','处处','处理','复杂','多','多么','多亏','多多','多多少少','多多益善','多少','多年前','多年来','多数','多次','够瞧的','大','大不了','大举','大事','大体','大体上','大凡','大力','大多','大多数','大大','大家','大张旗鼓','大批','大抵','大概','大略','大约','大致','大都','大量','大面儿上','失去','奇','奈','奋勇','她','她们','她是','她的','好','好在','好的','好象','如','如上','如上所述','如下','如今','如何','如其','如前所述','如同','如常','如是','如期','如果','如次','如此','如此等等','如若','始而','姑且','存在','存心','孰料','孰知','宁','宁可','宁愿','宁肯','它','它们','它们的','它是','它的','安全','完全','完成','定','实现','实际','宣布','容易','密切','对','对于','对应','对待','对方','对比','将','将才','将要','将近','小','少数','尔','尔后','尔尔','尔等','尚且','尤其','就','就地','就是','就是了','就是说','就此','就算','就要','尽','尽可能','尽如人意','尽心尽力','尽心竭力','尽快','尽早','尽然','尽管','尽管如此','尽量','局外','居然','届时','属于','屡','屡屡','屡次','屡次三番','岂','岂但','岂止','岂非','川流不息','左右','巨大','巩固','差一点','差不多','己','已','已矣','已经','巴','巴巴','带','帮助','常','常常','常言说','常言说得好','常言道','平素','年复一年','并','并不','并不是','并且','并排','并无','并没','并没有','并肩','并非','广大','广泛','应当','应用','应该','庶乎','庶几','开外','开始','开展','引起','弗','弹指之间','强烈','强调','归','归根到底','归根结底','归齐','当','当下','当中','当儿','当前','当即','当口儿','当地','当场','当头','当庭','当时','当然','当真','当着','形成','彻夜','彻底','彼','彼时',...]
stopwords = list(set(stopwords)) # 去重
stopwords
['','使得','除非','::','要不','我的','取道','您','怎奈','顷刻之间','先生','』','[③①]','这次','刚好','更为','[②⑤]','甚至于','难得','显著','竟','所幸','是不是','应当','顺','碰巧','怎么办','二','只是','乃至于','不尽','反过来','不迭','争取','且不说','一一','不由得','a]','奇','忽然','此中','上述','宁','从头','呢','独','接著','本','上去','.数','传说','所以','虽则','另一方面','企图','明确','她们','分期','起来','奈','哪里','唉','哗啦','到','是以',"'",'《','R.L.','大面儿上','这','一些','何尝','普通','一下','[⑥]','之前','迟早','[①B]','++','今','反之亦然','决定','[①h]','如上所述','哼','为何','如此等等','&','不满','五','朝着','种','再','绝对','按期','较为','弹指之间','开外','{-','当儿','顷','起','前后','还要','咋','[②','刚','有着','纵使','多次',']','不必','向','$','{','乌乎','本身','充其量','大批','扩大','恰好','倘使','不但','[①f]','向使','多年来','”','不知不觉','[⑤f]','巨大','它','牢牢','当地','不是','。','完全','必定','逢','顺着','综上所述','千万','真是','替代','怪','确定','运用','遵照','只消','略微','来说','尽早','曾经','同','按说','不料','今年','顿时','略为','何','倒是','老是','具体地说','并没有','喏','犹且','依照','慢说','咚','必将','而外','它的','开始','1.','难说','相同','了解','单纯','粗','现在','千万千万','你是','凝神','[⑤d]','转贴','自','哪儿','欢迎','格外','常','矣乎','人人','绝非','倘或','临到','A','倘','如次','彻底','-','没','LI','其次','恰如','有','毫无保留地','换句话说','然後','默然','前此','8','与否','毫无','或是','不力','不变','获得','与此同时','何处','哪个','5','毫无例外','个人','从新','大抵','并肩','放量','得起','着呢','不再','[①C]','纯粹','В','挨个','更进一步','现代','某些','还是','连','〕','其余','也就是说','此间','〔','[②②]','’‘','并','反倒','那些','一则','由于','几度','积极','丰富','全都','自打','常常','来','叫','▲','即如','不得','正值','与','乎','哪些','充其极','然则','不定','倍感','啊呀','只怕','[③a]','[③b]','[③c]','过于','这个','蛮','除却','合理','亦','已矣','除开','sup','望','除了','往往','马上','千','其中','℃','这般','哉','=″','[①g]','随后','分期分批','一致','总的来说','比起','不单','<','就','最好','您们','当中','再说','喂','起头','遭到','我是','照着','~','某某','巴巴','[①E]','勃然','[②d]','怎么样','有点','小','您是','随时','~+','默默地','就是了','全部','另一个','好象','∪φ∈','上来','8','左右','与其','那末','没奈何','焉','公然','诚如','紧接着','对方','就地','何止','行动','截至','〈','不管','背地里','加以','打开天窗说亮话','[②h]','】','归','几','产生','那么样','比较','梆','吧','很','介于','二话没说','同一','φ.','先后','等等','乘','只有','庶乎','为','以来','曾','总而言之','喔唷','最大','[⑧]','[②⑦]','[①③]','当下','从中','贼死','特殊','容易','4','于','双方','而后','否则','昂然','首先','屡','有关','∈[','强烈','不时','多么','》','如此','={','心里','更','./','看上去','一','每','经常','为止','他','大','赶早不赶晚','定','尚且','极端','乘隙','难道','中小','三番两次','组成','大略','过去','敢情','第','尽然','以後','何须','几时','不如','7','仅仅','正常','是的','保持','屡次','"','后来','[①⑧]','为什麽','借','尽心尽力','[④a]','打','<','至若','或者','此外','看样子','复杂','ZXFITL','必要','部分','范围','具体说来','一片','虽','但愿','背靠背','到底','尽',':','[②f]','以至','那麽','我们','按理','常言道','极大','这些','局外','看来','末##末','没有','等到','地','’','急匆匆','倘然','假如',']∧′=[','简而言之','也是','另','进来','当着','嘎登','极度','共总','=','从来','$','见','<<','顷刻','维持','以至于','而又','更加','意思','近','同样','[③g]','嘿嘿','5','人民','高兴','进去','[②④','——','己','依','严格','进入','不下','[③h]','类如','怕','这么','[②③]','亲身','处理','迄','差不多','具有','毋宁','还有','这么些','六','以前','本地','一次','是否','无法','猛然间','任凭','一.','以故','一旦','对于','较之','附近','[②G]','表示','切不可','反映','共同','5:0','总结','某个','不尽然','仍然','得了','莫若','[]','9','加上','惯常','过','当庭','就是说','倒不如说','可好','不特','看','不独','好','概','从轻','并且','几番','2','一定','要不然','社会主义','全力','[⑤]]','巩固','儿','以期','长此下去','结合','切','9','切莫','一起','引起','将才','以便','甚或','恰巧','愤然','Lex','不若','不胜','特点','不对','诚然','一何','据实','敞开儿','③','抑或','怎麽','从而','大多数','扑通','从重','绝顶','一般','[③d]','][','非得','数/','觉得','平素','万一','人','少数','待到','认识','做到','立','同时','吗','原来','朝','此处','[①e]','、','再其次','汝','据我所知','隔夜','某','一样','沿','哪边','以','日益','来自','*','那样','长期以来','来得及','三天两头','也罢','认真','很少','结果','达旦','鉴于','暗地里','多年前','各位','反倒是','为什么','[*]','“','仍旧','非徒','不成','恰恰相反','较比','多数','临','12%','例如','相似','遇到','从此以后','不论','但','不止一次','而且','譬喻','从早到晚','其它','坚决','凭借','看见','十分','起见','那时',''','+','全年','不但...而且','唯有','转动','用','不会','挨家挨户','彻夜','简言之','刚巧','达到','如其','完成','嘛','谨','啦','}','猛然','饱','咳','这里','随著','将近','当即','咱','趁势','老老实实','到目前为止','另方面','以免','再者说','以后','并非','各级','[②a]','据说','岂止','广大','敢','联袂','立刻','他的','|','此次','召开','殆','沿着','策略地','从未','日渐','_','分头','若','也','不光','一番','[②B]','宁愿','怪不得','尤其','顶多','注意','甚而','啐','拦腰','周围','关于','岂但','根本','^','适当','竟然','_','这点','不','第二','有及','屡次三番','三番五次','必','那个','.','甚么','说明','匆匆','余外','尽量','窃','0','从古至今','了','不能','换言之','有效','其他','除去','无论','”,','当前','~~~~','@','长线','每个','再则','差一点','其实','`','偶尔','即便','可以','对应','比及','相信',',','目前','连声','莫不然','交口','趁着','︿','故而','到头','来讲','何乐而不为','及至','借以','赶快','故','相等','基于','如上','然','一切','Ⅲ','这种','靠','举行','你','漫说','整个','再有','出','直接','帮助','嗡','无','必须','#','哟','设或','如前所述','快','既','路经','借此','尽快',',也','为此','存在','腾','如何',']','这么点儿','暗自','些','果真','动不动','」','当时','今天','独自','甚且','--','它们','有著','呐','坚持','陈年','不敢','连同','因了','由','咦','哦','甫','恍然','云云','不足','呸','阿','避免','不妨','从无到有','如同','[③]','举凡','她是','莫','即若','继之','不择手段','里面','纵令','呜呼','从小','总是','挨着','颇','单单','多','总的来看','|','从事','恰逢','因此','那会儿','⑤',')、','一时','[③F]','>','人家','凡是','[②⑧]','//','一天','既往','接着','谁知','亲眼','不比','对待','当真','吓','什么','眨眼','绝不','全体','前进','赶','兮','[①o]','[③⑩]','按照','各个','}>','一面','总的说来','方能','乘机','日复一日','好在','既...又','不能不','欤','正巧','每每','至于','且说','从优','兼之','豁然','后者','实现','[⑤a]','次第','被',';','非常','适应','叮咚','乃至','别的','致','让','嘎嘎','姑且','什么样','除外','嗬','②c','什麽','反手','.一','也好','给','已经','白白','之类','以为','不可开交','‘','A','已','使','年复一年','所谓','那儿','′∈','哎呀','反应','呆呆地','自各儿','趁','又','不止','跟','多多','……','嗡嗡','与其说','(','到头来','皆可','近年来','串行','此','有力',...]
把“内容”处理,转化成标准格式
comment_list = []for tmp in content:# print(tmp)# 对⽂本数据进⾏切割 # cut_all 参数默认为 False,所有使⽤ cut ⽅法时默认为精确模式# 把一句句话变成一个个词seg_list = jieba.cut(tmp, cut_all=False)# print(seg_list)seg_str = ",".join(seg_list) # 拼接字符串# print(seg_str)comment_list.append(seg_str)
comment_list
[' ,从,编程,小白,的,角度看,,,入门,极佳,。','很,好,的,入门,书,,,简洁,全面,,,适合,小白,。','讲解,全面,,,许多,小,细节,都,有,顾及,,,三个,小,项目,受益匪浅,。','前半部,分讲,概念,深入浅出,,,要言不烦,,,很赞','看,了,一遍,还是,不会,写,,,有个,概念,而已','中规中矩,的,教科书,,,零,基础,的,看,了,依旧,看不懂','内容,太,浅显,,,个人,认为,不,适合,有,其它,语言,编程,基础,的,人','破书,一本','适合,完完全全,的,小白读,,,有,其他,语言,经验,的,可以,去,看,别的,书','基础知识,写,的,挺,好,的,!','太,基础','略,_,嗦,。,。,适合,完全,没有,编程,经验,的,小白','真的,真的,不,建议,买']
## 统计次个数
# 实例化对象
# CountVectorizer 类会将⽂本中的词语转换为词频矩阵
con = CountVectorizer(stop_words=stopwords)# 它通过 fit_transform 函数计算各个词语出现的次数
X = con.fit_transform(comment_list)
X.toarray() # 通过 toarray()可看到词频矩阵的结果
array([[0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0,0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0],[0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0],[0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 1, 1],[0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0,1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0],[0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0,0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],[0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],[0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 1, 0, 0],[1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0,0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 1, 0, 0],[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 1, 0, 0],[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0,0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]])
con.get_feature_names() # 通过 get_feature_names()可获取词袋中所有⽂本的关键字
['一本','一遍','三个','中规中矩','依旧','入门','内容','分讲','前半部','受益匪浅','基础','基础知识','完完全全','小白','小白读','建议','很赞','教科书','有个','极佳','概念','浅显','深入浅出','看不懂','真的','破书','简洁','细节','经验','编程','要言不烦','角度看','讲解','语言','适合','项目','顾及']
准备训练集和测试集
x_train = X.toarray()[:10, :]
y_train = data["评价"][:10]
x_train
array([[0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0,0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0],[0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0],[0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 1, 1],[0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0,1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0],[0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0,0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],[0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],[0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 1, 0, 0],[1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0,0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 1, 0, 0],[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]])
y_train
0 好评 1 好评 2 好评 3 好评 4 差评 5 差评 6 差评 7 差评 8 差评 9 好评 Name: 评价, dtype: object
x_test = X.toarray()[10:, :]
y_test = data["评价"][10:]
模型训练
mb = MultinomialNB(alpha=1) # alpha 为可选项,默认 1.0,添加拉普拉修/Lidstone 平滑参数mb.fit(x_train, y_train)y_pre = mb.predict(x_test)
print("预测值:", y_pre)
print("真实值:", y_test)
预测值: ['差评' '差评' '差评'] 真实值: 10 差评 11 差评 12 差评 Name: 评价, dtype: object
模型评估
mb.score(x_test, y_test)
1.0
本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!
