【情感打分+情感判定+词云图】python情感分析李子柒频道视频热门英文评论
目录
一、事件背景
二、python代码讲解
三、同步讲解视频
四、获取python源码文件
一、事件背景
今天是2021.12.2日,距离李子柒断更已经4个多月了,这是我在YouTube李子柒油管频道上,观看李子柒2021年7月14日上传的最后一条视频,我录制了视频下方的来自全世界各国网友的评论,全世界的网友们集体期待李子柒回归,瞬间泪奔。
知乎视频 - 李子柒频道视频热门评论
针对全世界网友的热门评论,怎么分析出网友的评论态度和舆论导向呢?于是我试着用python做了情感分析,得出了一些舆情导向的结论。
二、python代码讲解
下面,通过python代码(部分核心代码)逐一分解,这个情感分析是怎样实现的:
首先,导入需要的库:
import pandas as pd # 数据分析库from textblob import TextBlob # 英文情感分析库import matplotlib.pyplot as plt # 画图from wordcloud import WordCloud # 绘制词云图from wordcloud import ImageColorGeneratorfrom PIL import Imageimport numpy as np
然后,通过pandas读取excel评论数据(爬虫代码不做讲解,对爬虫代码感兴趣的小伙伴可以私聊我哦)
file = "李子柒评论.xlsx"df = pd.read_excel(file, usecols=[1, 2, 3, 4, 5]) #读取评论数据v_cmt_list = df['text'].values.tolist() # 把评论字段转换为listprint('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_listdf['分析结果'] = tag_listdf.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)这句代码,能够根据原始图片颜色生成词云图颜色。细心的小伙伴应该能看出来,词云图的颜色配比和原始图片的颜色配比很接近了。
三、同步讲解视频
讲解视频:
3分钟讲解用python代码,情感分析李子柒油管频道评论
四、获取python源码文件
爱学习的小伙伴,想获取完整python代码文件,关注我的微信公众号"老男孩的平凡之路",后台回复"李子柒情感分析",即可获取完整python源码及结果文件。点击链接直达↓
【Python情感分析】用python情感分析李子柒频道视频热门评论一、事件背景今天是2021.12.2日(日期没错,转自马哥知乎往期文章),距离李子柒断更已经4个多月了,这是https://mp.weixin.qq.com/s?__biz=MzU5MjQ2MzI0Nw==&mid=2247484565&idx=1&sn=ffd0f5e69a490f3fcf82109ea637b721&chksm=fe1e1075c9699963af56beda45cc010a1b515f87aa68a6443878a8e575e6ca57b53f4b449475&payreadticket=HLFBI00L_inc8Ul4LG_PKeZ9lkYuDEDLi03J5hjohpGC_by7jTbbayE1YtcMmWfrWKtLd7Y#rd
我是马哥,全网累计粉丝上万,欢迎一起交流python技术。
各平台搜索“马哥python说”:知乎、哔哩哔哩、小红书、新浪微博。