@[TOC]

# 1.准备工作

1.注册百度账号,登录百度智能云,点击总览选择自然语言处理,创建应用(创建选项认真阅读,填写)

创建好应用会生成相应的AppID API Key  Secret Key

2.要调用百度API,就要获得权限,利用获取到的API Key  Secret Key去获取Access Token

获取的地址

https://aip.baidubce.com/oauth/2.0/token?grant_type=client_credentials&client_id=API key&client_secret=Secret Key&

访问这个地址,获得Access Token(但是Access Token 有一个有效期 超过有效期则调用api将会不成功)

expires_in:Access Token的有效期(秒为单位,一般为1个月)

总结:要调用API 需要a登录--b创建应用--c获得API Key 和Secret Key--d访问授权地址获得Access Token

# 2.调用API测试(简单的例子测试)

利用python调用百度api测试(pyhon直接官网下载,编辑器使用的是其自带的编辑器:IDLE)

做最简单的调用:保存Access Token调用百度API

情感倾向分析:

HTTP方法: POST 请求URL: https://aip.baidubce.com/rpc/2.0/nlp/v1/sentiment_classify

参数:access_token(通过API Key和Secret Key获取的access_token)

最简单的例子:可以直接使用(编辑器:IDLE):

import re
import requests
import json
def get_emotion( data):# 定义百度API情感分析的token值和URL值token = '24.bcc989b57db903cc1189346275b7a372.2592000.1604971755.282335-22803254' url = 'https://aip.baidubce.com/rpc/2.0/nlp/v1/sentiment_classify?charset=UTF-8&access_token={}'.format(token)new_each = {'text': data  } # 将文本数据保存在变量new_each中,data的数据类型为stringnew_each = json.dumps(new_each)res=requests.post(url,data=new_each) # 利用URL请求百度情感分析APIres_text = res.text  # 保存分析得到的结果,以string格式保存print("content: ", res_text)result = res_text.find('items')  # 查找得到的结果中是否有items这一项positive = 1if (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)if (positive > negative):  # 如果积极大于消极,则返回2return 2elif (positive == negative):  # 如果消极等于积极,则返回1return 1else:return 0  # 否则,返回0else:return 1def main():txt1="有些时候,宇宙似乎是有意使一些事情变得如此有趣。科学家们发现了一个“π行星”,它的大小与我们的地球相仿,距离我们大约185光年"print("txt1测试结果:",get_emotion(txt1))if __name__  == "__main__":main()

运行的结果:

# 3.进阶API测试(通过网址抓取网页信息分析情感倾向)

百度情感分析API的上限是2048字节,因此判断文章字节数小于2048,则直接调用 若超过限制,则需要将文本分段

通过输入网址,将网页内容筛选出来进行情感倾向分析

import re
import requests
import json
from bs4 import BeautifulSoup
# 将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.bcc989b57db903cc1189346275b7a372.2592000.1604971755.282335-22803254' url = 'https://aip.baidubce.com/rpc/2.0/nlp/v1/sentiment_classify?charset=UTF-8&access_token={}'.format(token)if (len(data.encode()) < 2048):new_each = {'text': data  } # 将文本数据保存在变量new_each中,data的数据类型为stringnew_each = json.dumps(new_each)res=requests.post(url,data=new_each) # 利用URL请求百度情感分析APIres_text = res.text  # 保存分析得到的结果,以string格式保存print("content: ", res_text)result = res_text.find('items')  # 查找得到的结果中是否有items这一项positive = 1if (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)if (positive > negative):  # 如果积极大于消极,则返回2return 2elif (positive == negative):  # 如果消极等于积极,则返回1return 1else:return 0  # 否则,返回0else:return 1else:print("文章切分")data = cut_text(data, 1500)  # 如果文章字节长度大于1500,则切分sum_positive = 0.0  # 定义积极指数值总合sum_negative = 0.0  # 定义消极指数值总和for each in data:  # 遍历每一段文字new_each = {'text': each  # 将文本数据保存在变量new_each中}new_each = json.dumps(new_each)res = requests.post(url, data=new_each)  # 利用URL请求百度情感分析APIres_text = res.text  # 保存分析得到的结果,以string格式保存result = res_text.find('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(sum_positive)print(sum_negative)if (sum_positive > sum_negative):  # 积极 如果积极大于消极,则返回2return 2elif (sum_positive == sum_negative):  # 中性 如果消极等于于积极,则返回1return 1else:return 0  # 消极,返回0
def get_html(url):headers = {'User-Agent':'Mozilla/5.0(Macintosh; Intel Mac OS X 10_11_4)\AppleWebKit/537.36(KHTML, like Gecko) Chrome/52 .0.2743. 116 Safari/537.36'}     #模拟浏览器访问response = requests.get(url,headers = headers)       #请求访问网站html = response.text       #获取网页源码soup = BeautifulSoup(html, 'lxml')   #初始化BeautifulSoup库,并设置解析器a=soup.select('p')text=""for i in a:text=text+i.textreturn textdef main():txt1=get_html("https://baijiahao.baidu.com/s?id=1680186652532987655&wfr=spider&for=pc")print(txt1)print("txt1测试结果:",get_emotion(txt1))if __name__  == "__main__":main()

# 4.连接数据库 对数据库进行增删改查

数据库的连接,我的应用场景:将网址存在数据库,判断该网址的文本是积极还是消极,步骤:

连接数据库,查询数据库获得url地址,通过url获得网址的文本信息,判断是消极还是积极,再将结果存入数据库,(代码已经调通,只是在上面基础上再加一些功能,可以自己做一哈,若需要源码则留言或私信)

# 5.利用java调用python脚本

调用python脚本的方法有很多,可以自行百度,我这里用的是Runtime.getRuntime().exec()

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
public class testPython {public static void main(String[] args){Process process;try{process=Runtime.getRuntime().exec("python D:\\Users\\2.py");BufferedReader in = new BufferedReader(new InputStreamReader((process.getInputStream())));String line =null;line=in.readLine();in.close();process.waitFor();}catch (IOException e) {e.printStackTrace();}catch (InterruptedException e){e.printStackTrace();}}
}
 

调用百度API 对文本进行情感倾向分析(舆情分析)相关推荐

  1. SpringBoot项目调用百度API 实现文本与图像审核功能

    SpringBoot项目调用百度API 实现文本与图像审核功能 最近在开发一款微信小程序,其中具有发布帖子的功能,因此需要审核发布的文本与图像(不然开发的微信小程序过不了审).本来是调用微信小程序的A ...

  2. java实现文本纠错功能_调用百度API进行文本纠错

    毕设做的是文本纠错方面,然后今天进组见研究生导师 .老师对我做的东西蛮感兴趣.然后介绍自己现在做的一些项目,其中有个模块需要有用到文本纠错功能. 要求1:有多人同时在线编辑文档,然后文档功能有类似Wo ...

  3. Java调用百度API实现文本与图像审核功能

    文档: API文档:https://ai.baidu.com/ai-doc/ANTIPORN/ek3h6x90n SDK下载:https://ai.baidu.com/sdk#anti github链 ...

  4. java调用百度翻译_Java调用百度API实现翻译-Go语言中文社区

    下面是Java调用百度API实现翻译的具体步骤: 一.在写代码之前先在在百度翻译平台中,申请APP_ID 申请地址申请的详见点击打开链接 申请之后,会得到APP_ID和SECURITY_KEY 二.j ...

  5. 用Python调用OpenAI API进行文本创作

    文章目录 一.前言 二.使用教程 2.1获取API密钥 2.2 连接API 2.3 文本生成 三.创作示例 3.1 诗歌创作 3.2 推荐书单 3.3 超级百度 四.总结 一.前言 本文将教大家用py ...

  6. 百度翻译api设置 java_Java调用百度API实现翻译

    下面是Java调用百度API实现翻译的具体步骤: 一.在写代码之前先在在百度翻译平台中,申请APP_ID 申请地址申请的详见点击打开链接 申请之后,会得到APP_ID和SECURITY_KEY 二.j ...

  7. html5d调用百度语音,调用百度API,文字转语音

    前言 文字转语音,运用在什么场景了?一般后台管理系统会用到,提示管理员有"新的订单"."新的任务"等等,管理员可以马上收到,并及时处理.就好比,在餐厅,经常会听 ...

  8. Python实现调用百度API翻译文字

    调用百度API翻译文字 最近复制别人的代码实现百度API翻译文字,总是报错: {'error_code': '52003', 'error_msg': 'UNAUTHORIZED USER'} 后来发 ...

  9. 调用百度API实现图像风格转换

    目录 1.作者介绍 2.基本概念 2.1 人工智能云服务与百度智能云 2.2 图像风格转换 3.调用百度API实现图像风格转换 3.1 配置百度智能云平台 3.2 环境配置 3.3 完整代码实现 3. ...

最新文章

  1. Material Designer的低版本兼容实现(十)—— CheckBox RadioButton
  2. python创建字典型数据_Python数据类型之字典dict
  3. python 动态相册_Python编程:制作电子相册
  4. 萧功秦:为什么我们缺少特立独行的人生态度
  5. u8api openapi_使用OpenAPI规范进行更好的API测试
  6. 帆软按钮控件变查询_如何设置finereport按钮控件的可用时间
  7. Win10个人使用软件清单
  8. 气体质量流量控制器(MFC)
  9. LPC解算的burg算法
  10. matlab 更换坐标轴_matlab怎么调整坐标轴范围-Matlab修改坐标轴标注范围的方法 - 河东软件园...
  11. vue高德地图绘制行政区边界
  12. Arduino超声波传感器使用
  13. NANK南卡lite Pro无线蓝牙耳机上手体验
  14. 【论文笔记】Nonparallel Emotional Speech Conversion Using VAE-GAN 基于VAE-GAN的非平行情感语音生成
  15. 简书markdown
  16. Spring Data JPA简单使用
  17. JAVA初级游戏项目(大鱼吃小鱼)
  18. echarts折线图动态修改折线颜色
  19. B2B电子商务策略[在2022年发展您的业务]
  20. 操作系统—信号量实验项目

热门文章

  1. YOLOv7半自动标注
  2. Mac使用iMovie剪切视频
  3. 如何基于任务的价值确定其优先级
  4. T12焊台和JBC焊台自制资料(原理和电路)
  5. 拉仇恨!李想靠微博股票赚了两三倍,只有千把万
  6. 财务自由之路——我的投资史
  7. 计算组合数c语言ac,AC排列组合
  8. html中hr怎么加文字在线里,HTML hr 标签
  9. 【解决方案】物流行业如何通过国标GB28181协议国标平台EasyGBS建立车载视频可视化监控系统?
  10. 【读书笔记】科万特家族的宝马神话-陈曲,德国宝马汽车-3系是宝马的灵魂所在