一、事件背景

今天是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源码及结果文件。

首发公号文章:

https://mp.weixin.qq.com/s?__biz=MzU5MjQ2MzI0Nw==&mid=2247484565&idx=1&sn=ffd0f5e69a490f3fcf82109ea637b721&chksm=fe1e1075c9699963af56beda45cc010a1b515f87aa68a6443878a8e575e6ca57b53f4b449475&payreadticket=HLFBI00L_inc8Ul4LG_PKeZ9lkYuDEDLi03J5hjohpGC_by7jTbbayE1YtcMmWfrWKtLd7Y#rd

【Python情感分析】用python情感分析李子柒频道视频热门评论的更多相关文章

  1. Python学习-使用Python爬取陈奕迅新歌《我们》网易云热门评论

    <后来的我们>上映也有好几天了,一直没有去看,前几天还爆出退票的事件,电影的主题曲由陈奕迅所唱,特地找了主题曲<我们>的MV看了一遍,还是那个感觉.那天偶然间看到Python中 ...

  2. 【Python数据分析案例】python数据分析老番茄B站数据(pandas常用基础数据分析代码)

    一.爬取老番茄B站数据 前几天开发了一个python爬虫脚本,成功爬取了B站李子柒的视频数据,共142个视频,17个字段,含: 视频标题,视频地址,视频上传时间,视频时长,是否合作视频,视频分区,弹幕 ...

  3. 基于情感词典的python情感分析

    近期老师给我们安排了一个大作业,要求根据情感词典对微博语料进行情感分析.于是在网上狂找资料,看相关书籍,终于搞出了这个任务.现在做做笔记,总结一下本次的任务,同时也给遇到有同样需求的人,提供一点帮助. ...

  4. 【转】用python实现简单的文本情感分析

    import jieba import numpy as np # 打开词典文件,返回列表 def open_dict(Dict='hahah',path = r'/Users/zhangzhengh ...

  5. 预测分析建模 Python与R语言实现

    预测分析建模 Python与R语言实现 目录 前言 第1章 分析与数据科学1第2章 广告与促销10第3章 偏好与选择24第4章 购物篮分析31第5章 经济数据分析42第6章 运营管理56第7章 文本分 ...

  6. python笔记之常用模块用法分析

    python笔记之常用模块用法分析 内置模块(不用import就可以直接使用) 常用内置函数 help(obj) 在线帮助, obj可是任何类型 callable(obj) 查看一个obj是不是可以像 ...

  7. Python文章相关性分析---金庸武侠小说分析

    百度到<金庸小说全集 14部>全(TXT)作者:金庸 下载下来,然后读取内容with open('names.txt') as f: data = [line.strip() for li ...

  8. NetCloud——一个网易云音乐评论抓取和分析的Python库

    在17的四月份,我曾经写了一篇关于网易云音乐爬虫的文章,还写了一篇关于评论数据可视化的文章.在这大半年的时间里,有时会有一些朋友给我发私信询问一些关于代码方面的问题.所以我最近抽空干脆将原来的代码整理 ...

  9. 基于Python的信用评分卡模型分析(二)

    上一篇文章基于Python的信用评分卡模型分析(一)已经介绍了信用评分卡模型的数据预处理.探索性数据分析.变量分箱和变量选择等.接下来我们将继续讨论信用评分卡的模型实现和分析,信用评分的方法和自动评分 ...

随机推荐

  1. 面试问题之C++语言:C与C++的区别

    C是C++的基础,C++语言和C语言在很多方面是兼容的. C是结构化语言,它的重点在于算法和数据结构.C程序的设计首要考虑的是如何通过一个过程,对输入(或环境条件)进行运算处理得到输出或实现过程(事务 ...

  2. 图灵机器人 V1 和 V2 接入方法

    API1.0使用方法: import requests import json import yuyinhecheng as hc def Tuling(words):     Tuling_API_ ...

  3. js获取一周前日期

    项目中需要设定默认开始时间为一周前,结束时间为现在,现在写一下如何用js获取一周前日期. 1 var time=(new Date).getTime()-7*24*60*60*1000; 2 var ...

  4. 数据库遇到的问题之“datetime设置默认为CURRENT_TIMESTAMP时报无效默认问题”和“时区问题”

    一.问题1 问题描述: 今日加入创建时间和修改时间,并设置为默认CURRENT_TIMESTAMP时,出现错误,指向sql中的datetime字段,查了一下,发现是版本问题 立马查询自己的MySQL版 ...

  5. swagger的作用和配置使用

    纯API项目中 引入swagger可以生成可视化的API接口页面     引入包 nuget包: Swashbuckle.AspNetCore(最新稳定版) 配置 1.配置Startup类Config ...

  6. (stm32f103学习总结)—待机唤醒实验

    一.STM32待机模式介绍 1.1 STM32低功耗模式介绍 很多单片机具有低功耗模式,比如MSP430.STM8L等,我们的STM32 也不例外.默认情况下,系统复位或上电复位后,微控制器进入运行模 ...

  7. 什么是jsp?jsp的内置对象有哪些?

    这里是修真院前端小课堂,每篇分享文从 [背景介绍][知识剖析][常见问题][解决方案][编码实战][扩展思考][更多讨论][参考文献] 八个方面深度解析前端知识/技能,本篇分享的是: [什么是jsp? ...

  8. ES6-11学习笔记--箭头函数

    1.this指向定义时所在的对象,而不是调用时所在的对象 2.不可以当做构造函数 3.不可以使用arguments对象   ES5中定义函数的两种方式: function fn1() { consol ...

  9. DB2表数据导出、导入及常用sql使用总结

      一.DB2数据的导出: export to [path(例:D:"TABLE1.ixf)]of ixf select [字段(例: * or col1,col2,col3)] from ...

  10. 将本地代码上传到gitLab

    1. 在远程gitLab仓库创建项目, 执行下列命令 git  init git  remote add origin git@10.10.xxx.git (gitLab刚刚创建的工程地址) git  ...