【百度大脑新品体验】对话情绪识别,代码与建议
才能我浪费99 发布于2019-04 浏览:46589 回复:209
4
收藏
最后编辑于2022-04

认证授权:

在开始调用任何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&

具体代码如下:

# -*- 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/tech/nlp/emotion_detection

接口描述
针对用户日常沟通文本背后所蕴含情绪的一种直观检测,可自动识别出当前会话者所表现出的一级和二级细分情绪类别及其置信度,针对正面和负面的情绪,还可给出参考回复话术。帮助企业更全面地把握产品服务质量、监控客户服务质量。在自动监控中如果发现有负面情绪出现,可以及时介入人工处理,帮助在有限的人工客服条件下,降低客户流失。

请求说明

HTTP方法:?POST

请求URL:?https://aip.baidubce.com/rpc/2.0/nlp/v1/emotion

URL参数:

access_token:?通过API Key和Secret Key获取的access_token,参考“Access Token获取”

Header如下:

Content-Typeapplication/json
Body请求示例:

{
"scene":"talk",
"text": "本来今天高高兴兴"
}

现在body整体文本内容可以支持GBK和UTF-8两种格式的编码了。

1、GBK支持:默认按GBK进行编码,输入内容为GBK编码,输出内容为GBK编码,否则会接口报错编码错误

2、UTF-8支持:若文本需要使用UTF-8编码,请在url参数中添加charset=UTF-8 (大小写敏感) 例如 https://aip.baidubce.com/rpc/2.0/nlp/v1/lexer?charset=UTF-8&access_token=24.f9ba9c5241b67688bb4adbed8bc91dec.2592000.1485570332.282335-8574074


请求参数


返回说明

我用Python3写的调用函数如下:

def get_emotion(content):
    token=get_token()
    url = 'https://aip.baidubce.com/rpc/2.0/nlp/v1/emotion'
    params = dict()
    params['scene'] = 'talk'
    params['text'] = content
    params = json.dumps(params).encode('utf-8')
    access_token = token
    url = url + "?access_token=" + access_token
    url = url + "&charset=UTF-8" # 此处指定输入文本为UTF-8编码,返回编码也为UTF-8
    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('utf-8')
        data = json.loads(content)
        return data
    else:
        return ''

执行:print (get_emotion('本来今天高高兴兴'))

结果如下:

{'log_id': 8567920447474187651, 'text': '本来今天高高兴兴', 'items': [{'subitems': [{'prob': 0.501008, 'label': 'happy'}], 'replies': ['笑一笑十年少'], 'prob': 0.501008, 'label': 'optimistic'}, {'subitems': [], 'replies': [], 'prob': 0.49872, 'label': 'neutral'}, {'subitems': [], 'replies': [], 'prob': 0.000272128, 'label': 'pessimistic'}]}

对话扩展:

有一个好玩的点子就是将返回的推荐Replies再发回去,是不是就能让Ai自己和自己聊天了。说干就干,Python代码如下:

def get_reply(data):
    item=data['items'][0]
    return item['prob'],item['label'],item['replies']

#聊天机器人,startcontent开始内容,talktimes聊多少句
def talk_bot(startcontent,talktimes):
    content=startcontent
    print (content)
    for i in range(talktimes):
        content=get_emotion(content)
        prob,label,replies=get_reply(content)
        print (i,prob,label,replies)
        if len(replies)==0:
            return
        else:
            content=replies

执行:

talk_bot('今天真开心啊',5)

今天真开心啊
0 0.998117 optimistic ['笑得真可爱']
1 0.998332 optimistic ['眼光不错']
2 0.979875 optimistic ['感觉自己棒棒哒']
3 0.932955 optimistic ['谢谢,我很开心']
4 0.999511 optimistic ['开心笑一笑']

 

talk_bot('你真漂亮啊',5)

你真漂亮啊

0 0.989602 optimistic ['感觉自己棒棒哒']
1 0.932955 optimistic ['谢谢,我很开心']
2 0.999511 optimistic ['笑得真可爱']
3 0.998332 optimistic ['感觉自己棒棒哒']
4 0.932955 optimistic ['谢谢,我很开心']

建议:

现在的参考回复话术,中性情绪下该项为空。不知道是否能在中性情绪下也返回一些建议的回复内容,这样的话便于统一处理。

 

收藏
点赞
4
个赞
共209条回复 最后由用户已被禁言回复于2022-04
#210杨凯kd回复于2020-02

楼主我想问一下,帖子是自动加精的还是主动申请呀

0
#209189******30回复于2020-02

给客服用的情绪提示

0
#208新版小萱萱回复于2020-02

作者你好,请问有关部署的设置代码,可以给参考下吗?我在做相关的部署上线,第一次搞,不太能弄明白,就是在线服务的部署那几步,特别是参数设置步骤。如果有的话,就太感谢了。这部分的调用API也给了我参考了感谢

0
#207风允摩羯回复于2019-08
#206 蓝色的风339回复
也幸福了

确实是幸福了,啥都有

0
#206蓝色的风339回复于2019-06
#200 风允摩羯回复
实现就所有人懒惰了

也幸福了

0
#205蓝色的风339回复于2019-06
#204 才能我浪费99回复
估计后续会改进的

会越来越好

0
#204才能我浪费99回复于2019-06
#201 对着阳光傻傻看回复
这个api的识别精度太低了。。。

估计后续会改进的

0
#203才能我浪费99回复于2019-06
#199 wangwei8638回复
有事没事还是要想一想,^_^

大家都是希望幸福的

0
#202用户已被禁言回复于2019-06

太失望了这精度。。。

0
#201用户已被禁言回复于2019-06

这个api的识别精度太低了。。。

0
#200风允摩羯回复于2019-06
#194 wangwei8638回复
万一实现了呢

实现就所有人懒惰了

0
#199wangwei8638回复于2019-06
#195 才能我浪费99回复
实现了就幸福了

有事没事还是要想一想,^_^

0
#198才能我浪费99回复于2019-06
#197 蓝色的风339回复
这个功能客服用着不错

是啊,很适合客服一类的应用

0
#197蓝色的风339回复于2019-06

这个功能客服用着不错

0
#196才能我浪费99回复于2019-06
#193 worddict回复
人人都想财务自由

我也想财务自由

0
#195才能我浪费99回复于2019-06
#194 wangwei8638回复
万一实现了呢

实现了就幸福了

0
#194wangwei8638回复于2019-06
#193 worddict回复
人人都想财务自由

万一实现了呢

0
#193worddict回复于2019-06
#187 才能我浪费99回复
梦想财务自由

人人都想财务自由

0
#192才能我浪费99回复于2019-06
#191 风允摩羯回复
现实也是美好的

嗯,所以要努力

0
#191风允摩羯回复于2019-06
#190 才能我浪费99回复
有梦想才能成功

现实也是美好的

0
TOP
切换版块