百度AI攻略:情感倾向分析

调用攻略(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秒左右,速度较快。

应用前景:

文本纠错有很广阔的应用前景,包括:

评论分析与决策,通过对产品多维度评论观点进行倾向性分析,给用户提供该产品全方位的评价,方便用户进行决策

评论分类,通过对评论进行情感倾向性分析,将不同用户对同一事件或对象的评论内容按情感极性予以分类展示

舆情监控,通过对需要舆情监控的实时文字数据流进行情感倾向性分析,把握用户对热点信息的情感倾向性变化

产品建议:

建议针对口语化场景,古诗等内容进行优化。


猜你喜欢

转载自blog.51cto.com/14664861/2467402