admin 管理员组文章数量: 887021
文章目录
- 前言
- Step1: 爬取京东评论,作为模型数据集
- 测试爬虫
- 爬取6000条好评信息作为数据集,并存储为CSV文件
- 爬取4000条差评信息作为数据集,并存储为CSV文件
- Step2: 读取数据集
- Step3: 数据预处理(分词、去除停用词、建立词典)
- Step4: 评论语句 转化为 向量
- Step5: 拆分数据集----训练集、测试集
- Step6: 以朴素贝叶斯算法构建模型、训练模型
- Step7: 评估模型
- Step8: 测试评论,输出情绪分类
- 小结
2022/12/17更新, 由于很多小伙伴需要数据集与代码,我已上传至github,请 点击此处获得。
前言
近期学校实验室有一个任务,要求爬取大量评论数据,自己构建机器学习模型并训练数据集,对评论进行情感的分析,即好评或差评。
刚好前天学到了朴素贝叶斯定理, 便根据该定理构建模型,训练数据集,评估模型,并完成了评论情感的分析。
以下是具体实现步骤
Step1: 爬取京东评论,作为模型数据集
爬取10个京东商品的评论信息,每个商品爬取1000条,其中好评信息爬取6000条,差评信息爬取4000条。
作为本次评论情感分析的数据集。
测试爬虫
首先测试下爬虫效果,可以爬取评论信息
import requests
import json
#获取评论请求地址
url = 'https://club.jd/comment/productPageComments.action'
#请求参数
params = {
'callback': 'fetchJSON_comment98',
'productId': '100021771660',
'score': '1', #类型代表差评
'sortType': '5', #默认排序
'page': '99', #第99页数据
'pageSize': '10',
'isShadowSku': '0',
'fold': '1',
}
#请求头参数,反反爬策略 UA 伪装
headers = {
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/104.0.0.0 Safari/537.36'
}
#获取响应,并分析响应内容
response = requests.get(url=url, params=params, headers=headers)
#拆分京东返回的响应数据,得到json类型数据
data_json = response.text.replace('fetchJSON_comment98(', '')[:-2]
#将json字符串加载为 python的对象中
data = json.loads(data_json)
bad_comments = []
for comment in data['comments']:
#生成每条评论以及它的标签, 0代表好评, 1代表差评
comments = [comment['content'].replace('\n', ''), '0']
bad_comments.append(comments)
print(bad_comments)
运行结果
[['1.买完没多久就降价600,很无语2.电脑开机经常出现wifi连不上的问题', '0'],
['刚买的,第二次使用就开不了机了,怀疑买的是假货,要求京东给出说法', '0'],
['一分都不想给啊 买来就做个账 转转账 卡的要死', '0'],
['用了2个星期了,第1个星期还没事,第2个星期动不动就开不了机。', '0'],
['非常垃圾的电脑,这个价位配置这么低,新机子就卡的要死,强烈要求退货', '0'],
['买了不到2个月就开不开机了 找客服 没有搭理 真是失望至极!', '0'],
['差评 垃圾机 老是卡顿', '0'], ['重装系统office2021会直接消失 需要重新购买 体验非常差', '0'],
['刚买的居然发现硬盘被使用了九天,插口也有拔插的痕迹,漆都掉了。严重怀疑是上一个买家用了七天退货产品。', '0'],
['京东物流太差了,包装箱破损严重,明显是重摔造成的,幸亏里面的货没有损伤。', '0']]
爬取6000条好评信息作为数据集,并存储为CSV文件
商品链接分别为:(每个商品爬取1000条评论)
Apple MacBook Pro 13.3 八核M1芯片 8G 256G SSD 深空灰 笔记本电脑 轻薄本 MYD82CH/A
联想笔记本电脑小新Pro14 英特尔Evo平台 14英寸游戏轻薄本(标压i5 16G 512G 2.8K 90Hz护眼屏)全面屏办公本
华为笔记本电脑MateBook D 14 2022款 14英寸 11代酷睿 i5 16G+512G 锐炬显卡 轻薄本/护眼全面屏 银
联想ThinkBook 14+ 英特尔酷睿i5 笔记本电脑全新2022款 14英寸标压轻薄本i5-12500H 16G 512G 2.8K 90Hz
荣耀MagicBook 16 16.1英寸高性能标压轻薄笔记本电脑(R7-5800H 16+512G 144Hz高刷)冰河银
惠普(HP) 笔记本电脑 星14进阶版高端pro轻薄本超薄商用办公游戏手提学生女超极本旗舰店官网 初恋粉:【背光键盘版-新11代进阶丨2022款】 新i5-1155G7/16G/512G/高72%
由于水平原因,总是被反爬虫,所以本段代码需要执行6次(差评需要执行4次),来爬取6000条信息,每次执行需要更换以下ids中的商品id。
import requests
import json
import time
import csv
#获取评论请求地址
url = 'https://club.jd/comment/productPageComments.action'
#请求头参数,反反爬策略 UA 伪装
headers = {
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/104.0.0.0 Safari/537.36'
}
#存放每个商品的id,理论上行得通,实际上行不通,因为反爬策略所以需要多次执行
ids = ['100009464821','100014546493','100016960357','100020078921', '100014373845','32421759213']
#用于存放所有好评信息的数据
good_comments = []
for i in range(100):
#请求参数
params = {
'callback': 'fetchJSON_comment98',
'productId': '32421759213', #代表产品的 id
'score': '3', #score = 3 代表均为好评信息
'sortType': '5', #排序方式,采用默认排序
'page': str(i), #循环爬取每一页的评论信息
'pageSize': '10',
'isShadowSku': '0',
'fold': '1',
}
#获取响应,并分析响应内容
response = requests.get(url = url, params=params, headers=headers)
#拆分京东返回的响应数据,得到json类型数据
data_json = response.text.replace('fetchJSON_comment98(', '')[:-2]
#将json字符串加载为 python的对象中
data = json.loads(data_json)
#设置标签为 0, 代表好评
target = '0'
for comment in data['comments']:
#对评论数据稍作处理。 去除一些制表符、回车符、包括csv文件分组的','逗号
comment_data = comment['content'].replace('\n', ',').replace(',', ',').replace('…','').replace(' ','')
#生成每条评论以及它的标签, 0代表好评, 1代表差评
comments = [comment_data, target]
good_comments.append(comments)
print(i+1)
#延迟爬虫,避免反爬
time.sleep(2)
#以 写 的方式打开csv文件,并写入好评信息
with open('./datasets/comments.csv', 'a+', encoding='UTF-8', newline='') as fp:
writer = csv.writer(fp)
writer.writerows(good_comments)
爬取4000条差评信息作为数据集,并存储为CSV文件
商品链接分别为:(每个商品爬取1000条评论)
联想笔记本电脑小新Pro14 英特尔Evo平台 14英寸游戏轻薄本(标压i5 16G 512G 2.8K 90Hz护眼屏)全面屏办公本
华为笔记本电脑MateBook D 14 2022款 14英寸 11代酷睿 i5 16G+512G 锐炬显卡 轻薄本/护眼全面屏 银
联想笔记本电脑 小新Air14 英特尔酷睿i5 14英寸轻薄本(i5 16G 512G 高色域 大电池)银 全面屏商务办公本
联想笔记本电脑小新Pro16 16英寸游戏轻薄本(8核标压R7-5800H 16G 512G RTX3050 2.5K 120Hz)高性能商务办公
#用于存放所有差评信息的数据
bad_comments = []
for i in range(3):
#请求参数
params = {
'callback': 'fetchJSON_comment98',
'productId': '100021771660',
'score': '1', #score = 1 代表均为差评信息
'sortType': '5',
'page': str(i), #循环爬取每一页的评论信息
'pageSize': '10',
'isShadowSku': '0',
'fold': '1',
}
#获取响应,并分析响应内容
response = requests.get(url = url, params=params, headers=headers)
#拆分京东返回的响应数据,得到json类型数据
data_json = response.text.replace('fetchJSON_comment98(', '')[:-2]
#将json字符串加载为 python的对象中
data = json.loads(data_json)
#设置标签为 1, 代表差评
target = '1'
for comment in data['comments']:
#对评论数据稍作处理, 去除'\n'换行符和 csv文件分隔符 ',' 逗号
comment_data = comment['content'].replace('\n', ',').replace(',', ',').replace('…','').replace(' ','')
#生成每条评论以及它的标签, 0代表好评, 1代表差评
comments = [comment_data, target]
bad_comments.append(comments)
print(i+1)
#延迟爬虫,避免反爬
time.sleep(5)
#以 追加 的方式打开csv文件,并写入好评信息
with open('./datasets/comments.csv', 'a+', encoding='UTF-8', newline='') as fp:
writer = csv.writer(fp)
writer.writerows(bad_comments)
Step2: 读取数据集
import numpy as np
#用来存放评论的数据集
dataset = None
#打开文件,并将所有评论信息读取至数据集
with open('./datasets/comments.csv', 'r', encoding='UTF-8') as fp:
reader = csv.reader(fp)
dataset = np.array([comment for comment in reader])
#输出数据集的形状
print(dataset.shape)
(10000, 2)
可见,该数据集一共包含10000条数据,包含评论信息、评论类别信息。
Step3: 数据预处理(分词、去除停用词、建立词典)
import jieba
dictionary = [] #定义词典
stop_words = [] #定义停用词表
clear_dataset = [] #定义清洗后的数据集
#读取停用词表,并以列表的方式存入stop_words中
with open('./file/cn-stopwords.txt', 'r', encoding='UTF-8') as fp:
stop_words = fp.read().split('\n')
for comment in dataset:
words = [] #存放切词后、去除停用词后的句子词组
#使用jieba对评论进行分词
for word in jieba.lcut(comment[0]):
#若切出来的词语 不属于停用词表, 加入词组中
if word not in stop_words:
words.append(word)
#向词典中加入所有未加入的词语
if word not in dictionary:
dictionary.append(word)
#追加句子词组和对应的标志
clear_dataset.append([words,comment[1]])
#输出词典的长度
print(len(dictionary))
12747
Step4: 评论语句 转化为 向量
from sklearn.model_selection import train_test_split
X = [] #存放word2vec后的评论向量
y = [y[1] for y in clear_dataset] #存放每条评论的结果
#遍历所有清洗后的评论数据,并将所有评论文本信息转化为向量信息
for clear_data in clear_dataset:
#评论信息列表赋值为sentence
sentence = clear_data[0]
#首先将每个评论分词列表设置为 (1,5023)的向量,每个向量值为1
#一个句子转化为一个向量
word_2_vec = np.zeros(len(dictionary))
#遍历字典,将所有评论分词列表 转化为 向量列表 (超重要!!!)
for word in sentence:
#如果word存在于字典中
if word in dictionary:
#找到该词在字典中的位置
loc = dictionary.index(word)
#此句子对照向量的该位置加1
word_2_vec[loc] += 1
#X,即输入句子的特征向量列表,追加新句子向量
X.append(word_2_vec)
Step5: 拆分数据集----训练集、测试集
训练集用来训练构建的模型,测试集用来测试模型的性能
X = np.array(X) #转化为numpy数组,X作为输入项,即评论生成的向量
y = np.array(y) #转化为numpy数组,X作为输出项,即评论的类别
#X_train,y_train为训练集数据
#X_test,y_test为测试集数据
X_train, X_test, y_train, y_test = train_test_split(X, y) #使用sklearn库的随即切分函数,将X、y划分为训练集与测试集
#分别输出训练集的 X, y形状, 测试集的X, y的形状
print(X_train.shape)
print(y_train.shape)
print(X_test.shape)
print(y_test.shape)
(7500, 12747)
(7500,)
(2500, 12747)
(2500,)
Step6: 以朴素贝叶斯算法构建模型、训练模型
这一段代码可能是最难理解的一段代码,因为此处涉及到朴素贝叶斯模型算法。
注意观察朴素贝叶斯算法:
P ( A ∣ B ) = P ( B ∣ A ) P ( A ) P ( B ) P(A|B) = \frac{P(B|A)P(A)}{P(B)} P(A∣B)=P(B)P(B∣A)P(A)
即为:
P ( 类别 ∣ 特征 ) = P ( 特征 ∣ 类别 ) P ( 类别 ) P ( 特征 ) P(类别|特征) = \frac{P(特征|类别)P(类别)}{P(特征)} P(类别∣特征)=P(特征)P(特征∣类别)P(类别)
此时问题转化为了求解:
- P ( 特征 ∣ 类别 ) P(特征|类别) P(特征∣类别)
- P ( 类别 ) P(类别) P(类别)
- P ( 特征 ) P(特征) P(特征)
由于朴素贝叶斯的设定每个特征之间都是独立的,可以推出:
P ( 特征 ∣ 类别 ) = P ( 特征 1 ∣ 类别 ) ∗ P ( 特征 2 ∣ 类别 ) ∗ P ( 特征 3 ∣ 类别 ) ∗ . . . ∗ P ( 特征 n ∣ 类别 ) P(特征|类别) = P(特征1|类别) * P(特征2|类别) * P(特征3|类别) * ... * P(特征n|类别) P(特征∣类别)=P(特征1∣类别)∗P(特征2∣类别)∗P(特征3∣类别)∗...∗P(特征n∣类别)
那么, 我们可以依次求出 P(特征1|类别)、P(特征2|类别)、P(特征3|类别)…P(特征n|类别),即
P ( 特征 i ∣ 类别 ) = 此类别发生时特征 i 出现次数 类别次数 ( 好评 / 差评次数 ) P(特征i|类别) = \frac{此类别发生时特征i出现次数}{类别次数(好评/差评次数)} P(特征i∣类别)=类别次数(好评/差评次数)此类别发生时特征i出现次数
也可得出:
P ( 类别 ) = 某类别次数 好评、差评之和 P(类别) = \frac{某类别次数}{好评、差评之和} P(类别)=好评、差评之和某类别次数
如, P ( 好评 ) = 好评次数 好评、差评之和 P(好评) = \frac{好评次数}{好评、差评之和} P(好评)=好评、差评之和好评次数
通过全概率公式,可知(本情景下仅两种类别)
P ( 特征 ) = P ( 类别 1 ) ∗ P ( 特征 ∣ 类别 1 ) + P ( 类别 2 ) ∗ P ( 特征 ∣ 类别 2 ) P(特征) = P(类别1)*P(特征|类别1) + P(类别2)*P(特征|类别2) P(特征)=P(类别1)∗P(特征∣类别1)+P(类别2)∗P(特征∣类别2)
我们可以想象下,无论求好评概率或者差评概率,最终都要 除以 P(特征), P(特征)对于此两种概率是无变化的,所以我们可以将其忽略,都不除,直接比较。
此时,我们只需要求出所有 P(特征i|类别),到时候便可方便使用贝叶斯公式计算, 代入到代码,可得
good_pro, 即P(好评), 代表好评的概率
good_num, 即好评次数
bad_num,即差评次数
good_vec, 作为一个好评向量,记录每次好评时,每个词语出现的次数
bad_vec, 作为一个差评向量,记录每次差评时, 每个词语出现的次数
good_vec_trained = good_vec / good_num,即用于存放所有的 P(特征i|好评)向量,每个值代表一个概率
bad_vec_trained = bad_vec / bad_num, 即用于存放所有的 P(特征i|差评)向量,每个值代表一个概率
最后套用朴素贝叶斯公式,即可得出每条评论的情感,好评或差评。
len_dic = len(dictionary) #词典的长度,即所有词的长度
good_pro = np.sum(y_train == '0')/len(X_train) #好评率
good_num = 0 #好评的次数
bad_num = 0 #差评的次数
#初始化之所以为 1,是防止P(特征i|类别)中某个为0,导致连乘积为0
good_vec = np.ones(len_dic) #向量组,每个值(词语)代表好评的次数,初始化全为1
bad_vec = np.ones(len_dic) #向量组,每个值(词语)代表差评的次数,初始化全为1
for i in range(len(X_train)):
#代表的是好评
if y_train[i] == '0':
good_vec += X_train[i] #把该评论词语代表的向量,累加到good_vec
good_num += 1 #好评次数增加
#否则是差评
else:
bad_vec += X_train[i] #把该评论词语代表的向量,累加到bad_vec
bad_num += 1 #差评次数增加
#取log的原因有二:1、拉普拉斯平滑,防止太小的结果乘积造成下溢。2、log(连乘积)可以转化为 log累加
good_vec_trained = np.log(good_vec/good_num) #用于存放所有的 P(特征i|好评)向量,每个值代表一个概率
bad_vec_trained = np.log(bad_vec/bad_num) #用于存放所有的 P(特征i|差评)向量,每个值代表一个概率
print('good_pro is: {}'.format(good_pro))
print('good_vec_trained is: {}'.format(good_vec_trained))
print('bad_vec_trained is: {}'.format(bad_vec_trained))
good_pro is: 0.5993333333333334
good_vec_trained is: [-4.19121324 -8.41072095 -5.9258143 ... -8.41072095 -8.41072095
-8.41072095]
bad_vec_trained is: [-3.78852514 -8.00803285 -7.31488567 ... -7.31488567 -7.31488567
-7.31488567]
理论上讲此处 good_pro 应为 0.6,指的是好评概率,但可能获取的数据有些纰漏,导致good_pro为 0.599333,对于模型并无大碍。
Step7: 评估模型
训练完模型,得到good_vec_trained、bad_vec_trained、good_pro后,就可以直接根据贝叶斯公式计算好评或者差评的概率
因为使用了拉普拉斯平滑,所以贝叶斯公式的分子项:
L o g ( P ( 特征 ∣ 类别 ) P ( 类别 ) ) = L o g ( P ( 特征 1 ∣ 类别 ) ∗ P ( 特征 2 ∣ 类别 ) ∗ P ( 特征 3 ∣ 类别 ) ∗ . . . ∗ P ( 特征 n ∣ 类别 ) ) + L o g ( P ( 类别 ) ) Log(P(特征|类别)P(类别)) = Log(P(特征1|类别) * P(特征2|类别) * P(特征3|类别) * ... * P(特征n|类别)) + Log(P(类别)) Log(P(特征∣类别)P(类别))=Log(P(特征1∣类别)∗P(特征2∣类别)∗P(特征3∣类别)∗...∗P(特征n∣类别))+Log(P(类别))
可转化为:
L o g ( P ( 特征 ∣ 类别 ) P ( 类别 ) ) ) = L o g ( P ( 特征 1 ∣ 类别 ) ) + L o g ( P ( 特征 2 ∣ 类别 ) ) + . . . + L o g ( P ( 特征 n ∣ 类别 ) ) + L o g ( P ( 类别 ) ) Log(P(特征|类别)P(类别))) = Log(P(特征1|类别)) + Log(P(特征2|类别)) + ... + Log(P(特征n|类别)) + Log(P(类别)) Log(P(特征∣类别)P(类别)))=Log(P(特征1∣类别))+Log(P(特征2∣类别))+...+Log(P(特征n∣类别))+Log(P(类别))
其中,X_test[i] 表示一个评论语句转化成的向量。
例如,
P(特征|好评) = X_test[i] * good_vec_trained,两个向量数组相乘,列表内的值,两两相乘,最后得到结果
以下是对测试集,未训练的数据进行测试,评估模型的性能
success_count = 0
for i in range(2500):
#代入朴素贝叶斯公式
#评论好评的概率
good_pro_pre = np.sum(X_test[i] * good_vec_trained) + np.log(good_pro)
#评论差评的概率
bad_pro_pre = np.sum(X_test[i] * bad_vec_trained) + np.log(1-good_pro)
#若好评概率大于差评概率
if good_pro_pre > bad_pro_pre:
result = '0' #输出好评
else:
result = '1' #否则输出差评
if(y_test[i] == result): #若预测答案与真实答案相等,预测正确数量增加
success_count +=1
print('朴素贝叶斯模型(bayes)预测的准确度: {}'.format(success_count/2500))
朴素贝叶斯模型(bayes)预测的准确度: 0.9392
经过对 2500 条测试数据逐一预测,得到该模型的准确度为 93.92%,效果不算太差,模型构建成功,后续可作适当优化。
Step8: 测试评论,输出情绪分类
输入 50 条评论信息,测试模型预测效果
import random
dic_len = len(dictionary)
start = random.randint(50, 2450)
#从测试集中随机抽取50条数据,准备测试
X_data = X_test[start:start+50]
y_data = y_test[start:start+50]
success_test = 0
#对 50条评论信息进行预测
for sequence_index in range(len(X_data)):
#找到该 评论语句 切分后的词组对应的位置,返回一个数组
locs = np.where(X_data[sequence_index] == 1)
#输出切分、分词后的评论内容
for loc in locs[0]:
print(dictionary[loc] ,end='/')
print('\n')
#代入朴素贝叶斯公式
good_pro_pre = np.sum(X_data[sequence_index] * good_vec_trained) + np.log(good_pro) #评论好评的概率
bad_pro_pre = np.sum(X_data[sequence_index] * bad_vec_trained) + np.log(1-good_pro) #评论差评的概率
#0 代表好评, 1代表差评
#若好评概率大于差评概率
if good_pro_pre > bad_pro_pre:
result = '0' #输出好评
print('Predict result : 好评', end='\t')
else:
result = '1' #否则输出差评
print('Predict result : 差评', end='\t')
#实际该评论的结果
if y_data[sequence_index] == '0':
print('Actual results: 好评', end='\t')
else:
print('Actual results: 差评', end='\t')
#判断是否预测正确
if result == y_data[sequence_index]:
print('Predict success!', end='\t')
success_test += 1
else:
print('Predict fail!', end='\t')
print('\n\n')
print('本次测试预测准确度为: {}'.format(success_test/50))
运行结果
购买/买/笔记本电脑/太/视频/设计/没想到/听说/超乎/奇葩/根本无法/网络/底部/会议/想着/双下巴/照出来/脖子/基本功能/非正常/人形/前有/常人/思维/
Predict result : 差评 Actual results: 差评 Predict success!
打开/电脑/软件/客服/微软/找/激活/退/摄像头/有时候/模糊/不回/打不开/敷衍了事/游览器/爱回/
Predict result : 差评 Actual results: 差评 Predict success!
外观/好看/屏幕/运行/速度/效果/外形/程度/高/质感/挺快/便携/能力/行/高分辨率/刷新/
Predict result : 好评 Actual results: 好评 Predict success!
好看/京东/物流/很快/喜欢/还行/总体/评价/前/老公/店里/支持/十年/戴尔/华为/不太会/
Predict result : 好评 Actual results: 好评 Predict success!
不到/电脑/刚买/开机/卡/卡顿/半天/一个月/垃圾/
Predict result : 差评 Actual results: 差评 Predict success!
性能/屏幕/运行/速度/显示/很快/很棒/清晰/特色/出色/协同/多屏/
Predict result : 好评 Actual results: 好评 Predict success!
外观/好看/运行/速度/效果/外形/高级/程度/很快/特别/电脑/清晰/漂亮/开机/软件/装/弄/壁纸/设置/粉红色/机器人/
Predict result : 好评 Actual results: 好评 Predict success!
流畅/不错/效果/电脑/满意/购物/收到/屏幕显示/
Predict result : 好评 Actual results: 好评 Predict success!
外观/散热/运行/速度/外形/银色/声音/挺/电脑/喜欢/挺快/暂时/发现/挺重/
Predict result : 好评 Actual results: 好评 Predict success!
指纹/解锁/客服/垃圾/解决问题/不灵敏/
Predict result : 差评 Actual results: 差评 Predict success!
屏幕/键盘/特别/打开/收到/指纹/划痕/态度/客户/回答/差/下方/退回/只会/踢皮球/脏兮兮/间/印/避重就轻/
Predict result : 差评 Actual results: 差评 Predict success!
外观/屏幕/不错/散热/分辨率/键盘/办公/运行/速度/效果/细腻/外形/很快/高/mac/很漂亮/稳定/触摸板/win11/90Hz/
Predict result : 好评 Actual results: 好评 Predict success!
买/太/建议/不好/
Predict result : 差评 Actual results: 差评 Predict success!
外观/速度/外形/很漂亮/清晰/快递/看着/很炫酷/
Predict result : 好评 Actual results: 好评 Predict success!
外观/入手/键盘/物流/速度/外形/轻薄/程度/很快/高/包装/漂亮/开机/颜值/心/严实/强烈推荐/少女/粉色/发光/
Predict result : 好评 Actual results: 好评 Predict success!
办公/舒服/特别/很大/画质/不卡/轻松/赞/推荐/平时/追剧/轻巧/打字/背着/上班族/上下班/
Predict result : 好评 Actual results: 好评 Predict success!
强大/外观/运行/速度/很快/电脑/购买/中/很漂亮/处理器/硬盘/内存/惊喜/轻松/希望/失望/固态/过程/带来/应对/大学/生活/认准/
Predict result : 好评 Actual results: 好评 Predict success!
性能/外观/好看/电脑/满意/买/喜欢/笔记本电脑/感受/刚刚/重量/大型/游戏/尺寸/平时/太多/学生/太重/电视剧/惠普/粉红色/
Predict result : 好评 Actual results: 好评 Predict success!
外观/屏幕/不错/效果/外形/轻薄/程度/合适/体验/清晰/喜欢/适合/感/轻便/学习/耐心/比较满意/女生/追剧/客服/小游戏/
Predict result : 好评 Actual results: 好评 Predict success!
颜色/京东/物流/轻薄/特别/电脑/系统/笔记本电脑/选/服务态度/一如既往/手感/开机/高大/机身/没得说/耐心/自带/客服/联想/windows11/激活/产品包装/步骤/即可/
Predict result : 好评 Actual results: 好评 Predict success!
性能/外观/视网膜/散热/苹果/运行/速度/效果/外形/程度/很快/发热/满意/特色/以旧换新/arm/架构/16G/块/内存/英特尔/m1/新/便宜/飞起/比官/网/750/补贴/碾压/
Predict result : 好评 Actual results: 好评 Predict success!
耐用/京东/物流/好评/细腻/很快/包装/体验/配置/第二天/总体/购物/一如既往/开机/屏幕显示/几次/希望/方便快捷/硬件/到手/启动/地快/迟钝/符合要求/
Predict result : 好评 Actual results: 好评 Predict success!
外观/不错/外形/轻薄/程度/高/买/送/性价比/适合/整体/开机/软件/金属/顺滑/拿到/简洁/顺畅/昨天/放/正版/挺轻/office/风/包里/通勤/
Predict result : 好评 Actual results: 好评 Predict success!
强大/流畅/感觉/系统/变化/软件/越来越/期待/实在/普及/
Predict result : 好评 Actual results: 好评 Predict success!
运行/速度/强/很快/热/M1/真香/续航/能力/屏幕显示/一会/呼呼/
Predict result : 好评 Actual results: 好评 Predict success!
屏幕/完美/中/开机/配送/希望/影响/好大/设置/大暴雨/
Predict result : 好评 Actual results: 好评 Predict success!
京东/质量/速度/挺/电脑/发货/没什么/到货/
Predict result : 好评 Actual results: 好评 Predict success!
外观/好看/屏幕/散热/不算/真的/声音/很大/高/超级/买/性价比/热/爽/看着/上网/网课/课才/运存/
Predict result : 好评 Actual results: 好评 Predict success!
电脑/刚买/商家/客服/电话/有个/解决问题/闪/人工/就让/屁用/
Predict result : 差评 Actual results: 差评 Predict success!
外观/颜色/不错/键盘/效果/做工/比上/清晰/寸/14/手感/拆开/屏幕显示/检查/触摸板/到手/锐利/工整/小钢炮/
Predict result : 好评 Actual results: 好评 Predict success!
性能/外观/好看/屏幕/散热/入手/运行/速度/效果/外形/轻薄/程度/挺快/简约/学习/ok/自带/学生/党/office/不厚/
Predict result : 好评 Actual results: 好评 Predict success!
触摸板/不行/一个月/
Predict result : 差评 Actual results: 差评 Predict success!
轻薄/中/体验/款/系统/喜欢/新款/美观/整/Win11/新版/
Predict result : 好评 Actual results: 好评 Predict success!
晚上/一周/百分之/买不到/睡眠/
Predict result : 差评 Actual results: 差评 Predict success!
颜色/屏幕/不错/感觉/键盘/银色/真的/高/几天/清晰/买/喜欢/重量/评价/性价比/不卡/颜值/赞/走/哒/女生/ps/大学/人脸识别/背光/彩/cad/
Predict result : 好评 Actual results: 好评 Predict success!
性能/外观/屏幕/散热/运行/速度/效果/外形/轻薄/程度/合适/完美/时尚/特色/超好/尽在不言中/极速/
Predict result : 好评 Actual results: 好评 Predict success!
视频/拆开/磕碰/开关/处有/作证/
Predict result : 差评 Actual results: 差评 Predict success!
流畅/音质/办公/质量/运行/细腻/轻薄/视频/不卡顿/开机/杠杠/屏幕显示/能用/卸载/装个/版本/滴/可靠/office/改天/三五年/反复/
Predict result : 好评 Actual results: 好评 Predict success!
好看/颜色/效果/外形/轻薄/程度/重/舒服/清晰/大气/轻/轻便/简单/大方/大爱/看着/几次/顺畅/上档次/超赞/心情/拍/清/随便/外带/舒畅/
Predict result : 好评 Actual results: 好评 Predict success!
真的/声音/怀疑/手机/很差/黑屏/打不开/
Predict result : 差评 Actual results: 差评 Predict success!
性能/屏幕/中/清晰/快递/双十/一买/本来/周日/周五/感谢/小哥/代/bookpro/换/这款/想象/略沉/接受/目前为止/地表/最强/先/一段时间/评价/
Predict result : 好评 Actual results: 好评 Predict success!
买/12/完/保价/一侧/500/十二/触/控盘/偏低/
Predict result : 差评 Actual results: 差评 Predict success!
流畅/音质/运行/几天/一流/好用/体验/型/接受/评价/习惯/设计/生产力/软件/外型/最新款/理想/
Predict result : 好评 Actual results: 好评 Predict success!
苹果/好评/真的/Mac/耳机/太好/手机/平板/换成/全家/桶/壮大/巨好/
Predict result : 好评 Actual results: 好评 Predict success!
掉/无语/
Predict result : 差评 Actual results: 差评 Predict success!
买/卡/全新/原因/多久/
Predict result : 差评 Actual results: 差评 Predict success!
配送/送货上门/
Predict result : 好评 Actual results: 差评 Predict fail!
办公/保障/做工/质感/满意/这款/玩游戏/轻便/游戏/需求/品牌/赞/老公/算/点个/网课/显卡/很久选/一家/凑合/三口/
Predict result : 好评 Actual results: 好评 Predict success!
外观/好看/不错/京东/运行/速度/很快/电脑/款/机器/适合/孩子/选择/收到/美观/赞/上网/课/疫情/大小/激动/正好/暗处/摄像头/体积/轻盈/隐藏/时期/
Predict result : 好评 Actual results: 好评 Predict success!
降价/一个月/500/
Predict result : 差评 Actual results: 差评 Predict success!
本次测试预测准确度为: 0.98
由上可见,本次准确度为 98%,说明50次预测中,49次成功,1次失败。
失败的案例是因为切词过于严重,仅剩两个有效词向量,出现了异常的情况,可适当对其进行调整,增加准确度。
小结
由于本人技术有限,并不清楚词嵌入部分内容,也只是采用了笨拙的统计词频词典方法,期间耗费的内存空间略大,所以并不是特别完美,希望能够帮到需要的小伙伴吧,如有疑问可在下方留言或私信。
版权声明:本文标题:朴素贝叶斯算法----评论情感分析系统 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.freenas.com.cn/jishu/1725947494h897240.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论