现如今各种APP、微信订阅号、微博、购物网站等网站都允许用户发表一些个人看法、意见、态度、评价、立场等信息。针对这些数据,我们可以利用情感分析技术对其进行分析,总结出大量的有价值信息。例如对商品评论的分析,可以了解用户对商品的满意度,进而改进产品;通过对一个人分布内容的分析,了解他的情绪变化,哪种情绪多,哪种情绪少,进而分析他的性格。怎样知道哪些评论是正面的,哪些评论是负面的呢?正面评价的概率是多少呢?
利用python的第三方模块SnowNLP可以实现对评论内容的情感分析预测,SnowNLP可以方便的处理中文文本内容,如中文分词、词性标注、情感分析、文本分类、提取文本关键词、文本相似度计算等。大概大于等于0.5,可以判断为正面评价——积极情感,小于0.5,可以判断为负面评价——消极情感。
下面分析一组京东上某产品的评论数据并生成折线图:
部分源数据:
实现过程:
#加载情感分析模块 from snownlp import SnowNLP #from snownlp import sentiment import pandas as pd import matplotlib.pyplot as plt #导入样例数据 aa ='F:\\python入门\\python编程锦囊\\Code(实例源码及使用说明)\\Code(实例源码及使用说明)\\Code(实例源码及使用说明)\\09\\data\\京东评论.xls' #读取文本数据 df=pd.read_excel(aa) #提取所有数据 df1=df.iloc[:,3] print('将提取的数据打印出来:\n',df1) #遍历每条评论进行预测 values=[SnowNLP(i).sentiments for i in df1] #输出积极的概率,大于0.5积极的,小于0.5消极的 #myval保存预测值 myval=[] good=0 bad=0 for i in values: if (i>=0.5): myval.append("正面") good=good+1 else: myval.append("负面") bad=bad+1 df['预测值']=values df['评价类别']=myval #将结果输出到Excel df.to_excel('F:\\python入门\\python编程锦囊\\Code(实例源码及使用说明)\\Code(实例源码及使用说明)\\Code(实例源码及使用说明)\\09\\data\\result2.xls') rate=good/(good+bad) print('好评率','%.f%%' % (rate * 100)) #格式化为百分比 #作图 y=values plt.rc('font', family='SimHei', size=10) plt.plot(y, marker='o', mec='r', mfc='w',label=u'评价分值') plt.xlabel('用户') plt.ylabel('评价分值') # 让图例生效 plt.legend() #添加标题 plt.title('京东评论情感分析',family='SimHei',size=14,color='blue') plt.show()
Excel结果:
作图的结果:
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。
免责声明:本站文章均来自网站采集或用户投稿,网站不提供任何软件下载或自行开发的软件!
如有用户或公司发现本站内容信息存在侵权行为,请邮件告知! 858582#qq.com
白云城资源网 Copyright www.dyhadc.com
暂无“Python实现爬取并分析电商评论”评论...
更新日志
2024年12月25日
2024年12月25日
- 小骆驼-《草原狼2(蓝光CD)》[原抓WAV+CUE]
- 群星《欢迎来到我身边 电影原声专辑》[320K/MP3][105.02MB]
- 群星《欢迎来到我身边 电影原声专辑》[FLAC/分轨][480.9MB]
- 雷婷《梦里蓝天HQⅡ》 2023头版限量编号低速原抓[WAV+CUE][463M]
- 群星《2024好听新歌42》AI调整音效【WAV分轨】
- 王思雨-《思念陪着鸿雁飞》WAV
- 王思雨《喜马拉雅HQ》头版限量编号[WAV+CUE]
- 李健《无时无刻》[WAV+CUE][590M]
- 陈奕迅《酝酿》[WAV分轨][502M]
- 卓依婷《化蝶》2CD[WAV+CUE][1.1G]
- 群星《吉他王(黑胶CD)》[WAV+CUE]
- 齐秦《穿乐(穿越)》[WAV+CUE]
- 发烧珍品《数位CD音响测试-动向效果(九)》【WAV+CUE】
- 邝美云《邝美云精装歌集》[DSF][1.6G]
- 吕方《爱一回伤一回》[WAV+CUE][454M]