調用攻略(Python3)python
首先認證受權:json
在開始調用任何API以前須要先進行認證受權,具體的說明請參考:app
http://ai.baidu.com/docs#/Auth/topide
獲取Access Token測試
向受權服務地址https://aip.baidubce.com/oauth/2.0/token發送請求(推薦使用POST),並在URL中帶上如下參數:大數據
grant_type:?必須參數,固定爲client_credentials;優化
client_id:?必須參數,應用的API Key;ui
client_secret:?必須參數,應用的Secret Key;人工智能
例如:url
具體Python3代碼以下:
# -*- coding: utf-8 -*-
#!/usr/bin/env python
import urllib
import json
#client_id 爲官網獲取的AK, client_secret 爲官網獲取的SK
client_id =【百度雲應用的AK】
client_secret =【百度雲應用的SK】
#獲取token
def get_token():
host = 'https://aip.baidubce.com/oauth/2.0/token?grant_type=client_credentials&client_id=' + client_id + '&client_secret=' + client_secret
request = urllib.request.Request(host)
request.add_header('Content-Type', 'application/json; charset=UTF-8')
response = urllib.request.urlopen(request)
token_content = response.read()
if token_content:
token_info = json.loads(token_content)
token_key = token_info['access_token']
return token_key
情感傾向分析接口調用:
詳細說明請參考:http://ai.baidu.com/docs#/NLP-API/57b9b630
接口描述
情感傾向分析接口(通用版):自動對包含主觀信息的文本進行情感傾向性判斷(積極、消極、中性),並給出相應的置信度。爲口碑分析、話題監控、輿情分析等應用提供基礎技術支持,同時支持用戶自行定製模型效果調優。
請求說明
HTTP方法: POST
請求URL: https://aip.baidubce.com/rpc/2.0/nlp/v1/sentiment_classify
URL參數:
參數 值
access_token 經過API Key和Secret Key獲取的access_token,參考「Access Token獲取」
Header以下:
參數 值
Content-Type application/json
Body請求示例:
{
"text": "蘋果是一家偉大的公司"
}
請求參數
參數 類型 描述 是否必填
text string 文本內容,最大2048字節
返回說明
參數 說明 描述
log_id uint64 請求惟一標識碼
sentiment int 表示情感極性分類結果,0:負向,1:中性,2:正向
confidence float 表示分類的置信度,取值範圍[0,1]
positive_prob float 表示屬於積極類別的機率 ,取值範圍[0,1]
negative_prob float 表示屬於消極類別的機率,取值範圍[0,1]
Python3調用代碼以下:
#調用情感分類接口
def get_classify(content):
print (content)
token=get_token()
url = 'https://aip.baidubce.com/rpc/2.0/nlp/v1/sentiment_classify'
params = dict()
params['text'] = content
params = json.dumps(params).encode('utf-8')
access_token = token
url = url + "?access_token=" + access_token
request = urllib.request.Request(url=url, data=params)
request.add_header('Content-Type', 'application/json')
response = urllib.request.urlopen(request)
content = response.read()
if content:
content=content.decode('gb2312')
#print (content)
data = json.loads(content)
data=data['items'][0]
sentiment=data['sentiment']
if sentiment==0:
sentiment='負向'
elif sentiment==1:
sentiment='中性'
else:
sentiment='正向'
print ('情感分類結果:',sentiment)
print ('分類的置信度:',data['confidence'])
print ('積極類別機率:',data['positive_prob'])
print ('消極類別機率:',data['negative_prob'])
功能評測:
選用不一樣的數據對情感分類的準確性進行測試,具體的案例包括生活用語,文章,古詩等。具體案例以下:
test_list = [
'今天真開心啊。',
'最近事情太多了,好煩啊。',
'會當凌絕頂,一覽衆山小。',
'枯藤老樹昏鴉,小橋流水人家,古道西風瘦馬。夕陽西下,斷腸人在天涯。',
'隨着大數據應用者的規模愈來愈大,人工智能愈來愈成爲一種主流',
'讓咱們團結一心。',
'你早上來晚了,他有點不高興。',
'項目立刻就要成功了!',
'你怎麼不早點來啊!',
'祝你生日快樂!']
import datetime
print (datetime.datetime.now().strftime('%Y-%m-%d %H:%M:%S'))
for text in test_list:
get_classify(text)
print (datetime.datetime.now().strftime('%Y-%m-%d %H:%M:%S'))
結果:
2019-04-17 10:27:04
今天真開心啊。
情感分類結果: 正向
分類的置信度: 0.150197
積極類別機率: 0.617589
消極類別機率: 0.382411
最近事情太多了,好煩啊。
情感分類結果: 中性
分類的置信度: 0.738756
積極類別機率: 0.513062
消極類別機率: 0.486938
會當凌絕頂,一覽衆山小。
情感分類結果: 正向
分類的置信度: 0.0787282
積極類別機率: 0.585428
消極類別機率: 0.414572
枯藤老樹昏鴉,小橋流水人家,古道西風瘦馬。夕陽西下,斷腸人在天涯。
情感分類結果: 正向
分類的置信度: 0.281931
積極類別機率: 0.676869
消極類別機率: 0.323131
隨着大數據應用者的規模愈來愈大,人工智能愈來愈成爲一種主流
情感分類結果: 正向
分類的置信度: 0.326132
積極類別機率: 0.696759
消極類別機率: 0.303241
讓咱們團結一心。
情感分類結果: 正向
分類的置信度: 0.0150585
積極類別機率: 0.556776
消極類別機率: 0.443224
你早上來晚了,他有點不高興。
情感分類結果: 負向
分類的置信度: 0.286418
積極類別機率: 0.321112
消極類別機率: 0.678888
項目立刻就要成功了!
情感分類結果: 正向
分類的置信度: 0.331586
積極類別機率: 0.699214
消極類別機率: 0.300786
你怎麼不早點來啊!
情感分類結果: 負向
分類的置信度: 0.638268
積極類別機率: 0.16278
消極類別機率: 0.83722
祝你生日快樂!
情感分類結果: 正向
分類的置信度: 0.0883195
積極類別機率: 0.589744
消極類別機率: 0.410256
2019-04-17 10:27:11
發如今10個測試案例中,有2個結果待商榷,分別是:
最近事情太多了,好煩啊。
情感分類結果: 中性
枯藤老樹昏鴉,小橋流水人家,古道西風瘦馬。夕陽西下,斷腸人在天涯。
情感分類結果: 正向
其餘的都比較準確,準確率爲80%左右。10個調用,用時7秒,每次調用0.7秒左右,速度較快。
應用前景:
文本糾錯有很廣闊的應用前景,包括:
評論分析與決策,經過對產品多維度評論觀點進行傾向性分析,給用戶提供該產品全方位的評價,方便用戶進行決策
評論分類,經過對評論進行情感傾向性分析,將不一樣用戶對同一事件或對象的評論內容按情感極性予以分類展現
輿情監控,經過對須要輿情監控的實時文字數據流進行情感傾向性分析,把握用戶對熱點信息的情感傾向性變化
產品建議:
建議針對口語化場景,古詩等內容進行優化。