天津网站建设首选 津坤科技,宿豫建设局网站,青岛苍南网站建设,为企业提供网站建设服务#x1f935;♂️ 个人主页#xff1a;艾派森的个人主页 ✍#x1f3fb;作者简介#xff1a;Python学习者 #x1f40b; 希望大家多多支持#xff0c;我们一起进步#xff01;#x1f604; 如果文章对你有帮助的话#xff0c; 欢迎评论 #x1f4ac;点赞#x1f4… ♂️ 个人主页艾派森的个人主页 ✍作者简介Python学习者 希望大家多多支持我们一起进步 如果文章对你有帮助的话 欢迎评论 点赞 收藏 加关注 目录
前言
一、研究背景
二、技术原理
三、获取数据
四、词云图分析
五、情感分析
六、往期推荐 前言 最近参加了腾讯云Cloud Studio的作品评选本次实验的爬虫代码点击链接查看https://club.cloudstudio.net/a/12010256262184960对大家有帮助的话欢迎大家点个赞和Fork十分感谢 一、研究背景 随着互联网和社交媒体的发展用户评论成为了消费者表达自己意见和情感的主要途径之一。对于企业来说深入了解用户对其产品或服务的看法可以帮助他们更好地了解市场需求、产品改进的方向以及消费者的情感倾向。因此对用户评论进行分析已经成为了市场研究和商业决策的重要手段之一。 完美日记作为一家知名的化妆品品牌其在社交媒体和电商平台上拥有大量的用户评论。通过对完美日记的用户评论进行分析可以揭示出以下几个方面的信息 消费者满意度 通过情感分析可以了解消费者对完美日记产品的满意度。情感分析可以判断评论中的情感倾向如正面、负面或中性从而判断消费者对产品的态度。 产品特点 用户评论中可能提到产品的不同特点、功能和效果。通过词云图可以直观地了解哪些特点被频繁提及从而了解产品的优势和劣势。 市场趋势 对用户评论进行分析可以发现市场的趋势和消费者的需求。例如如果多数评论中提到某种产品特点说明这个特点可能是当前市场上消费者关注的焦点。 品牌声誉 用户评论不仅关注产品还可能涉及到品牌的声誉、客服服务等方面。通过分析评论中对品牌的评价可以了解品牌在消费者心目中的形象。 竞争分析 通过比较完美日记与竞争对手的用户评论可以了解不同品牌的优势和劣势为市场竞争和战略制定提供依据。 因此基于Python爬虫获取完美日记用户评论结合词云图和情感分析技术可以深入挖掘用户的情感、意见和需求为完美日记品牌的市场营销、产品改进以及品牌管理提供有价值的信息支持。这种综合分析方法有助于企业更好地了解市场动态优化产品策略提升品牌价值。
二、技术原理 Python爬虫 爬虫是一种自动化工具用于从网页上获取数据。通过Python编写爬虫脚本可以模拟人类浏览器行为访问目标网站抓取用户评论数据。常用的Python爬虫库包括Requests和Beautiful Soup它们可以帮助获取网页内容并解析HTML结构。 词云图生成 词云图是一种图形化展示文本数据中关键词频率的方式。制作词云图需要对文本进行预处理包括分词、去除停用词如“的”、“是”等常见词语、统计词频等。然后根据词频将关键词按照大小不同进行排列生成词云图。Python中的词云库如WordCloud可以帮助生成词云图。 情感分析 情感分析是一种自然语言处理技术用于判断文本中表达的情感倾向如积极、消极或中性。情感分析可以通过机器学习模型如基于深度学习的模型或传统的文本分类算法来训练并判断文本情感。这些模型会根据文本的词汇、语法结构以及上下文来判断情感。 在本次实验中爬虫技术用于获取完美日记的用户评论数据词云图技术用于可视化评论中的关键词频率情感分析技术用于判断评论的情感倾向。结合这些技术可以从大量的评论数据中提取出有关产品、品牌和消费者情感的有价值信息。
本次实验技术工具
Python版本:3.9
代码编辑器jupyter notebook
三、获取数据
本次实验的目标是获取某东上关于完美日记的用户评论数据打开京东官网来到完美日记官方旗舰店 打开商品评论并使用开发者工具进行抓包分析找到返回用户评论的接口并确定关键参数最后使用requests库进行模拟请求将返回的数据进行解析提取即可。 分析过程其实不难学过爬虫的话都知道完整的代码及使用教程都在文章开头的链接里。
代码运行之后只需要输入你要爬取的商品ID和要爬取的页数即可 商品ID就是商品详情页网址最后的那串数字 四、词云图分析
首先读取我们刚爬取的完美日记评论数据
import pandas as pd
with open(JD_comment_100055983355.txt)as f:comment_list []for comment in f.readlines():comment comment.replace(\n,)comment_list.append(comment)df pd.DataFrame(datacomment_list,columns[comment])
df 接着自定义我们的画词云图函数
import jieba
import collections
import re
import stylecloud
from PIL import Imagedef draw_WorldCloud(df,pic_name,colorwhite):data .join([item for item in df])# 文本预处理 去除一些无用的字符只提取出中文出来new_data re.findall([\u4e00-\u9fa5], data, re.S)new_data .join(new_data)# 文本分词seg_list_exact jieba.cut(new_data)result_list []with open(停用词库.txt, encodingutf-8) as f: #可根据需要打开停用词库然后加上不想显示的词语con f.readlines()stop_words set()for i in con:i i.replace(\n, ) # 去掉读取每一行数据的\nstop_words.add(i)for word in seg_list_exact:if word not in stop_words and len(word) 1:result_list.append(word)word_counts collections.Counter(result_list)# 词频统计获取前100最高频的词word_counts_top word_counts.most_common(100)print(word_counts_top)# 绘制词云图stylecloud.gen_stylecloud(text .join(result_list), # 提取500个词进行绘图collocationsFalse, # 是否包括两个单词的搭配二字组font_pathrC:\Windows\Fonts\msyh.ttc, #设置字体参考位置为 C:\Windows\Fonts\ 根据里面的字体编号来设置size800, # stylecloud 的大小palettecartocolors.qualitative.Bold_7, # 调色板调色网址 https://jiffyclub.github.io/palettable/background_colorcolor, # 背景颜色icon_namefas fa-cloud, # 形状的图标名称 蒙版网址https://fontawesome.com/icons?dgalleryp2cchat,shopping,travelmfreegradienthorizontal, # 梯度方向max_words2000, # stylecloud 可包含的最大单词数max_font_size150, # stylecloud 中的最大字号stopwordsTrue, # 布尔值用于筛除常见禁用词output_namef{pic_name}.png) # 输出图片# 打开图片展示imgImage.open(f{pic_name}.png)img.show()
调用函数作图
draw_WorldCloud(df[comment],完美日记用户评论词云图)
[(喜欢, 146), (颜色, 140), (产品, 112), (效果, 98), (不错, 91), (包装, 91), (口红, 88), (好看, 76), (质感, 75), (适合, 64), (女朋友, 58), (滋润, 52), (持久, 48), (完美, 47), (特别, 45), (肤色, 45), (精致, 44), (朋友, 42), (礼物, 40), (礼盒, 38), (感觉, 37), (日记, 36), (满意, 32), (物流, 30), (值得, 28), (超级, 26), (送给, 26), (京东, 26), (特色, 26), (质量, 25), (购买, 22), (快递, 20), (速度, 20), (推荐, 20), (买来, 19), (很快, 19), (收到, 18), (上档次, 16), (高级, 16), (色号, 16), (盒子, 16), (眼影, 15), (高端, 15), (性价比, 15), (购物, 15), (老婆, 14), (颜值, 14), (精美, 14), (看着, 13), (很漂亮, 13), (送人, 13), (日常, 13), (搭配, 13), (打开, 13), (情人节, 13), (整体, 12), (价格, 12), (设计, 11), (希望, 11), (质地, 11), (合适, 11), (下次, 11), (卖家, 11), (看起来, 11), (活动, 10), (挺不错, 10), (客服, 10), (大气, 10), (漂亮, 10), (外观, 10), (高大, 10), (生日礼物, 9), (红色, 9), (实惠, 9), (很棒, 9), (还会, 9), (细腻, 9), (掉色, 9), (服务态度, 9), (品牌, 9), (发货, 9), (宝贝, 9), (体验, 9), (做工, 9), (拿到, 9), (三种, 9), (第二天, 8), (信赖, 8), (媳妇, 8), (划算, 8), (显白, 8), (三个, 8), (小巧, 8), (节日, 8), (来说, 8), (一支, 8), (粉色, 7), (好评, 7), (犹豫, 7), (简直, 7)]从词云图可以发现完美日记是一款口红产品在颜色、包装、效果上有着不错的口碑且这款产品多为送女朋友的礼物。
五、情感分析 情感分析我们使用到是SnowNLP模块SnowNLP是一个用于中文文本情感分析的Python库它可以帮助你判断中文文本的情感倾向即判断文本是积极的、消极的还是中性的。得到的分数表示文本的情感倾向越接近1表示积极情感越接近0表示消极情感。
代码如下
#加载情感分析模块
from snownlp import SnowNLP
import matplotlib.pyplot as plt# 遍历每条评论进行预测
values[SnowNLP(i).sentiments for i in df[comment]]
#输出积极的概率大于0.5积极的小于0.5消极的
#myval保存预测值
myval[]
good0
mid0
bad0
for i in values:if (i0.6):myval.append(积极)goodgood1elif 0.2i0.6:myval.append(中性)mid1else:myval.append(消极)badbad1
df[预测值]values
df[评价类别]myval
df.head() 接着做出情感分析的可视化图
rategood/(goodbadmid)
print(好评率,%.f%% % (rate * 100)) #格式化为百分比
#作图
yvalues
plt.rc(font, familySimHei, size10)
plt.plot(y, markero, mecr, mfcw,labelu评价分值)
plt.xlabel(用户)
plt.ylabel(评价分值)
# 让图例生效
plt.legend()
#添加标题
plt.title(评论情感分析,familySimHei,size14,colorblue)
plt.show() 从图中可以看出绝大多数的评论情感得分都是在1附近但是我们不知道消极、中性、积极评论的占比于是我们做出饼图进行展示分析
y df[评价类别].value_counts().values.tolist()
plt.pie(y,labels[积极,中性,消极], # 设置饼图标签colors[#d5695d, #5d8ca8, #65a479], # 设置饼图颜色autopct%.2f%%, # 格式化输出百分比)
plt.show() 可以看出积极评论占比95%消极评论仅占2%可见该款产品的口碑非常不错
六、往期推荐
基于爬虫词云图Kmeans聚类LDA主题分析社会网络语义分析对大唐不夜城用户评论进行分析
基于Tomotopy构建LDA主题模型附案例实战
用Python爬取电影数据并可视化分析
基于TF-IDFKMeans聚类算法构建中文文本分类模型附案例实战
文本分析-使用jieba库进行中文分词和去除停用词附案例实战
基于sklearn实现LDA主题模型附实战案例
数据分析案例-文本挖掘与中文文本的统计分析
数据分析实例-获取某宝评论数据做词云图可视化
数据分析案例-对某宝用户评论做情感分析
文本分析-使用jieba库实现TF-IDF算法提取关键词
ROSTEA软件下载及情感分析详细操作教程附网盘链接
SnowNLP使用自定义语料进行模型训练情感分析