文章目录

  • 前言
  • 准备工作
  • 总体思路
  • 开始动手
    • Python 爬取热门视频评论信息
    • Baidu AI 分析所得评论的情感信息
    • Excel 自动写入所有评论情感信息
    • 主函数(开始执行)
  • 运行结果
  • Excel文件结果
  • 小结

前言

最近在研究自然语言处理NLP相关知识概念,学起来总是很痛苦,没有头绪,无聊。歇息片刻,便想找个有趣的项目练练手,提升下兴趣,便开始了这个小项目。

准备工作

一些基础

  1. 申请一个百度AI开放平台的账号,并免费开通自然语言处理API接口。(最重要的功能!!!暂先使用百度)
  2. 具备基础的python语言基础及爬虫基础。

需要安装的第三方依赖(已安装过的无需再装)

  1. pip install baidu-aip 用于使用百度AI服务
  2. pip install requests 用于发送爬虫请求
  3. pip install xlwt 用于写入Excel表格评论分析结果

总体思路

我们可以分为以下三个步骤进行评论情感分析:

  1. 首先,我们需要使用python爬虫爬取热门视频的大量评论内容,并存放起来。
  2. 其次,当我们已经得到大量评论内容,就可以直接调用百度AI的服务进行评论情感分析,获得分析结果,再次存放起来。
  3. 最后,将评论情感分析结果写入Excel表格中,方便统计查阅。

开始动手

这次我选择爬取一个某站上一个的热门视频【iPhone14将与华为Mate50同期发布】(不让上链接,小伙伴可自行搜索),并分析评论区用户们的具体评论情感。

Python 爬取热门视频评论信息

请求地址因为涉及到版权问题,审核无法通过,所以代码里面就不贴上去了,需要的小伙伴可以与我联系。

'''
获取视频下方所有的评论信息及评论作者
'''
def getAllComments():# Step1:设置请求路径 url、存放评论及作者的评论列表url = '***********************************'comments_list = []#循环请求,爬取大量视频评论for i in range(1, 10):#Step2: 设置请求参数param = {'csrf': '4b88992977611823b137a5a003a56075','mode': '3','next': str(i),'oid': '557078008','plat': '1','type': '1'}#Setp3: 使用UA(User)伪装策略进行请求发送response = requests.get(url=url, params=param, headers=header)#Step4: 获取响应信息,信息格式为json格式的数据,获取响应信息内的所有评论信息data = response.json()['data']['replies']#Step5: 遍历所有评论信息,打印输出并存放到评论列表中for comments in data:#打印输出print(comments['member']['uname'] + ':\t' + comments['content']['message'])#封装数据,存放列表comments_list.append({'user':comments['member']['uname'],         #存放评论用户'comment':comments['content']['message']    #存放评论内容})#每间隔0.1s爬取一次,避免特定反爬虫策略time.sleep(0.1)return comments_list
Baidu AI 分析所得评论的情感信息
from aip import AipNlp""" 你的 APPID AK SK """
# 如不知如何获得请看我这篇文章:
# https://blog.csdn.net/weixin_43479947/article/details/124256347?spm=1001.2014.3001.5502
APP_ID = '**********'
API_KEY = '**********'
SECRET_KEY = '**********'client = AipNlp(APP_ID, API_KEY, SECRET_KEY)'''
获取所有的评论信息及评论情感预测信息
'''
def getAllSentiments(comments_list):#存放所有评论及情感预测信息的列表comment_sentiments = []#循环遍历所有评论,并预测评论的情感for comment in comments_list:#异常处理,防止评论出现特殊字符导致程序异常终止try:#使用 Baidu AI的NLP自然语言处理接口.进行评论情感分析,并返回分析结果sentiment_result = client.sentimentClassify(comment['comment'])['items'][0]#以下为 sentiment_result 内的参数属性# confidence---->代表可信度# negative_prob---->代表消极情绪概率# positive_prob---->代表积极情绪概率# sentiment---->代表情绪识别结果,0为消极,1为中性,2为积极#封装评论及预测,并添加到预测列表中comment_sentiment = {'user': comment['user'],                #评论用户'comment': comment['comment'],          #评论内容#format()函数统一将 小数数据 转化为 百分比数据'positive_prob': format(sentiment_result['positive_prob'], '.2%'),      #情绪积极概率'negative_prob': format(sentiment_result['negative_prob'], '.2%'),      #情绪消极概率'sentiment': sentiment_result['sentiment'],         #情绪结果'confidence': format(sentiment_result['confidence'], '.2%'),        #可信度概率}print(comment_sentiment)                #输出封装好的数据comment_sentiments.append(comment_sentiment)        #添加到情绪列表之中except Exception:passtime.sleep(0.5)                 #由于情绪识别请求存在QPS限制,故每0.5s请求一次return comment_sentiments           #返回所有情绪结果
Excel 自动写入所有评论情感信息
'''
信息保存至Excel表格
'''
def saveExcel(comment_sentiments):#Step1: 创建excel表格类型文件,即工作薄对象,编码格式为 utf-8workbook = xlwt.Workbook(encoding='utf-8')#Step2: 创建工作表对象worksheet = workbook.add_sheet('sentiment analysis')#Step3: 设置表头信息worksheet.write(0, 0, '评论用户')worksheet.write(0, 1, '评论内容')worksheet.write(0, 2, '积极概率')worksheet.write(0, 3, '消极概率')worksheet.write(0, 4, '情绪结果(0消极、1中性、2积极)')worksheet.write(0, 5, '可信度')#Step4: 将所有的评论情绪信息写入Excel表格之中for i in range(len(comment_sentiments)):worksheet.write(i+1, 0, comment_sentiments[i]['user'])worksheet.write(i+1, 1, comment_sentiments[i]['comment'])worksheet.write(i+1, 2, comment_sentiments[i]['positive_prob'])worksheet.write(i+1, 3, comment_sentiments[i]['negative_prob'])worksheet.write(i+1, 4, comment_sentiments[i]['sentiment'])worksheet.write(i+1, 5, comment_sentiments[i]['confidence'])#Step5: 保存Excel文件至本地workbook.save('./excel/sentiments.xls')#打印保存信息print('Save Successfully!')
主函数(开始执行)
'''
某站视频【iPhone14将与华为Mate50同期发布】
小伙伴们可以自行搜索哦
'''
if __name__ == '__main__':comments_list = getAllComments()comment_sentiments = getAllSentiments(comments_list)saveExcel(comment_sentiments)

运行结果


Excel文件结果


小结

其实做出来心里还是很激动的哈哈哈,但是最重要的功能情绪分析还是百度团队的成果,希望以后自己也能够为AI技术贡献自己的成果,加油!

Python实现某站热门评论情感分析----NLP自然语言处理相关推荐

  1. python和苹果_苹果手机评论情感分析(附python源码和评论数据)

    原标题:苹果手机评论情感分析(附python源码和评论数据) 首先抓取网页上的数据,每一页十条评论,生成为一个txt文件. 数据链接 回复公众号 datadw 关键字"苹果"获取. ...

  2. python 获取csv的列数_《极限挑战》弹幕及评论情感分析(Python)

    一.数据说明 本次实验用到的数据是前三季<极限挑战>第一期视频的评论数据和弹幕数据. 二.数据来源 本次实验所有数据均从bilibili爬取和处理得到. (1)视频来源 评论和弹幕数据来源 ...

  3. 【人工智能毕设之基于Python+flask+bilstm的评论情感分析系统-哔哩哔哩】 https://b23.tv/QU56eTl

    [人工智能毕设之基于Python+flask+bilstm的评论情感分析系统-哔哩哔哩] https://b23.tv/QU56eTl https://b23.tv/QU56eTl

  4. python微博评论情感分析_基于Python的微博情感分析系统设计

    2019 年第 6 期 信息与电脑 China Computer & Communication 软件开发与应用 基于 Python 的微博情感分析系统设计 王 欣 周文龙 (武汉工程大学邮电 ...

  5. python电影评论情感分析_20行Tensorflow代码实现电影评论情感分析

    原标题:20行Tensorflow代码实现电影评论情感分析 背景 情感分析有很多的应用场景,比如做一个电商网站,卖家需要时刻关心用户对于商品的评论是否是正面的.再比如做一个电影的宣传和策划,电影在键盘 ...

  6. 【Python自然语言处理】使用逻辑回归(logistic)对电影评论情感分析实战(超详细 附源码)

    需要源码和数据集请点赞关注收藏后评论区留言私信~~~ 一.舆情分析 舆情分析很多情况下涉及到用户的情感分析,或者亦称为观点挖掘,是指用自然语言处理技术.文本挖掘以及计算机语言学等方法来正确识别和提取文 ...

  7. python评论情感分析nltk_基于 Python 和 NLTK 的推特情感分析

    基于 Python 和 NLTK 的推特情感分析 作者:宋彤彤 1. 导读 NLTK 是 Python 的一个自然语言处理模块,其中实现了朴素贝叶斯分类算法.这次 Mo 来教大家如何通过 python ...

  8. 【自然语言处理(NLP)】基于FNN网络的电影评论情感分析

    [自然语言处理(NLP)]基于FNN网络的电影评论情感分析 作者简介:在校大学生一枚,华为云享专家,阿里云专家博主,腾云先锋(TDP)成员,云曦智划项目总负责人,全国高等学校计算机教学与产业实践资源建 ...

  9. 商品评论情感分析——基于商品评论建立的产品综合评价模型(1)

    商品评论情感分析--基于用户评论建立的产品综合评价模型(1) 1.背景 1.1问题分析 2.数据预处理 2.1删除无关数据 2.2文本去重 3.情感分析 4.LDA主题模型 4.1评论文本分词 4.2 ...

最新文章

  1. python3.x与python2.x的区别汇总
  2. 用计算机控制检测实时温度,温度实时测量及控制系统.doc
  3. [长流支流]的专栏--《金质打印通》、《WebMIS.NET快速开发平台》,MIS/ERP开发利器...
  4. pearson相关系数_Pearson(皮尔逊)相关系数
  5. linux防火墙配置连接atlas,ATLAS在ubuntu下的安装使用
  6. 如何解决ajax跨域问题
  7. apache2.2.15与PHP5.3.3安装设置完成后,apache启动失败
  8. Python数据分析模块 | pandas做数据分析(三):统计相关函数
  9. 4004-基于邻接矩阵的新顶点的增加(C++,附思路)
  10. plsql连mysql数据库12541_启动plSql时候报ORA-12541:TNS:tns:无法解析指定的连接标识符的解决办法(org11)...
  11. matlab学习笔记(4)
  12. FastStone Capture(FSCapture) 注册码
  13. 中国顶级富豪沉浮录:财富常青树之谜与大败局规律
  14. 计算机硬件的组装实践,论文-计算机硬件组装实践.doc
  15. 87个电影调色PR预设包
  16. 数据挖掘之监督学习篇
  17. java web统计报表_用Java在Web页面上输出统计图 统计报表
  18. java--吸血鬼数的判断
  19. 英伟达显卡玩CF怎么提高帧数
  20. 分时线的9代表什么_A股市场:股票集合竞价时涨停,9点20分主力却突然撤单,代表着什么?...

热门文章

  1. 华为交换机DHCP配置
  2. windows系统sysperp封装提示发生致命错误解决方法
  3. 找出第一个比左边数都大,比右边数都小的数的索引和值
  4. 01-python基本数据类型
  5. 跟着团子学SAP PS:项目报价解决方案(上)
  6. mui使用百度语音合成来制作文字转语音来播放
  7. css 圆形背景icon_css3画实心圆和圆角的方法
  8. 《红豆——我的母亲》
  9. Minkowski sum
  10. CSS的12中水平垂直居中方法