AI加Python的文本数据情感分析流程效果展示与代码实现

本文所使用数据来自于梯田景区评价数据。

一、数据预处理

数据清洗

去除重复值、空值及无关字符(如表情符号、特殊符号等)。
提取中文文本,过滤非中文字符。
统一文本格式(如全角转半角、繁体转简体)。
中文分词与去停用词
使用 jieba 分词工具进行分词。
加载自定义词典(如景点名“多依树”“老虎嘴”等专有名词)。
去除通用停用词(如“的”“了”)和自定义停用词(如“同程”“门票”)。

情感标签分类

统计情感分布(好评、中评、差评占比)。
若数据不均衡,采用过采样(SMOTE)或调整类别权重。

二、可视化分析

词云生成

全局词云:所有评论文本的词频统计。
分情感词云:分别生成好评、中评、差评的词云,对比关键词差异。
工具:WordCloud + matplotlib。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

高频词条形图

按词频排序,展示Top 20高频词。
分情感统计高频词(如好评中的“壮观”“方便”,差评中的“堵车”“贵”)。

情感分布饼图

可视化好评、中评、差评的比例。

三、特征工程

文本向量化

TF-IDF:提取文本的TF-IDF特征,生成词-文档矩阵。
Word2Vec:训练词向量模型,获取语义特征。
BERT(可选):使用预训练模型提取深度语义特征。

情感标签编码

将“好评”“中评”“差评”映射为数值标签(如0,1,2)。

四、数据建模

分类模型(情感预测)

模型选择:逻辑回归、随机森林、SVM、LSTM(深度学习)。
输入:TF-IDF向量 + 情感标签。
输出:预测情感类别,评估准确率、F1值。
在这里插入图片描述

主题模型(LDA)

提取评论文本中的潜在主题,分析用户关注点(如“交通”“门票价格”“风景”)。
结合情感标签,统计不同主题的情感倾向。
在这里插入图片描述

情感强度分析

使用情感词典(如BosonNLP)计算每条评论的情感强度值。
分析不同情感类别的强度分布(如差评是否情绪更强烈)。

五、关键分析方向

好评驱动因素

高频词:方便、壮观、震撼、自驾、日出。
潜在主题:取票便捷、风景优美、天气影响。

差评改进点

高频词:堵车、贵、管理差、服务态度。
潜在主题:交通拥堵、门票性价比、配套设施不足。

中评矛盾点

高频词:一般、季节、不值。
潜在主题:景色依赖天气、性价比争议。
完整代码如下:

import pandas as pd
import re
import jieba
import jieba.analyse
from sklearn.model_selection import train_test_split
from imblearn.over_sampling import SMOTE
from sklearn.ensemble import RandomForestClassifier
from sklearn.metrics import classification_report
# 在文件顶部导入matplotlib后添加字体配置
import matplotlib.pyplot as plt
plt.rcParams['font.family'] = 'SimHei'  # 设置中文字体
plt.rcParams['axes.unicode_minus'] = False  # 解决负号显示问题
from wordcloud import WordCloud
from collections import Counter# 数据预处理函数
def preprocess_text(text):# 去非中文字符(保留中文标点)text = re.sub(r'[^\u4e00-\u9fa5,。!?;:、]', '', str(text))# 合并重复标点text = re.sub(r'([,。!?;:、])\1+', r'\1', text)return text.strip()# 加载自定义词典(需要用户提供路径)
jieba.load_userdict('custom_dict.txt')  # 请替换为实际词典路径# 加载停用词(需要用户提供路径)
def load_stopwords(path):with open(path, 'r', encoding='utf-8') as f:return set([line.strip() for line in f])
stopwords = load_stopwords('stopwords.txt')  # 请替换为实际停用词路径# 中文分词处理
def chinese_segment(text):# 确保输入为字符串if not isinstance(text, str):text = str(text)words = jieba.lcut(text)return [w for w in words if w not in stopwords and len(w) > 1]# 生成词云函数
# 修改生成词云函数中的字体路径
def generate_wordcloud(text, title):wordcloud = WordCloud(font_path='C:/Windows/Fonts/simhei.ttf',  # 使用绝对路径确保找到字体background_color='white',width

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/bicheng/75072.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Microi吾码界面设计引擎之基础组件用法大全【内置组件篇·上】

🎀🎀🎀 microi-pageengine 界面引擎系列 🎀🎀🎀 一、Microi吾码:一款高效、灵活的低代码开发开源框架【低代码框架】 二、Vue3项目快速集成界面引擎 三、Vue3 界面设计插件 microi-pageengine …

【多线程】单例模式和阻塞队列

目录 一.单例模式 1. 饿汉模式 2. 懒汉模式 二.阻塞队列 1. 阻塞队列的概念 2. BlockingQueue接口 3.生产者-消费者模型 4.模拟生产者-消费者模型 一.单例模式 单例模式(Singleton Pattern)是一种常用的软件设计模式,其核心思想是确保…

终值定理的推导与理解

终值定理的推导与理解 终值定理是控制理论和信号处理中的一个重要工具,它通过频域的拉普拉斯变换来分析时间域函数的最终稳态值。具体来说,终值定理提供了一个简便的方法,利用 F ( s ) F(s) F(s)( f ( t ) f(t) f(t) 的拉普拉斯…

每日c/c++题 备战蓝桥杯(二分答案模版)

在算法学习中,二分答案算法是一种非常高效且常用的技巧。它的核心思想是通过不断缩小搜索范围,逐步逼近目标答案。相比传统的暴力搜索,二分答案算法的时间复杂度通常为 O(logn),特别适合处理大规模数据的查找问题。 本文将详细介…

NLP高频面试题(二十六)——RAG的retriever模块作用,原理和目前存在的挑战

在自然语言处理领域,检索增强生成(Retrieval-Augmented Generation,简称RAG)是一种将信息检索与文本生成相结合的技术,旨在提升模型的回答准确性和信息丰富度。其中,Retriever在RAG架构中扮演着关键角色&am…

第30周Java分布式入门 分布式基础

分布式基础课程笔记 一、什么是分布式? 1. 权威定义 分布式系统定义为:“利用物理架构形成多个自治的处理元素,不共享主内存,通过发送消息合作”。 2. 核心解释 物理架构与处理元素 🌟 多台独立服务器/电脑&#x…

Vuex状态管理

Vuex Vuex是一个专为Vue.js应用程序开发的状态管理模式。它采用集中式管理应用的所有组件状态,并以相应的规则保证状态以一种可预测的方式发生变化。(类似于在前端的数据库,这里的数据存储在内存当中) 一、安装并配置 在项目的…

从代码学习深度学习 - 使用块的网络(VGG)PyTorch版

文章目录 前言一、VGG网络简介1.1 VGG的核心特点1.2 VGG的典型结构1.3 优点与局限性1.4 本文的实现目标二、搭建VGG网络2.1 数据准备2.2 定义VGG块2.3 构建VGG网络2.4 辅助工具2.4.1 计时器和累加器2.4.2 准确率计算2.4.3 可视化工具2.5 训练模型2.6 运行实验总结前言 深度学习…

Baklib激活企业知识管理新动能

Baklib核心技术架构解析 Baklib的底层架构以模块化设计为核心,融合知识中台的核心理念,通过分布式存储引擎与智能语义分析系统构建三层技术体系。数据层采用多源异构数据接入协议,支持文档、音视频、代码片段等非结构化数据的实时解析与分类…

小智机器人中的部分关键函数,FreeRTOS中`xEventGroupWaitBits`函数的详细解析

以下是对FreeRTOS中xEventGroupWaitBits函数的详细解析: 函数功能 xEventGroupWaitBits用于在事件组中等待指定的位被设置。它可以配置为等待任意一个位或所有位,并支持超时机制。 注意:该函数不能在中断中调用。 函数原型 EventBits_t xEv…

关注分离(Separation of Concerns)在前端开发中的实践演进:从 XMLHttpRequest 到 Fetch API

关注分离(Separation of Concerns)在前端开发中的实践演进:从 XMLHttpRequest 到 Fetch API 一、关注分离的核心价值 关注分离(SoC)是软件工程领域的重要设计原则,强调将系统分解为不同维度的功能模块&am…

C之(16)scan-build与clang-tidy使用

C之(16)scan-build与clang-tidy使用 Author: Once Day Date: 2025年3月29日 一位热衷于Linux学习和开发的菜鸟,试图谱写一场冒险之旅,也许终点只是一场白日梦… 漫漫长路,有人对你微笑过嘛… 全系列文章可参考专栏: Linux实践记录_Once_da…

在 Vue 项目中快速集成 Vant 组件库

目录 引言一、找到 src 下的App.js 写入代码。二、安装Vant三、解决 polyfill 问题四、查看依赖五、配置webpack六、引入 Vant七、在组件中使用 Vant八、在浏览器中查看样式总结 引言 在开发移动端 Vue 项目时,选择一个高效、轻量且功能丰富的组件库是提升开发效率…

“GPU 挤不动了?”——聊聊基于 GPU 的计算资源管理

“GPU 挤不动了?”——聊聊基于 GPU 的计算资源管理 作者:Echo_Wish “老板:为什么 GPU 服务器卡得跟 PPT 一样?” “运维:我们任务队列爆炸了,得优化资源管理!” 在 AI 训练、深度学习、科学计算的场景下,GPU 计算资源已经成为香饽饽。但 GPU 服务器贵得离谱,一台 A…

AI渗透测试:网络安全的“黑魔法”还是“白魔法”?

引言:AI渗透测试,安全圈的“新魔法师” 想象一下,你是个网络安全新手,手里攥着一堆工具,正准备硬着头皮上阵。这时,AI蹦出来,拍着胸脯说:“别慌,我3秒扫完漏洞&#xff0…

(二)GEE基础学习初探及案例详解【20250330】

Google Earth Engine(GEE)是由谷歌公司开发的众多应用之一。借助谷歌公司超强的服务器运算能力以及与NASA的合作关系,GEE平台将Landsat、MODIS、Sentinel等可以公开获取的遥感图像数据存储在谷歌的磁盘阵列中,使得GEE用户可以方便的提取、调用和分析海量…

redhat认证是永久的吗

​认证有效期 ​红帽认证一般有效期为3年​(如RHCSA、RHCE、RHCA等),从通过考试之日起计算。 ​例外:部分基础或工程师认证(如Red Hat Certified Engineer)有效期为三年时间,以官方最新政策为准…

git --- cherry pick

git --- cherry pick cherry pick cherry pick Cherry Pick 是 Git 中的一个操作,它允许你选择某个分支的某次(或多次)提交,并将其应用到当前分支,而不会合并整个分支的所有更改。 cherry pick 的作用 只提取某个特定的…

妙用《甄嬛传》中的选妃来记忆概率论中的乘法公式

强烈推荐最近在看的不错的B站概率论课程 《概率统计》正课,零废话,超精讲!【孔祥仁】 《概率统计》正课,零废话,超精讲!【孔祥仁】_哔哩哔哩_bilibili 其中概率论中的乘法公式,老师用了《甄嬛传…

AI 的出现是否能替代 IT 从业者?

AI 的出现是否能替代 IT 从业者? AI 的快速发展正在深刻改变各行各业,IT 行业也不例外。然而,AI 并非完全替代 IT 从业者,而是与其形成互补关系。本文将从 AI 的优势、IT 从业者的不可替代性、未来趋势等方面,探讨 AI…