jjzjj

【Python情感分析】用python情感分析李子柒频道视频热门评论

马哥python说 2023-10-16 原文

一、事件背景

今天是2021.12.2日,距离李子柒断更已经4个多月了,这是我在YouTube李子柒油管频道上,观看李子柒2021年7月14日上传的最后一条视频,我录制了视频下方的来自全世界各国网友的评论,全世界的网友们集体期待李子柒回归,瞬间泪奔。
https://www.bilibili.com/video/BV1QL4y1p7dT/
针对全世界网友的热门评论,怎么分析出网友的评论态度和舆论导向呢?于是我试着用python做了情感分析,得出了一些舆情导向的结论。

二、python代码讲解

下面,通过python代码(部分核心代码)逐一分解,这个情感分析是怎样实现的:

首先,导入需要的库:

import pandas as pd  # 数据分析库
from textblob import TextBlob  # 英文情感分析库
import matplotlib.pyplot as plt  # 画图
from wordcloud import WordCloud  # 绘制词云图
from wordcloud import ImageColorGenerator
from PIL import Image
import numpy as np

然后,通过pandas读取excel评论数据(爬虫代码不做讲解,对爬虫代码感兴趣的小伙伴可以s我哦)

file = "李子柒评论.xlsx"
df = pd.read_excel(file, usecols=[1, 2, 3, 4, 5]) #读取评论数据
v_cmt_list = df['text'].values.tolist() # 把评论字段转换为list
print('length of v_cmt_list is:{}'.format(len(v_cmt_list)))

下面是情感分析的代码:

# 情感分析
score_list = []  # 情感评分值
tag_list = []  # 打标分类结果
for comment in v_cmt_list:
    tag = ''
    judge = TextBlob(comment)
    sentiments_score = judge.sentiment.polarity
    score_list.append(sentiments_score)
    if sentiments_score < 0:
        tag = '消极'
    elif sentiments_score == 0:
        tag = '中性'
    else:
        tag = '积极'
    tag_list.append(tag)
df['情感得分'] = score_list
df['分析结果'] = tag_list
df.to_excel('情感分析结果.xlsx', index=None)

查看一下情感分析结果:

df.groupby(by=['分析结果']).count()['text']  # 分组统计情感分析结果
分析结果

结果显示,中性和积极词汇占据一半以上,也就是说,大部分网友还是喜欢李子柒的视频的。

最后是词云图绘制的代码:

# 绘制词云图
stopwords = ['the', 'a', 'and', 'of', 'it', 'her', 'she', 'if', 'I', 'is', 'not', 'your', 'there', 'this',
             'that', 'to', 'you', 'in', 'as', 'for', 'are', 'so', 'was', 'but', 'with', 'they', 'have']  # 停用词
coloring = np.array(Image.open("lzq3.jpeg"))
backgroud_Image = coloring  # 读取背景图片
wc = WordCloud(
    scale=3,  # 图片大小,清晰度
    background_color="white",  # 背景颜色
    max_words=1000,  # 词数量
    font_path='/System/Library/Fonts/SimHei.ttf',  # Mac字体文件路径,根据实际情况替换
    # font_path="C:\Windows\Fonts\simhei.ttf",  # Win字体文件路径,根据实际情况替换
    stopwords=stopwords,  # 停用词
    mask=backgroud_Image,  # 背景图片
    color_func=ImageColorGenerator(coloring),  # 根据原始图片颜色生成词云图颜色
    max_font_size=100,  # 设置字体最大值
    random_state=240  # 设置有多少种随机生成状态,即有多少种配色方案
)
wc.generate(v_cmt_str)  # 生成词云图
wc.to_file('词云结果图.png')  # 保存图片文件
display(Image.open('lzq3.jpeg'))  # 显示原始图片
wc.to_image()  # 显示词云图

词云图最后的展示效果如下:


词云结果图

这里需要说明的是,color_func=ImageColorGenerator(coloring)这句代码,能够根据原始图片颜色生成词云图颜色。细心的小伙伴应该能看出来,词云图的颜色配比和原始图片的颜色配比很接近了。

三、同步输出

讲解视频:
https://www.bilibili.com/video/BV16F41187B4/


马哥python说

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

  1. python - 如何使用 Ruby 或 Python 创建一系列高音调和低音调的蜂鸣声? - 2

    关闭。这个问题是opinion-based.它目前不接受答案。想要改进这个问题?更新问题,以便editingthispost可以用事实和引用来回答它.关闭4年前。Improvethisquestion我想在固定时间创建一系列低音和高音调的哔哔声。例如:在150毫秒时发出高音调的蜂鸣声在151毫秒时发出低音调的蜂鸣声200毫秒时发出低音调的蜂鸣声250毫秒的高音调蜂鸣声有没有办法在Ruby或Python中做到这一点?我真的不在乎输出编码是什么(.wav、.mp3、.ogg等等),但我确实想创建一个输出文件。

  2. ruby-on-rails - 简单的 Ruby on Rails 问题——如何将评论附加到用户和文章? - 2

    我意识到这可能是一个非常基本的问题,但我现在已经花了几天时间回过头来解决这个问题,但出于某种原因,Google就是没有帮助我。(我认为部分问题在于我是一个初学者,我不知道该问什么......)我也看过O'Reilly的RubyCookbook和RailsAPI,但我仍然停留在这个问题上.我找到了一些关于多态关系的信息,但它似乎不是我需要的(尽管如果我错了请告诉我)。我正在尝试调整MichaelHartl'stutorial创建一个包含用户、文章和评论的博客应用程序(不使用脚手架)。我希望评论既属于用户又属于文章。我的主要问题是:我不知道如何将当前文章的ID放入评论Controller。

  3. Python 相当于 Perl/Ruby ||= - 2

    这个问题在这里已经有了答案:关闭10年前。PossibleDuplicate:Pythonconditionalassignmentoperator对于这样一个简单的问题表示歉意,但是谷歌搜索||=并不是很有帮助;)Python中是否有与Ruby和Perl中的||=语句等效的语句?例如:foo="hey"foo||="what"#assignfooifit'sundefined#fooisstill"hey"bar||="yeah"#baris"yeah"另外,类似这样的东西的通用术语是什么?条件分配是我的第一个猜测,但Wikipediapage跟我想的不太一样。

  4. java - 什么相当于 ruby​​ 的 rack 或 python 的 Java wsgi? - 2

    什么是ruby​​的rack或python的Java的wsgi?还有一个路由库。 最佳答案 来自Python标准PEP333:Bycontrast,althoughJavahasjustasmanywebapplicationframeworksavailable,Java's"servlet"APImakesitpossibleforapplicationswrittenwithanyJavawebapplicationframeworktoruninanywebserverthatsupportstheservletAPI.ht

  5. 华为OD机试用Python实现 -【明明的随机数】 2023Q1A - 2

    华为OD机试题本篇题目:明明的随机数题目输入描述输出描述:示例1输入输出说明代码编写思路最近更新的博客华为od2023|什么是华为od,od薪资待遇,od机试题清单华为OD机试真题大全,用Python解华为机试题|机试宝典【华为OD机试】全流程解析+经验分享,题型分享,防作弊指南华为o

  6. python - 如何读取 MIDI 文件、更改其乐器并将其写回? - 2

    我想解析一个已经存在的.mid文件,改变它的乐器,例如从“acousticgrandpiano”到“violin”,然后将它保存回去或作为另一个.mid文件。根据我在文档中看到的内容,该乐器通过program_change或patch_change指令进行了更改,但我找不到任何在已经存在的MIDI文件中执行此操作的库.他们似乎都只支持从头开始创建的MIDI文件。 最佳答案 MIDIpackage会为您完成此操作,但具体方法取决于midi文件的原始内容。一个MIDI文件由一个或多个音轨组成,每个音轨是十六个channel中任何一个上的

  7. 「Python|Selenium|场景案例」如何定位iframe中的元素? - 2

    本文主要介绍在使用Selenium进行自动化测试或者任务时,对于使用了iframe的页面,如何定位iframe中的元素文章目录场景描述解决方案具体代码场景描述当我们在使用Selenium进行自动化测试的时候,可能会遇到一些界面或者窗体是使用HTML的iframe标签进行承载的。对于iframe中的标签,如果直接查找是无法找到的,会抛出没有找到元素的异常。比如近在咫尺的例子就是,CSDN的登录窗体就是使用的iframe,大家可以尝试通过F12开发者模式查看到的tag_name,class_name,id或者xpath来定位中的页面元素,会抛出NoSuchElementException异常。解决

  8. 动漫制作技巧如何制作动漫视频 - 2

    动漫制作技巧是很多新人想了解的问题,今天小编就来解答与大家分享一下动漫制作流程,为了帮助有兴趣的同学理解,大多数人会选择动漫培训机构,那么今天小编就带大家来看看动漫制作要掌握哪些技巧?一、动漫作品首先完成草图设计和原型制作。设计草图要有目的、有对象、有步骤、要形象、要简单、符合实际。设计图要一致性,以保证制作的顺利进行。二、原型制作是根据设计图纸和制作材料,可以是手绘也可以是3d软件创建。在此步骤中,要注意的问题是色彩和平面布局。三、动漫制作制作完成后,加工成型。完成不同的表现形式后,就要对设计稿进行加工处理,使加工的难易度降低,并得到一些基本准确的概念,以便于后续的大样、准确的尺寸制定。四、

  9. python ffmpeg 使用 pyav 转换 一组图像 到 视频 - 2

    2022/8/4更新支持加入水印水印必须包含透明图像,并且水印图像大小要等于原图像的大小pythonconvert_image_to_video.py-f30-mwatermark.pngim_dirout.mkv2022/6/21更新让命令行参数更加易用新的命令行使用方法pythonconvert_image_to_video.py-f30im_dirout.mkvFFMPEG命令行转换一组JPG图像到视频时,是将这组图像视为MJPG流。我需要转换一组PNG图像到视频,FFMPEG就不认了。pyav内置了ffmpeg库,不需要系统带有ffmpeg工具因此我使用ffmpeg的python包装p

  10. TimeSformer:抛弃CNN的Transformer视频理解框架 - 2

    Transformers开始在视频识别领域的“猪突猛进”,各种改进和魔改层出不穷。由此作者将开启VideoTransformer系列的讲解,本篇主要介绍了FBAI团队的TimeSformer,这也是第一篇使用纯Transformer结构在视频识别上的文章。如果觉得有用,就请点赞、收藏、关注!paper:https://arxiv.org/abs/2102.05095code(offical):https://github.com/facebookresearch/TimeSformeraccept:ICML2021author:FacebookAI一、前言Transformers(VIT)在图

随机推荐