一、事件背景

今天是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. django CBV 及其装饰器

    #urls.py from django.contrib import admin from django.urls import path, re_path from app01 import vi ...

  2. BUG战斗史 —— 日期格式与字符串之间的转换

    说在前面 最近在公司实习,接触了一个中小型的后台管理系统,不得不说,项目的目录结构比我平时做的"课程设计"要来得复杂,于是我先去看了Github上一些后台管理系统的模板项目 在gu ...

  3. js技术之循环for

    案例:把所有单词以空格为分割并将首字母转为大写 <!DOCTYPE html><html lang="en"><head> <meta c ...

  4. SQL语句之Column 'Status' in where clause is ambiguous错误

    问题: AND created_by IN (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?) limit 0, 10]; Column 'created_by' in where cla ...

  5. 18个基于 HTML5 Canvas 开发的图表库

    如今,HTML5 可谓如众星捧月一般,受到许多业内巨头的青睐.很多Web开发者也尝试着用 HTML 5 来制作各种各样的富 Web 应用.HTML 5 规范引进了很多新特性,其中之一就是 Canvas ...

  6. Vue.js 开发实践:实现精巧的无限加载与分页功能

    本篇文章是一篇Vue.js的教程,目标在于用一种常见的业务场景--分页/无限加载,帮助读者更好的理解Vue.js中的一些设计思想.与许多Todo List类的入门教程相比,更全面的展示使用Vue.js ...

  7. 小程序 wx.getSystemInfoSync 获取 windowHeight 问题

    windowHeight 概念 可使用窗口高度,即:屏幕高度(screenHeight) - 导航(tabbar)高度 存在问题 安卓设备下获取 windowHeight 不能准确得到对应的高度,总是 ...

  8. webpack+vue-cli+ElementUI+vue-resource 前端开发

    线上商城项目(电脑0环境)1.安装node.js (参考http://www.runoob.com/nodejs/nodejs-install-setup.html): 2.安装 webpack (全 ...

  9. 【论文简读】 Deep web data extraction based on visual

    <Deep web data extraction based on visual information processing>作者 J Liu 上海海事大学 2017 AIHC会议登载 ...

  10. PAT B1071 小赌怡情

    题目描述: 常言道"小赌怡情".这是一个很简单的小游戏:首先由计算机给出第一个整数:然后玩家下注赌第二个整数将会比第一个数大还是小:玩家下注 t 个筹码后,计算机给出第二个数.若玩 ...