当前位置:   article > 正文

基于百度API的淘宝评论情感分析_百度情感评分

百度情感评分

(1)实验思路

通过百度easydl平台,获取情感倾向分析的密钥,接着基于密钥对封装好的接口发送请求以进行情感倾向分析,并绘制相关柱状图、饼状图对其进行分析,该技术可为为口碑分析、话题监控、舆情分析等应用提供基础技术支持。

(2)实验数据

pinglun.txt

(3)实验步骤

1、获取百度密钥

2、导入实验库

  1. import requests # 导入requests库,用于向服务器发送HTTP请求
  2. import json # 导入json库,用于处理JSON格式数据
  3. import matplotlib.pyplot as plt # 导入matplotlib库,用于绘制和显示图像

3、读取淘宝评论数据集

  1. # 创建一个空列表来保存每一行的内容
  2. content_list = []
  3. # 使用'with'语句打开文件,这样可以确保文件在使用完之后会被正确关闭
  4. with open('pinglun.txt', 'r') as f:
  5. # 使用readlines()方法读取每一行
  6. content_list = f.readlines()

4、对数据集进行处理。这里使用strip()方法将每行内容末尾的换行符去掉,处理完成后打印结果。

  1. # 去掉每行内容末尾的换行符
  2. content_list = [x.strip() for x in content_list]
  3. # 输出结果
  4. print(content_list)

输出结果如下,可见淘宝评论数据集的10条评论内容都以字符串的形式存储在列表里,并且去除了冗余的换行符。

5、由官方文档可知,可以以POST的形式发送请求信息,信息包括请求URL、请求消息头与请求消息体三种。首先设置请求URL,即发送请求的对象。这里将步骤1中所复制的链接赋值到request_url变量中。

  1. API_KEY = "你的API_KEY"
  2. SECRET_KEY = "你的SECRET_KEY"
  3. request_url = "https://aip.baidubce.com/rpc/2.0/nlp/v1/sentiment_classify?charset=&access_token=" + get_access_token()

6、接下来定义请求消息头,指定传输数据的格式和类型。

  1. #设置HTTP头,指定传输数据的格式和类型
  2. headers = {
  3. 'Content-Type': 'application/json',
  4. 'Accept': 'application/json'
  5. }

7、创建一个空列表result,用于保存每次HTTP请求的结果;其次,我们以content_list里的前6条评论为例(可根据需求进行修改),将文本传入请求消息体所需参数“text”;接着发送POST请求,并使用print()语句查看是否请求成功。如响应成功(即HTTP状态码为200),则打印响应的JSON内容,并将这个JSON内容添加到列表result中。

  1. # 保存请求结果
  2. result = []
  3. # 在请求体设置请求参数,包括需要识别的文本信息等
  4. for content in content_list[:6]:
  5. params = json.dumps({"text": content})
  6. #发送post请求
  7. response = requests.post(request_url, data=params, headers=headers)
  8. #查看响应信息
  9. print(response)
  10. #如果HTTP响应成功,则打印响应内容
  11. if response:
  12. print (response.json())
  13. result.append(response.json())

程序输出结果如下,分别对应了6条评论的HTTP响应对象和响应的JSON内容。其中,6个HTTP状态码都是200,表示请求成功;每个状态码后面都接着一个字典,即响应的JSON内容。如“好用,物有所值!”这条评论的分类置信度约为0.999,表示为消极类别的概率约为0.0007,表示为积极类别的概率约为0.9999,情感分类结果为2(正向)。

9、由于接口的返回结果包括请求的文本、分类结果列表、唯一标识码等信息,不方便进行查看,且不能快速获取这些评论中每个类别的数量。因此接下来进行识别结果信息提取及进行可视化,将每条评论的类别进行统计,并进行柱状图与饼图可视化分析。这里首先定义三个变量,分别用于统计负向、中性、正向的评论数量。

  1. # 创建三个变量来统计negative_prob、positive_prob和zhongxing_count的值
  2. negative_probs_count = 0
  3. positive_probs_count = 0
  4. zhongxing_count = 0

10、执行分类结果统计操作。这里首先通过遍历字典中sentiment键的值,来获取情感极性分类的结果,即负向、中性、正向中的一类;接着根据sentiment的值对三类情绪进行数量统计,比如sentiment为0,表示这是一个负向情感的文本,接着获取文本内容、类别和负向情感置信度的标签,并打印结果,最后将负向情感的计数器negative_probs_count加1。

  1. # 遍历result中的每个字典
  2. for re in result:
  3. # 遍历字典中items键的值(一个列表)
  4. for item in re['items']:
  5. # 提取sentiment,即情感极性分类结果
  6. sentiment = item['sentiment']
  7. # 执行分类与统计
  8. if sentiment == 0:
  9. print('文本内容:',re['text'],'类别:负向','置信度:',item['negative_prob'])
  10. negative_probs_count += 1
  11. elif sentiment == 1:
  12. print('文本内容:',re['text'],'类别:中性','置信度:',item['confidence'])
  13. zhongxing_count += 1
  14. else:
  15. print('文本内容:',re['text'],'类别:正向','置信度:',item['positive_prob'])
  16. positive_probs_count += 1
  17. # 输出结果
  18. print('negative_probs_count:', negative_probs_count)
  19. print('zhongxing_count:',zhongxing_count)
  20. print('positive_probs_count:', positive_probs_count)

程序输出结果如下,经过提取后,可以看出识别的结果更加直观了。其中,negative_probs_count:1表示抽取的6条评论中有1条负向情感,zhongxing_count:0表示抽取的6条评论中有0条中性情感,positive_probs_count:5表示抽取的6条评论中有5条正向情感。

11、使用柱状图分析淘宝评论数据。

  1. # 使用柱状图分析电商评论情感倾向数据
  2. plt.bar(['negative_probs','positive_probs'], [negative_probs_count,positive_probs_count]) # 执行绘图操作
  3. plt.xlabel('label') # x轴的标签
  4. plt.ylabel('Number') # y轴的标签
  5. plt.title('Category statistics') # 图表标题
  6. plt.show() # 显示图表

程序输出结果如图所示,可见negative_probs的显示结果在图表左侧,positive_probs的显示结果在图表右侧。

12、使用饼状图分析淘宝评论数据。这里我们使用matplotlib库中的pie函数绘制饼状图,同样地,首先也是先向pie函数中传入x,y轴的数据,接着设置autopct参数为“%1.1f%%”用于在饼图中显示每个扇形的百分比,保留一位小数;最后设置图表标题,并使用show方法显示饼状图。

  1. # 使用饼状图分析电商评论情感倾向数据
  2. plt.pie([negative_probs_count,positive_probs_count], labels=['negative_probs','positive_probs'], autopct='%1.1f%%') # 执行绘图操作
  3. plt.title('Category statistics') # 图表标题
  4. plt.show() # 显示图表

程序输出结果如图所示,可见6条评价中,持积极情绪的评价占比为83.3%,负面情绪评价占比为16.7%。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/IT小白/article/detail/359490
推荐阅读
相关标签
  

闽ICP备14008679号