赞
踩
将代码中的token值改为上一篇得到的Access_token值,即可;该值的时间期限约是一个月,一个月之后需要重新获取Access_token值,获取方法与之前相同。
代码示例:
import re import requests import json # 将text按照lenth长度分为不同的几段 def cut_text(text, lenth): textArr = re.findall('.{' + str(lenth) + '}', text) textArr.append(text[(len(textArr) * lenth):]) return textArr # 返回多段值 def get_emotion( data): # 情感分析 # 定义百度API情感分析的token值和URL值 token = '24.493282d99e2b2dc2a97bc1b91f02e95c.2592000.1592913393.282335-19580524' url = 'https://aip.baidubce.com/rpc/2.0/nlp/v1/sentiment_classify?charset=UTF-8&access_token={}'.format(token) # 百度情感分析API的上限是2048字节,因此判断文章字节数小于2048,则直接调用 if (len(data.encode()) < 2048): new_each = { 'text': data # 将文本数据保存在变量new_each中,data的数据类型为string } new_each = json.dumps(new_each) res = requests.post(url, data=new_each) # 利用URL请求百度情感分析API # print("content: ", res.content) res_text = res.text # 保存分析得到的结果,以string格式保存 result = res_text.find('items') # 查找得到的结果中是否有items这一项 positive = 1 if (result != -1): # 如果结果不等于-1,则说明存在items这一项 json_data = json.loads(res.text) negative = (json_data['items'][0]['negative_prob']) # 得到消极指数值 positive = (json_data['items'][0]['positive_prob']) # 得到积极指数值 print("positive:",positive) print("negative:",negative) # print(positive) if (positive > negative): # 如果积极大于消极,则返回2 return 2 elif (positive == negative): # 如果消极等于积极,则返回1 return 1 else: return 0 # 否则,返回0 else: return 1 else: data = cut_text(data, 1500) # 如果文章字节长度大于1500,则切分 # print(data) sum_positive = 0.0 # 定义积极指数值总合 sum_negative = 0.0 # 定义消极指数值总和 for each in data: # 遍历每一段文字 # print(each) new_each = { 'text': each # 将文本数据保存在变量new_each中 } new_each = json.dumps(new_each) res = requests.post(url, data=new_each) # 利用URL请求百度情感分析API # print("content: ", res.content) res_text = res.text # 保存分析得到的结果,以string格式保存 result = res_text.find('items') # 查找得到的结果中是否有items这一项 if (result != -1): json_data = json.loads(res.text) # 如果结果不等于-1,则说明存在items这一项 positive = (json_data['items'][0]['positive_prob']) # 得到积极指数值 negative = (json_data['items'][0]['negative_prob']) # 得到消极指数值 sum_positive = sum_positive + positive # 积极指数值加和 sum_negative = sum_negative + negative # 消极指数值加和 # print(positive) print(sum_positive) print(sum_negative) if (sum_positive > sum_negative): # 如果积极大于消极,则返回2 return 2 elif (sum_positive == sum_negative): # 如果消极等于于积极,则返回1 return 1 else: return 0 # 否则,返回0 def main(): txt1 = "你好优秀" txt2 = "难过!" print("txt1测试结果:",get_emotion(txt1)) print("txt2测试结果:",get_emotion(txt2)) if __name__ == "__main__": main()
代码运行结果 :
2 - - - 表示信息偏向积极
1 - - - 表示信息积极和消息值接近
0 - - - 表示信息偏向消极
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。