python调⽤百度智能云API请求(以⾃然语⾔处理——词法分析为例)调⽤API的思路:
1. 获得api的token
2. 按官⽅⽂档发送链接
3. 分析返回的结果
步骤⼀:获取API的token
如果不知道token是啥,或是不知道怎么获取token,请参考:
这⾥给出⼀个⼯具⽅法:
def get_baidu_token()->str:
"""获得百度的token"""
import requests
ak ="ZXGxxxxx"# 第2步中的API Key
sk ="RwAxxxxx"# 第2步中的Secret Key
# client_id 为官⽹获取的AK, client_secret 为官⽹获取的SK
host ='aip.baidubce/oauth/2.0/token?grant_type=client_credentials&client_id={0}&client_secret={1}'.format(
ak, sk)
response = (host)
if response:
return response.json()['access_token']
步骤⼆:按官⽅⽂档发送链接
⽂档链接:
可以看到⼏个要点:
1. POST请求
2. 需要````access_token```
3. Header添加Content-Type属性,值为application/json
4. body添加text属性,值为想要分析的内容
由此构建以下代码:
import json
def get_baidu_service(analyze_text, token)-> json:# 传⼊待分析的⽂本,与token
import urllib3
http = urllib3.PoolManager(cert_reqs='CERT_NONE')# 防⽌ssl报错
http_request = quest(
method="POST",# post 请求
url="aip.baidubce/rpc/2.0/nlp/v1/lexer?access_token="+ token,# 百度API接⼝ body=json.dumps({"text": analyze_text}),# body⾥添加text属性
headers={# header添加Content-Type属性
'Content-Type':'application/json;charset=UTF-8'
},
)
if http_request.status ==200:
return str(http_request.data,"GBK")# 返回json格式的字符串
步骤三:分析返回的结果
这⾥就是看⾃⼰需要什么结果了,以打印地点名词为例:
def analyze_baidu_service(analyze_result:str):
data:dict= json.loads(analyze_result)# 以字典形式读取json格式的字符串
for item in data['items']:
if item['ne']=="LOC":# 如果是地点名词,就打印出来
print(item["item"])
# 打印结果:
# 太和殿
# 奉天殿
# 奉天殿
完整代码
import json
def get_baidu_token()->str:
"""获得百度的token"""
import requests
ak ="ZXGxxxxx"# 第2步中的API Key
sk ="RwAxxxxx"# 第2步中的Secret Key
# client_id 为官⽹获取的AK, client_secret 为官⽹获取的SK
host ='aip.baidubce/oauth/2.0/token?grant_type=client_credentials&client_id={0}&client_secret={1}'.format(
ak, sk)
response = (host)
百度api接口if response:
return response.json()['access_token']
def get_baidu_service(analyze_text, token)-> json:
import urllib3
http = urllib3.PoolManager(cert_reqs='CERT_NONE')
http_request = quest(
method="POST",
url="aip.baidubce/rpc/2.0/nlp/v1/lexer?access_token="+ token,
body=json.dumps({"text": analyze_text}),
headers={
'Content-Type':'application/json;charset=UTF-8'
},
)
if http_request.status ==200:
return str(http_request.data,"GBK")
def analyze_baidu_service(analyze_result:str):
data:dict= json.loads(analyze_result)# 以字典形式读取json格式的字符串
for item in data['items']:
if item['ne']=="LOC":# 如果是地点名词,就打印出来
print(item["item"])
# 太和殿
# 奉天殿
# 奉天殿
if __name__ =='__main__':
text ="太和殿始建于明朝永乐四年(1406年),建成于永乐⼗⼋年(1420年),初名奉天殿。[2]奉天殿
初建时的体量,据《明世宗实录》卷四百七⼗记载:“原旧⼴三⼗丈,深⼗五丈云”,即⾯阔95⽶,进深48⽶,⾯积达4522平⽅⽶。"
analyze_data = get_baidu_service(text, token=get_baidu_token())
analyze_baidu_service(analyze_data)
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论