【产品建议】【语言处理】情感倾向分析攻略、评测
才能我浪费99 发布于2019-04 浏览:6142 回复:21
2
收藏
最后编辑于2022-04


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

应用前景:
文本纠错有很广阔的应用前景,包括:
评论分析与决策,通过对产品多维度评论观点进行倾向性分析,给用户提供该产品全方位的评价,方便用户进行决策
评论分类,通过对评论进行情感倾向性分析,将不同用户对同一事件或对象的评论内容按情感极性予以分类展示
舆情监控,通过对需要舆情监控的实时文字数据流进行情感倾向性分析,把握用户对热点信息的情感倾向性变化

产品建议:

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

 

收藏
点赞
2
个赞
共21条回复 最后由用户已被禁言回复于2022-04
#2才能我浪费99回复于2019-04

使用了一下,感觉功能很不错

1
TOP
切换版块