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.pswp.cn/bicheng/75072.shtml
繁體地址,請注明出處:http://hk.pswp.cn/bicheng/75072.shtml
英文地址,請注明出處:http://en.pswp.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…