当前位置: 首页 > news >正文

竞赛项目 酒店评价的情感倾向分析

前言

🔥 优质竞赛项目系列,今天要分享的是

酒店评价的情感倾向分析

该项目较为新颖,适合作为竞赛课题方向,学长非常推荐!

🧿 更多资料, 项目分享:

https://gitee.com/dancheng-senior/postgraduate

概述

本文基于7K条携程酒店评价数据为文本数据,将其导入到Keras的模型架构然后进行训练出一个可用于实际场所预测情感的模型。

项目所需模块

import tensorflow as tf  
import matplotlib.pyplot as plt
import pandas as pd
from sklearn.model_selection import train_test_split
import tensorflow.keras as keras# 导入jieba分词库
import jieba 
import re

数据

数据说明

7000多条携程酒店评论数据,5000多条正向评论,2000多条负向评论。

字段说明
  • 评论数目(总体):7766
  • 评论数目(正向):5322
  • 评论数目(负向):2444

在这里插入图片描述

数据处理

# 读取数据
data = pd.read_csv("/home/kesci/input/labelreview5456/ChnSentiCorp_htl_all.csv")
# 查看数据的前5项
data.head()

在这里插入图片描述

分词处理

# 去除标点符号和数字
# 要去除标点符号和数字,常用的办法就是使用正则表达式来处理,或者自行编写遍历替换函数# 模式串
patten = r"[!\"#$%&'()*+,-./:;<=>?@[\\\]^_`{|}~—!,。?·¥、《》···【】:" "''\s0-9]+"  
re_obj = re.compile(patten)# 替换函数--去除标点符号和数字
def clear(text):return re_obj.sub('', text)# 将正则表达式替换函数应用于每一行
data["review"] = data["review"].apply(clear)
# 查看前5行替换结果data["review"][:5]

在这里插入图片描述

采用精简处理,启用HMM(隐式马尔科夫网络)处理

def cut_words(words):return jieba.lcut(words) # 使用lcut分词#apply函数对series的每一行数据进行处理
data["review"] = data["review"].apply(cut_words)
data["review"][:5]

在这里插入图片描述

停用词处理

# 使用 中文停用词表 stop_words = "/home/kesci/work/stopwords-master/stopwords.txt"stop_list = [i.strip() for i in open(stop_words, encoding='utf-8').readlines()]  #读取停用词列表def remove_stop(words):  #移除停用词函数texts = []for word in words:  # 遍历词列表里的每一个词if word not in stop_list:  # 若不在停用词列表中就将结果追加至texts列表中texts.append(word)return textsdata['review'] = data['review'].apply(remove_stop)# 查看前5行data["review"][:5]

在这里插入图片描述

样本均衡

data["label"].value_counts().plot(kind = 'bar')
plt.text(0, 6000, str(data["label"].value_counts()[1]),ha = 'center', va = 'top')
plt.text(1, 3000, str(data["label"].value_counts()[0]),ha = 'center', va = 'top')
plt.ylim(0, 6500)
plt.title('正负样本的个数')
plt.show()

在这里插入图片描述

从柱状图可以看出,该数据集共7766条数据,其中正样本(label = 1)共有5322条,负样本(label = 0)共有2444条,没有重复数据

显然样本存在严重的不均衡问题,这里考虑两种样本均衡的策略
(1)欠采样,正负样本各2000条,一共4000条
(2)过采样,正负样本各3000条,一共6000条

为减少计算量和对比两种均衡策略的效果,这里采用先把整体数据进行处理,再做样本均衡采样

def get_balanced_words(size,positive_comment=data[data['label'] == 1],negtive_comment=data[data['label'] == 0]):word_size = size // 2#获取正负评论数num_pos = positive_comment.shape[0]num_neg = negtive_comment.shape[0]#     当 正(负)品论数中<采样数量/2 时,进行上采样,否则都是下采样;#     其中pandas的sample方法里的repalce参数代表是否进行上采样,默认不进行balanced_words = pd.concat([positive_comment.sample(word_size,replace=num_pos < word_size,random_state=0),negtive_comment.sample(word_size,replace=num_neg < word_size,random_state=0)])#     打印样本个数print('样本总数:', balanced_words.shape[0])print('正样本数:', balanced_words[data['label'] == 1].shape[0])print('负样本数:', balanced_words[data['label'] == 0].shape[0])print('')return balanced_words
建立多层感知机分类模型

在这里插入图片描述
可以看到共有四层:平坦层共有1600个神经元,平坦层在这里可以看作为输入层。隐藏层共有256个神经;输出层只有1个神经元。全部必须训练的超参数有474113个,通常超参数数值越大,代表此模型越复杂,需要更多时间进行训练。

训练模型

在这里插入图片描述

网络检测率以及检测结果

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

input_text = """去之前会有担心,因为疫情,专门打了电话给前台,前台小哥哥好评,耐心回答,打消了我的顾虑,nice!! 看得出有做好防疫情清洁消毒工作,前台登记反复询问,确保出行轨迹安全,体温测量登记,入住好评,选了主题房,设计是我喜欢的.总之下次有需要还是会自住或推荐!!"""predict_review(input_text)result : 正面评价!

至此,对携程酒店评价的情感倾向分析,以建立一个简单的多层感知器模型结束,由于文章所限,后续的模型优化以及与其他深度学习的模型的比较就不进行简述,有兴趣的同学可以留意学长后续文章。谢谢各位同学!

最后

🧿 更多资料, 项目分享:

https://gitee.com/dancheng-senior/postgraduate

相关文章:

竞赛项目 酒店评价的情感倾向分析

前言 &#x1f525; 优质竞赛项目系列&#xff0c;今天要分享的是 酒店评价的情感倾向分析 该项目较为新颖&#xff0c;适合作为竞赛课题方向&#xff0c;学长非常推荐&#xff01; &#x1f9ff; 更多资料, 项目分享&#xff1a; https://gitee.com/dancheng-senior/post…...

加载并绘制时间域内的心电图信号,并实施Q因子为1的陷波滤波器以去除50 Hz频率研究(Matlab代码实现)

&#x1f4a5;&#x1f4a5;&#x1f49e;&#x1f49e;欢迎来到本博客❤️❤️&#x1f4a5;&#x1f4a5; &#x1f3c6;博主优势&#xff1a;&#x1f31e;&#x1f31e;&#x1f31e;博客内容尽量做到思维缜密&#xff0c;逻辑清晰&#xff0c;为了方便读者。 ⛳️座右铭&a…...

瑞数信息《2023 API安全趋势报告》重磅发布: API攻击持续走高,Bots武器更聪明

如今API作为连接服务和传输数据的重要通道&#xff0c;已成为数字时代的新型基础设施&#xff0c;但随之而来的安全问题也日益凸显。为了让各个行业更好地应对API安全威胁挑战&#xff0c;瑞数信息作为国内首批具备“云原生API安全能力”认证的专业厂商&#xff0c;近年来持续输…...

HCIA静态路由与动态路由

目录 一、静态路由 定义&#xff1a; 适用环境 二、动态路由 定义&#xff1a; 特点&#xff1a; 动态路由协议: 三、缺点&#xff1a; 1&#xff09;静态路由缺点: 2&#xff09;动态路由的缺点: 四、静态路由与动态路由的区别 静态路由: 动态路由: 一、静态路…...

【前端 | CSS】flex布局

基本概念 Flexible模型&#xff0c;通常被称为 flexbox&#xff0c;是一种一维的布局模型。它给 flexbox 的子元素之间提供了强大的空间分布和对齐能力 我们说 flexbox 是一种一维的布局&#xff0c;是因为一个 flexbox 一次只能处理一个维度上的元素布局&#xff0c;一行或者…...

YoloV8优化:感受野注意力卷积运算(RFAConv),效果秒杀CBAM和CA等 | 即插即用系列

💡💡💡本文改进:感受野注意力卷积运算(RFAConv),解决卷积块注意力模块(CBAM)和协调注意力模块(CA)只关注空间特征,不能完全解决卷积核参数共享的问题 RFAConv| 亲测在多个数据集能够实现大幅涨点,有的数据集达到3个点以上 💡💡💡Yolov8魔术师,独家首…...

面对AI冲击,技术人才该如何考核?

一天下午&#xff0c;在与知名企业的技术交流会议室里&#xff0c;一位兄弟企业的CTO 小力苦笑着&#xff0c;分享了一个技术招聘的故事&#xff1a; “我们有个高级工程师&#xff0c;为了搞定MySQL三个表Join的问题&#xff0c;搞了一整天都研究不出来。结果他尝试将表结构扔…...

放弃51单片机,直接学习STM32开发可能会面临的问题

学习51单片机并非仅仅是为了学习51本身&#xff0c;而是通过它学习一种方法&#xff0c;即如何仅仅依靠Datasheet和例程来学习一种新的芯片。51单片机相对较简单&#xff0c;是这个过程中最容易上手的选择&#xff0c;而AVR单片机则更为复杂。虽然您已经学习了大约十天的51单片…...

windows安装git并初始化

git官网下载地址&#xff1a; https://git-scm.com/downloads 安装步骤&#xff0c;一直点击下一步即可 git初始化 1、用户签名 git config --global user.email 2734542837qq.com#设置全局用户邮箱git config --global user.name "zoujiahao"# 设置全局用户使用人…...

SpringBoot集成websocket(3)|(websocket调用websocket采用回调方式实现数据互传)

SpringBoot集成websocket&#xff08;3&#xff09;|&#xff08;websocket调用websocket采用回调方式实现数据互传&#xff09; 文章目录 SpringBoot集成websocket&#xff08;3&#xff09;|&#xff08;websocket调用websocket采用回调方式实现数据互传&#xff09;[TOC] 前…...

基于Doris实时数据开发的一些注意事项

300万字&#xff01;全网最全大数据学习面试社区等你来&#xff01; 最近Doris的发展大家是有目共睹的。例如冷热分离等新特性的持续增加。使得Doris在易用和成本上都有大幅提升。 基于Doris的一些存储实时数仓在越来越多的场景中开始有一些实践。大家也看到了这种方案频繁出现…...

竞赛项目 深度学习疲劳驾驶检测 opencv python

文章目录 0 前言1 课题背景2 实现目标3 当前市面上疲劳驾驶检测的方法4 相关数据集5 基于头部姿态的驾驶疲劳检测5.1 如何确定疲劳状态5.2 算法步骤5.3 打瞌睡判断 6 基于CNN与SVM的疲劳检测方法6.1 网络结构6.2 疲劳图像分类训练6.3 训练结果 7 最后 0 前言 &#x1f525; 优…...

20.4 HTML 表单

1. form表单 <form>标签: 用于创建一个表单, 通过表单, 用户可以向网站提交数据. 表单可以包含文本输入字段, 复选框, 单选按钮, 下拉列表, 提交按钮等等. 当用户提交表单时, 表单数据会发送到服务器进行处理.action属性: 应指向一个能够处理表单数据的服务器端脚本或UR…...

Linux——基础IO(1)

目录 0. 文件先前理解 1. C文件接口 1.1 写文件 1.2 读文件 1.3 输出信息到显示器 1.4 总结 and stdin & stdout & stderr 2. 系统调用文件I/O 2.1 系统接口使用示例 2.2 接口介绍 2.3 open函数返回值 3. 文件描述符fd及重定向 3.1 0 & 1 & 2 3.2…...

MFC第二十七天 通过动态链表实现游戏角色动态增加、WM_ERASEBKGND背景刷新的原理、RegisterClass注册窗口与框架程序开发

文章目录 通过动态链表实现游戏角色动态增加CMemoryDC.hCFlashDlg.hCFlashDlg.cpp WM_ERASEBKGND背景刷新的原理RegisterClass注册窗口与框架程序开发CFrameRegister 通过动态链表实现游戏角色动态增加 CMemoryDC.h #pragma once#include "resource.h"/*内存DC类简介…...

Debezium系列之:基于内容路由实现把数据库表中的数据按照数据类型分发到不同的topic

Debezium系列之:基于内容路由实现把数据库表中的数据按照数据类型分发到不同的topic 一、需求背景二、创建表三、插入、更新、删除数据四、核心参数和实现技术五、查看分发的Topic六、消费Topic数据七、总结和延展一、需求背景 一张表中存有各个超市门店的订单信息,例如超市门…...

苹果账号被禁用怎么办?

苹果账号被禁用怎么办&#xff1f; 转载&#xff1a;苹果账号被禁用怎么办&#xff1f; 当我们使用苹果手机登录App Store时&#xff0c;有时会遇到账号被禁用的提示。总结下来&#xff0c; 账号被禁用的原因可能有以下几种&#xff1a; 禁用的原因 1.在不同的设备上登录Ap…...

文章一:快速上手Git - 从零到一:Git版本控制入门指南

开始本篇文章之前先推荐一个好用的学习工具&#xff0c;AIRIght&#xff0c;借助于AI助手工具&#xff0c;学习事半功倍。欢迎访问&#xff1a;http://airight.fun/。 概述 在软件开发和团队协作中&#xff0c;版本控制是一项至关重要的技术。Git作为现代开发者最喜爱的版本控…...

【用unity实现100个游戏之6】制作一个战旗自走棋类游戏(附源码)

文章目录 前言导入素材开始1. 设置瓦片间隙2. 放置全图瓦片3. 美化瓦片地图4. 添加树木障碍物5. 设定不同的排序图层6. 瓦片交互6. 瓦片交互优化6. 瓦片是否允许角色7. 添加角色8. 新增游戏管理脚本9. 角色移动范围逻辑10. 角色移动范围可视化11. 角色移动12. 重置瓦片颜色12. …...

W5100S-EVB-PICO 做TCP Server进行回环测试(六)

前言 上一章我们用W5100S-EVB-PICO开发板做TCP 客户端连接服务器进行数据回环测试&#xff0c;那么本章将用开发板做TCP服务器来进行数据回环测试。 TCP是什么&#xff1f;什么是TCP Server&#xff1f;能干什么&#xff1f; TCP (Transmission Control Protocol) 是一种面向连…...

论文解读:交大港大上海AI Lab开源论文 | 宇树机器人多姿态起立控制强化学习框架(二)

HoST框架核心实现方法详解 - 论文深度解读(第二部分) 《Learning Humanoid Standing-up Control across Diverse Postures》 系列文章: 论文深度解读 + 算法与代码分析(二) 作者机构: 上海AI Lab, 上海交通大学, 香港大学, 浙江大学, 香港中文大学 论文主题: 人形机器人…...

在HarmonyOS ArkTS ArkUI-X 5.0及以上版本中,手势开发全攻略:

在 HarmonyOS 应用开发中&#xff0c;手势交互是连接用户与设备的核心纽带。ArkTS 框架提供了丰富的手势处理能力&#xff0c;既支持点击、长按、拖拽等基础单一手势的精细控制&#xff0c;也能通过多种绑定策略解决父子组件的手势竞争问题。本文将结合官方开发文档&#xff0c…...

centos 7 部署awstats 网站访问检测

一、基础环境准备&#xff08;两种安装方式都要做&#xff09; bash # 安装必要依赖 yum install -y httpd perl mod_perl perl-Time-HiRes perl-DateTime systemctl enable httpd # 设置 Apache 开机自启 systemctl start httpd # 启动 Apache二、安装 AWStats&#xff0…...

深入浅出:JavaScript 中的 `window.crypto.getRandomValues()` 方法

深入浅出&#xff1a;JavaScript 中的 window.crypto.getRandomValues() 方法 在现代 Web 开发中&#xff0c;随机数的生成看似简单&#xff0c;却隐藏着许多玄机。无论是生成密码、加密密钥&#xff0c;还是创建安全令牌&#xff0c;随机数的质量直接关系到系统的安全性。Jav…...

【机器视觉】单目测距——运动结构恢复

ps&#xff1a;图是随便找的&#xff0c;为了凑个封面 前言 在前面对光流法进行进一步改进&#xff0c;希望将2D光流推广至3D场景流时&#xff0c;发现2D转3D过程中存在尺度歧义问题&#xff0c;需要补全摄像头拍摄图像中缺失的深度信息&#xff0c;否则解空间不收敛&#xf…...

微服务商城-商品微服务

数据表 CREATE TABLE product (id bigint(20) UNSIGNED NOT NULL AUTO_INCREMENT COMMENT 商品id,cateid smallint(6) UNSIGNED NOT NULL DEFAULT 0 COMMENT 类别Id,name varchar(100) NOT NULL DEFAULT COMMENT 商品名称,subtitle varchar(200) NOT NULL DEFAULT COMMENT 商…...

Maven 概述、安装、配置、仓库、私服详解

目录 1、Maven 概述 1.1 Maven 的定义 1.2 Maven 解决的问题 1.3 Maven 的核心特性与优势 2、Maven 安装 2.1 下载 Maven 2.2 安装配置 Maven 2.3 测试安装 2.4 修改 Maven 本地仓库的默认路径 3、Maven 配置 3.1 配置本地仓库 3.2 配置 JDK 3.3 IDEA 配置本地 Ma…...

让回归模型不再被异常值“带跑偏“,MSE和Cauchy损失函数在噪声数据环境下的实战对比

在机器学习的回归分析中&#xff0c;损失函数的选择对模型性能具有决定性影响。均方误差&#xff08;MSE&#xff09;作为经典的损失函数&#xff0c;在处理干净数据时表现优异&#xff0c;但在面对包含异常值的噪声数据时&#xff0c;其对大误差的二次惩罚机制往往导致模型参数…...

Unity UGUI Button事件流程

场景结构 测试代码 public class TestBtn : MonoBehaviour {void Start(){var btn GetComponent<Button>();btn.onClick.AddListener(OnClick);}private void OnClick(){Debug.Log("666");}}当添加事件时 // 实例化一个ButtonClickedEvent的事件 [Formerl…...

Proxmox Mail Gateway安装指南:从零开始配置高效邮件过滤系统

&#x1f49d;&#x1f49d;&#x1f49d;欢迎莅临我的博客&#xff0c;很高兴能够在这里和您见面&#xff01;希望您在这里可以感受到一份轻松愉快的氛围&#xff0c;不仅可以获得有趣的内容和知识&#xff0c;也可以畅所欲言、分享您的想法和见解。 推荐&#xff1a;「storms…...