调用攻略(Python3)
首先认证授权:
在开始调用任何API之前需要先进行认证授权,具体的说明请参考:
http://ai.baidu.com/docs#/Auth/top
获取Access Token
向授权服务地址https://aip.baidubce.com/oauth/2.0/token发送请求(推荐使用POST),并在URL中带上以下参数:
grant_type:?必须参数,固定为client_credentials;
client_id:?必须参数,应用的API Key;
client_secret:?必须参数,应用的Secret Key;
例如:
https://aip.baidubce.com/oauth/2.0/token?grant_type=client_credentials&client_id=Va5yQRHlA4Fq5eR3LT0vuXV4&client_secret=0rDSjzQ20XUj5itV6WRtznPQSzr5pVw2&
具体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秒左右,速度较快。
应用前景:
文本纠错有很广阔的应用前景,包括:
评论分析与决策,通过对产品多维度评论观点进行倾向性分析,给用户提供该产品全方位的评价,方便用户进行决策
评论分类,通过对评论进行情感倾向性分析,将不同用户对同一事件或对象的评论内容按情感极性予以分类展示
舆情监控,通过对需要舆情监控的实时文字数据流进行情感倾向性分析,把握用户对热点信息的情感倾向性变化
产品建议:
建议针对口语化场景,古诗等内容进行优化。