【Python情感分析】用python情感分析李子柒频道视频热门评论
一、事件背景
今天是2021.12.2日,距离李子柒断更已经4个多月了,这是我在YouTube李子柒油管频道上,观看李子柒2021年7月14日上传的最后一条视频,我录制了视频下方的来自全世界各国网友的评论,全世界的网友们集体期待李子柒回归,瞬间泪奔。
https://zhuanlan.zhihu.com/p/440462123
针对全世界网友的热门评论,怎么分析出网友的评论态度和舆论导向呢?于是我试着用python做了情感分析,得出了一些舆情导向的结论。
二、python代码讲解
下面,通过python代码(部分核心代码)逐一分解,这个情感分析是怎样实现的:
首先,导入需要的库:
1 import pandas as pd # 数据分析库
2 from textblob import TextBlob # 英文情感分析库
3 import matplotlib.pyplot as plt # 画图
4 from wordcloud import WordCloud # 绘制词云图
5 from wordcloud import ImageColorGenerator
6 from PIL import Image
7 import numpy as np
然后,通过pandas读取excel评论数据(爬虫代码不做讲解,对爬虫代码感兴趣的小伙伴可以私聊我哦)
1 file = "李子柒评论.xlsx"
2 df = pd.read_excel(file, usecols=[1, 2, 3, 4, 5]) #读取评论数据
3 v_cmt_list = df['text'].values.tolist() # 把评论字段转换为list
4 print('length of v_cmt_list is:{}'.format(len(v_cmt_list)))
下面是情感分析的代码:
1 # 情感分析
2 score_list = [] # 情感评分值
3 tag_list = [] # 打标分类结果
4 for comment in v_cmt_list:
5 tag = ''
6 judge = TextBlob(comment)
7 sentiments_score = judge.sentiment.polarity
8 score_list.append(sentiments_score)
9 if sentiments_score < 0:
10 tag = '消极'
11 elif sentiments_score == 0:
12 tag = '中性'
13 else:
14 tag = '积极'
15 tag_list.append(tag)
16 df['情感得分'] = score_list
17 df['分析结果'] = tag_list
18 df.to_excel('情感分析结果.xlsx', index=None)
查看一下情感分析结果:
1 df.groupby(by=['分析结果']).count()['text'] # 分组统计情感分析结果
结果显示,中性和积极词汇占据一半以上,也就是说,大部分网友还是喜欢李子柒的视频的。
最后是词云图绘制的代码:
1 # 绘制词云图
2 stopwords = ['the', 'a', 'and', 'of', 'it', 'her', 'she', 'if', 'I', 'is', 'not', 'your', 'there', 'this',
3 'that', 'to', 'you', 'in', 'as', 'for', 'are', 'so', 'was', 'but', 'with', 'they', 'have'] # 停用词
4 coloring = np.array(Image.open("lzq3.jpeg"))
5 backgroud_Image = coloring # 读取背景图片
6 wc = WordCloud(
7 scale=3, # 图片大小,清晰度
8 background_color="white", # 背景颜色
9 max_words=1000, # 词数量
10 font_path='/System/Library/Fonts/SimHei.ttf', # Mac字体文件路径,根据实际情况替换
11 # font_path="C:\Windows\Fonts\simhei.ttf", # Win字体文件路径,根据实际情况替换
12 stopwords=stopwords, # 停用词
13 mask=backgroud_Image, # 背景图片
14 color_func=ImageColorGenerator(coloring), # 根据原始图片颜色生成词云图颜色
15 max_font_size=100, # 设置字体最大值
16 random_state=240 # 设置有多少种随机生成状态,即有多少种配色方案
17 )
18 wc.generate(v_cmt_str) # 生成词云图
19 wc.to_file('词云结果图.png') # 保存图片文件
20 display(Image.open('lzq3.jpeg')) # 显示原始图片
21 wc.to_image() # 显示词云图
词云图最后的展示效果如下:
这里需要说明的是,color_func=ImageColorGenerator(coloring)这句代码,能够根据原始图片颜色生成词云图颜色。细心的小伙伴应该能看出来,词云图的颜色配比和原始图片的颜色配比很接近了。
三、同步讲解视频
https://www.zhihu.com/zvideo/1449696394374684672
四、获取python源码文件
爱学习的小伙伴,想获取完整python代码文件,关注我的微信公众号"老男孩的平凡之路",后台回复"李子柒情感分析",即可获取完整python源码及结果文件。
首发公号文章:
【Python情感分析】用python情感分析李子柒频道视频热门评论的更多相关文章
- Python学习-使用Python爬取陈奕迅新歌《我们》网易云热门评论
<后来的我们>上映也有好几天了,一直没有去看,前几天还爆出退票的事件,电影的主题曲由陈奕迅所唱,特地找了主题曲<我们>的MV看了一遍,还是那个感觉.那天偶然间看到Python中 ...
- 【Python数据分析案例】python数据分析老番茄B站数据(pandas常用基础数据分析代码)
一.爬取老番茄B站数据 前几天开发了一个python爬虫脚本,成功爬取了B站李子柒的视频数据,共142个视频,17个字段,含: 视频标题,视频地址,视频上传时间,视频时长,是否合作视频,视频分区,弹幕 ...
- 基于情感词典的python情感分析
近期老师给我们安排了一个大作业,要求根据情感词典对微博语料进行情感分析.于是在网上狂找资料,看相关书籍,终于搞出了这个任务.现在做做笔记,总结一下本次的任务,同时也给遇到有同样需求的人,提供一点帮助. ...
- 【转】用python实现简单的文本情感分析
import jieba import numpy as np # 打开词典文件,返回列表 def open_dict(Dict='hahah',path = r'/Users/zhangzhengh ...
- 预测分析建模 Python与R语言实现
预测分析建模 Python与R语言实现 目录 前言 第1章 分析与数据科学1第2章 广告与促销10第3章 偏好与选择24第4章 购物篮分析31第5章 经济数据分析42第6章 运营管理56第7章 文本分 ...
- python笔记之常用模块用法分析
python笔记之常用模块用法分析 内置模块(不用import就可以直接使用) 常用内置函数 help(obj) 在线帮助, obj可是任何类型 callable(obj) 查看一个obj是不是可以像 ...
- Python文章相关性分析---金庸武侠小说分析
百度到<金庸小说全集 14部>全(TXT)作者:金庸 下载下来,然后读取内容with open('names.txt') as f: data = [line.strip() for li ...
- NetCloud——一个网易云音乐评论抓取和分析的Python库
在17的四月份,我曾经写了一篇关于网易云音乐爬虫的文章,还写了一篇关于评论数据可视化的文章.在这大半年的时间里,有时会有一些朋友给我发私信询问一些关于代码方面的问题.所以我最近抽空干脆将原来的代码整理 ...
- 基于Python的信用评分卡模型分析(二)
上一篇文章基于Python的信用评分卡模型分析(一)已经介绍了信用评分卡模型的数据预处理.探索性数据分析.变量分箱和变量选择等.接下来我们将继续讨论信用评分卡的模型实现和分析,信用评分的方法和自动评分 ...
随机推荐
- django CBV 及其装饰器
#urls.py from django.contrib import admin from django.urls import path, re_path from app01 import vi ...
- BUG战斗史 —— 日期格式与字符串之间的转换
说在前面 最近在公司实习,接触了一个中小型的后台管理系统,不得不说,项目的目录结构比我平时做的"课程设计"要来得复杂,于是我先去看了Github上一些后台管理系统的模板项目 在gu ...
- js技术之循环for
案例:把所有单词以空格为分割并将首字母转为大写 <!DOCTYPE html><html lang="en"><head> <meta c ...
- SQL语句之Column 'Status' in where clause is ambiguous错误
问题: AND created_by IN (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?) limit 0, 10]; Column 'created_by' in where cla ...
- 18个基于 HTML5 Canvas 开发的图表库
如今,HTML5 可谓如众星捧月一般,受到许多业内巨头的青睐.很多Web开发者也尝试着用 HTML 5 来制作各种各样的富 Web 应用.HTML 5 规范引进了很多新特性,其中之一就是 Canvas ...
- Vue.js 开发实践:实现精巧的无限加载与分页功能
本篇文章是一篇Vue.js的教程,目标在于用一种常见的业务场景--分页/无限加载,帮助读者更好的理解Vue.js中的一些设计思想.与许多Todo List类的入门教程相比,更全面的展示使用Vue.js ...
- 小程序 wx.getSystemInfoSync 获取 windowHeight 问题
windowHeight 概念 可使用窗口高度,即:屏幕高度(screenHeight) - 导航(tabbar)高度 存在问题 安卓设备下获取 windowHeight 不能准确得到对应的高度,总是 ...
- webpack+vue-cli+ElementUI+vue-resource 前端开发
线上商城项目(电脑0环境)1.安装node.js (参考http://www.runoob.com/nodejs/nodejs-install-setup.html): 2.安装 webpack (全 ...
- 【论文简读】 Deep web data extraction based on visual
<Deep web data extraction based on visual information processing>作者 J Liu 上海海事大学 2017 AIHC会议登载 ...
- PAT B1071 小赌怡情
题目描述: 常言道"小赌怡情".这是一个很简单的小游戏:首先由计算机给出第一个整数:然后玩家下注赌第二个整数将会比第一个数大还是小:玩家下注 t 个筹码后,计算机给出第二个数.若玩 ...