基于 Python 的《给阿嬷的情书》豆瓣短评文本挖掘与情感分析(附数据分析代码)

基于 Python 的《给阿嬷的情书》豆瓣短评文本挖掘与情感分析(附数据分析代码) 点击上方“Python爬虫与数据挖掘”进行关注回复“书籍”即可获赠Python从入门到进阶共10本电子书今日鸡汤隔户杨柳弱袅袅恰似十五女儿腰。上周末和我老婆去电影院看完了《给阿嬷的情书》作为万千“自来水”的一滴不得不感叹那时候的爱情和友情都好纯粹。看完电影之后后劲还非常大。从前车马很慢书信很远一生只够爱一个人。昨天刷到央视新闻推送的讯息得悉五一档黑马电影《给阿嬷的情书》票房破11亿放映期正式延长至6月30日。看这架势个人感觉有望突破20亿票房。之前看视频号都说豆瓣评分9.1高分今天我去豆瓣上查看674万多人给出评分目前已经高达9.2评分了更上一层楼了。作为一个Python技术博主今天我将基于 Python 的角度对《给阿嬷的情书》豆瓣短评进行文本挖掘与情感分析。从影评上看已经有7275条影评。我们先准备好爬虫环境安装必要的一些爬虫库。pip install requests beautifulsoup4 pandas jieba wordcloud matplotlib snownlp lxml去cmd下执行安装。安装后这里还提示更新我又尝试着更新发现已经是最新的库了。接下来就是开始Python网络爬虫的部分了。代码比较长这里放一张截图需要完整爬虫代码的小伙伴可以后台回复【谢南枝】记得替换你自己的cookie信息。如果不会查cookie可以加我好友私信教你解决。执行爬虫代码获取影评数据。坐等完成即可。之后就可以在本地看到抓取的影评信息了如图所示。接下来进入数据清洗和分析部分。这里附上数据清洗和分析的代码如下import pandas as pdimport reimport jiebafrom wordcloud import WordCloudimport matplotlib.pyplot as pltfrom collections import Counterfrom snownlp import SnowNLP # --------------------------# 1. 数据清洗# --------------------------df pd.read_csv(豆瓣_给阿嬷的情书_短评.csv, encodingutf-8-sig) # 剔除空值、过短无效评论df df.dropna(subset[comment])df df[df[comment].str.len() 3] # 去除表情、特殊符号、空格def clean_comment(text): text re.sub(r[\U00010000-\U0010ffff], , text) text re.sub(r[^\u4e00-\u9fa5a-zA-Z0-9], , text) return text.strip() df[clean_comment] df[comment].apply(clean_comment)df df.drop_duplicates(subset[clean_comment]) print(f✅ 清洗完成剩余有效评论{len(df)} 条) # --------------------------# 2. 词频统计 词云可视化# --------------------------plt.rcParams[font.family] [SimHei]plt.rcParams[axes.unicode_minus] False all_text .join(df[clean_comment].tolist())stop_words {的,了,我,是,很,都,就,也,还,在,和,不,有,着,看,感觉,觉得,真的,这部,电影} words jieba.lcut(all_text)valid_words [w for w in words if w not in stop_words and len(w) 1]word_count Counter(valid_words)top20 word_count.most_common(20)print(\n 高频TOP20词汇\n, top20) # 生成词云wc WordCloud( background_colorwhite, font_pathsimhei.ttf, width1200, height700, max_words300, colormapOranges)wc.generate( .join(valid_words))wc.to_file(豆瓣_阿嬷情书_词云图.png) # 绘制高频词柱状图names [x[0] for x in top20]nums [x[1] for x in top20]plt.figure(figsize(14,6))plt.bar(names, nums, color#ff9966)plt.title(《给阿嬷的情书》豆瓣短评高频词汇TOP20, fontsize16)plt.xticks(rotation45)plt.tight_layout()plt.savefig(豆瓣_高频词汇柱状图.png)plt.show() # --------------------------# 3. 情感分析# --------------------------def get_sentiment(text): score SnowNLP(text).sentiments if score 0.5: return 温暖正向, score elif score 0.5: return 中性平淡, score else: return 遗憾伤感, score df[sent_type], df[sent_score] zip(*df[clean_comment].apply(get_sentiment))sent_stat df[sent_type].value_counts()print(\n 情感分布统计\n, sent_stat) # 绘制情感分布饼图plt.figure(figsize(8,8))plt.pie(sent_stat.values, labelssent_stat.index, autopct%1.2f%%, colors[#ffb380,#ffe6cc,#ff8080])plt.title(《给阿嬷的情书》豆瓣短评情感分布, fontsize16)plt.savefig(豆瓣_情感分布饼图.png)plt.show() # 保存最终分析数据df.to_csv(豆瓣_阿嬷情书_最终分析数据.csv, indexFalse, encodingutf-8-sig)print(\n✅ 全部分析完成生成了3张图表和最终数据文件)执行数据清洗和分析代码。可以看到本地会生成3张图词云图、高频词汇柱状图和情感分布饼图。接下来我们一起来看看这3张图吧。1、词云图从词云图看上面直观呈现 “南枝”“女性”“潮汕” 等核心关键词的视觉权重高频词的字号差异清晰反映观众讨论焦点的优先级2、高频词汇柱状图量化展示 TOP20 词汇的提及频次“女性”“南枝”“没有” 等词的绝对领先优势印证了角色与主题的核心地位。从高频词汇分析结果来看“南枝”“女性”“潮汕”“这个”“故事” 等词位列 TOP5其中 “南枝” 作为影片核心角色名出现频次最高印证了角色塑造的成功性“潮汕” 作为影片的地域背景标签高频出现说明观众对影片本土化的地域表达感知清晰“女性”“女人”“人生” 等词汇的高提及率体现出观众对影片聚焦女性成长、女性情感的核心叙事方向高度关注也反映出影片在女性视角表达上的共鸣力。3、情感分布饼图以 91.49%:8.51% 的比例直观呈现情感倾向压倒性的正向占比成为影片口碑的核心数据支撑。这一数据说明影片的情感表达精准击中观众的情感共鸣点“温暖” 成为核心观影体验而少量的 “遗憾伤感” 并非负面评价而是观众对影片中时光流逝、亲情羁绊等叙事内容的共情式情感反馈反而强化了影片的情感厚度。行船入夜恰江上升明月圆如玉坠仿若身在故乡似与你并肩共赏。江海万里心中念你便不觉遥远。“一部能让 91% 观众感到温暖的影片终究是因为讲好了‘人’的故事。你看完《给阿嬷的情书》印象最深的是哪个情节评论区聊聊”今天的分享就到这里啦复盘过往、珍惜当下也期待和更多伙伴一起在接单路上稳步前行。今日鸡汤分享没有那么多天赋异禀优秀的人总是在努力翻山越岭。说明我平时有正式工作只做兼职副业只接合理、合法、正规用途的需求不接违法、违规、恶意攻击类项目。有需要的朋友可以直接留言。加了我微信后我会自动发送一些自动回复如有打扰请忽略即可。那个都是我的微信绝对是真人你给我正常发消息即可必回大家在学习过程中如果有遇到问题欢迎随时联系我解决我的vx2584914241应粉丝要求我创建了一些高质量的Python学习交流群和付费接单群欢迎大家加入我的Python学习交流群和接单群。-------------------End-------------------往期精彩文章推荐手把手教你使用AI创作视频进阶版手把手教你使用AI创作视频手把手教你使用AI创作视频豆包版接单一周复盘单量翻倍却藏着不为人知的不易附真实需求汇总欢迎大家点赞留言转发转载感谢大家的相伴与支持想加入Python学习群请在后台回复【入群】万水千山总是情点个【在看】行不行