python酒店评论分析_酒店舆情分析
Python进行携程酒店评论舆情分析
第一步:分析设计
我们是对酒店进行舆情分析,所有我们的核心是酒店的评论数据;对住客的评论数据进行特征提取,通过住客对酒店的评分,对数据进行分类,并使用朴素贝叶斯算法建立数学模型
第二步:数据收集
爬取酒店的相应类型的数据,如酒店的名称,住客的评论,酒店的回复,住客的评分,酒店的综合评分等等
酒店数据:
第三步:数据处理
数据清洗(在统计分析里面至少150条以上的数据)
依据评论ID去重数据(在SQL部分处理)
select * from hotel_comment_datas group by `评论ID`
特征工程
利用特征工程获取相应评论的内容,需将文本信息转为相应的数值
(1)获取评论内容,做相应的索引(对所有的评论做处理)
import pandas as pd
sql = '''select * from hotel_comment_datas group by `评论ID`'''
data = pd.read_sql(sql, conn)
# 去除标签列所对应的缺失值,可以使用花式索引的方式,对于数据进行相应的清洗和替换
data = data[['评论内容', '评分']].replace('none', np.NaN)
data = data.dropna() # 删除评论内容和用户评分为空的数据
(2)开始分词----cut
comment = data['评论内容']
# print(comment)
# (2)开始分词----cut
list_word = [] # 创建空列表用来接收相应的结果
for i in comment:
a = list(jieba.cut(i)) # 按照列表的方式进行相应的分词
list_word.append(' '.join(a))
(3)对于分词后的文本进行相应的特征抽取,TF-TDF特征抽取。TF表示关键词的频率,TDF表示逆文档的频率,主要用来表示每个关键字在文档的重要性
# TF-IDF 特征抽取
from sklearn.feature_extraction.text import TfidfVectorizer
tf = TfidfVectorizer() # 调用TF-TDF分词算法,将文本转化为频率
data1 = tf.fit_transform(list_word) # 先拟合,再转换,得出一个稀疏矩阵
第四步:数据分析
对因变量(住客评分)进行相应的分类
分类代码
bq = []
for i in data['评分']: # 初始的分类级别
if float(i) <= 0:
bq.append(0)
elif 0 < float(i) <= 1:
bq.append(1)
elif 1 < float(i) <= 2:
bq.append(2)
elif 2 < float(i) <= 3:
bq.append(3)
elif 3 < float(i) <= 4:
bq.append(4)
else:
bq.append(5)
划分数据集
(1)找到相对应的特征(自变量)x,标签y(因变量)
x = data2
y = bq
(2)划分相应的训练集和测试集,其中训练集为80%,测试集为20%
# 划分数据集
from sklearn.model_selection import train_test_split
x_train, x_test, y_train, y_test = train_test_split(x, y, test_size=0.2, random_state=0)
(3)对数据进行标准化(将自变量的数据进行相应的标准化处理,可以使得某一个特征不会对总的结果产生较大影响)
# 对数据进行标准化处理
from sklearn.preprocessing import StandardScaler
ss = StandardScaler()
# print(ss.fit_transform(x_train)) # 标准化后,有的值为正,有的值为负
x_train = ss.fit_transform(x_train)
x_test = ss.fit_transform(x_test)
数学建模-朴素贝叶斯分类算法
利用贝叶斯分类的目的:依据对应的评论内容给这个结果进行预测打分和客户实际打分的区别
预测打分可以将客户评价分级,(分级的结果acc准确率要求比较高)
进一步:分级后,将不同等级的用户,单独提取出来,按照预测的打分结果,产生新的一列
按照预测评分结果,按照预测结果的不同等级,将整个数据划分为三个级别,需进一步考虑
对于不同级别的顾客,可以考虑做相应的评价画像
同样可以考虑做顾客画像
代码实现
from sklearn.naive_bayes import GaussianNB # 用于处理有正有负的数据
nb = GaussianNB() # 因为稀疏矩阵标准化后的值很可能是负值
nb.fit(x_train, y_train) # 拟合相应的训练集
x_predict = nb.predict(x_test) # 放入相应的测试集进行分类
t_predict = nb.predict(x_train) # 放入相应的训练集进行分类
score_1 = nb.score(x_train, y_train) # 使用对应的训练集测试一下评估的ACC
score_2 = nb.score(x_test, y_test)
print(score_1, score_2)
模型的准确性
模型调优
增加相应的特征(如评论的推荐数)
这个特征,所有评论特征数,我们可以通过筛选所有评论特征数来提高我们的数据质量(数据的可靠性),进而提高我们的数学模型的ACC(准确率)
# 在sql部分重新筛选所有评论推荐数大于1的数据
sql = '''select * from hotel_comment_datas where `所有评论推荐数` >1 group by `评论ID`'''
与未使用所有评论推荐数的特征的模型准确率,相比,训练集的ACC提高了将近7个百分点,测试集的ACC降低了6个百分点
可以考虑分类级别过多
我们是对酒店进行分类,一般我们对酒店的评价是差、一般、好;但是我们之前是划分了5个等级,我们考虑一下是否分类过度,导致模型ACC过低?尝试降低分类数
缩小分类级别
for i in data['评分']:
if float(i) <= 2:
bq.append(0)
elif 2 < float(i) <= 4:
bq.append(1)
else:
bq.append(2)
相比与上图的数学模型ACC而言,本次的训练集数学模型ACC提高了近1个百分点 ,测试集数学模型ACC基本一致
修改训练集(70%)与测试集(30%)的占比
x_train, x_test, y_train, y_test = train_test_split(x, y, test_size=0.3, random_state=0)
相比上图的数学模型ACC而言,本次训练集的数学模型ACC提高近2个百分点,测试集的数学模型ACC提高近0.8个百分点
我们发现我们建立的数学模型的ACC依旧不是很理想,所有我们得进一步考虑提高模型的ACC。那么问题来了,我们如何再提高模型的ACC?
当然是再次把目光回归到数据本身,提高提取新的特征来筛选高质量的数据
增加特征,重新筛选数据
select * from hotel_comment_datas where `所有评论推荐数` >1 and `城市足迹数` >1 group by `评论ID`
此时我们发现,我们的数学模型的ACC非常好
第五步:数据可视化
第六步:报告撰写
标签:分析,ACC,酒店,data,train,评论,舆情,test,数据
来源: https://www.cnblogs.com/yunwangjun-python-520/p/13587557.html
python酒店评论分析_酒店舆情分析相关推荐
- 24小时网络测试软件有哪些,24小时监测分析的互联网舆情分析系统
网络杂音.信息泛滥等现象的出现,促使互联网舆情的频繁突发,再加上互联网所形成的多元信息传播途径和渠道,所形成的海量信息对主流信息产生了巨大的解构效应,并对公众的判断和认识起到了巨大影响作用.所以,当前 ...
- 切片分析报告格式_疫情舆情分析研判报告怎么撰写?2020舆情报告格式
疫情舆情分析研判报告撰写不像疫情舆情信息监测与搜集工作那么容易,它需要从数据出发,以内容为支撑,要先对疫情舆情信息进行整理汇总,再处理.分析和研判.因此,报告撰写难度大,毕竟它是整个舆情分析研判最终 ...
- python写酒店管理系统报告_酒店管理系统e-r图_酒店系统管理实验报告
e-r图 600x550 - 50KB - JPEG 系统的e-r图! 500x339 - 15KB - JPEG 酒店管理系统论文 892x353 - 23KB - PNG e-r图 482x434 ...
- python灰色关联度分析_灰色关联分析法 python
广告关闭 腾讯云11.11云上盛惠 ,精选热门产品助力上云,云服务器首年88元起,买的越多返的越多,最高返5000元! 本文2290字,预计阅读需10分钟: 关联分析(association anal ...
- python写酒店管理系统报告_酒店管理系统学生工作-部门管理Python,作品,python
# Author: cybersnow # 开发时间:2020-17-07 # 开发工具:PyCharm import re # 导入正则表达式模块 import os # 导入操作系统模块 data ...
- 转录组分析_高级转录组分析和R数据可视化
封面来源:https://www.zhihu.com/question/304747766 常规转录组是我们最常接触到的一种高通量测序数据类型,其实验方法成熟,花费较低,是大部分CNS必备的技术,以后 ...
- python酒店评论分析_使用kears分析中文酒店评论(肯定和否定),基于CNN和RNN
下载清华大学的宾馆评论数据集 from tensorflow import keras import os # 自动解压,新建review_sentiment目录 path = keras.utils ...
- python 视频分析_成为视频分析专家:自动生成集锦的方法(Python实现)
概述以一种简单的方法在Python中生成视频集锦 不使用机器学习或深度学习,学习如何自动生成集锦 使用我们自己的方法,对一场完整的板球比赛自动生成集锦 介绍 我是个超级板球迷.从我记事起,我就迷上了这 ...
- python RTL自动生成_成为视频分析专家:自动生成集锦的方法(Python实现)
概述 以一种简单的方法在Python中生成视频集锦 不使用机器学习或深度学习,学习如何自动生成集锦 使用我们自己的方法,对一场完整的板球比赛自动生成集锦 介绍 我是个超级板球迷.从我记事起,我就迷上了 ...
最新文章
- fatal error C1083: Cannot open include file: 'ceconfig.h': No such file or directory
- python绘制直方图显示数字_python plotly绘制直方图实例详解
- php 字符串0转换bool_PHP数据类型转换(转)
- centos7 安装 vsftpd 过程
- 2019-4-21 - plan
- Hazelcast更换CEO,承诺继续造福开源社区
- mysql5.7编译安装
- 【Java中级】(五)异常处理
- VMware虚拟机克隆或复制linux后无法上网的解决方案
- 机器学习库线性回归代码_PyCaret回归:更好的机器学习库
- MatLab imhist
- 易用宝项目记录day6-login和权限管理
- 电脑键盘注册表已损坏导致无法输入信息的修复方式
- 苏州最新税前税后计算机,苏州税前税后工资计算标准
- 磁盘一把锁一个感叹号_Win10系统中如何解决磁盘图标上出现感叹号的情况
- QT-Linux安装
- MySQL - 索引的数据结构
- Java项目:医院管理系统(java+SSM+layui+maven+mysql)
- 计算机网络安全控制技术
- odoo14 文本字段动态设置字体样式颜色 decoration
热门文章
- 基于VC++的局域网内主机监控系统设计与实现
- Postfix权威指南-阅读笔记-架设和维护邮箱服务器
- 有效的需求管理,需遵循四大原则。
- OpenCV学习笔记~VS code1.25.0.0环境中配置opencv
- EEGLAB扩展插件汇总及安装方法
- VGGNet 论文精度,并解析 VGG-16 网络模型结构
- IOS UIPrint​Interaction​Controller 打印
- 风云编程python怎么样_二十年编程语言风云,看Python如何一步步往上爬!
- python爬去风之动漫---海贼王案例
- 利用Word Embedding自动生成语义相近句子