当前位置:   article > 正文

用百度接口完成文本情感识别(通用版)_百度文本情感分析模型

百度文本情感分析模型

实现步骤

1注册百度云

我这里就到控制台了
https://cloud.baidu.com/?from=console
在这里插入图片描述

2进入控制台创建应用

https://console.bce.baidu.com/ai/#/ai/nlp/overview/index
1进入nlp相关
在这里插入图片描述

2创建自己的应用

3得到AK和SK
AK是api key,SK是secret key。

3获取Access Token

def getToken():
    # client_id 为官网获取的AK, client_secret 为官网获取的SK
    host = 'https://aip.baidubce.com/oauth/2.0/token?grant_type=client_credentials&client_id=' + App_Key + '&client_secret=' + Secret_Key
    response = requests.get(host)

    if response.status_code == 200: #响应成功
        info = json.loads(response.text)  # 将字符串转成字典
        access_token = info['access_token']  # 解析数据到access_token
        return access_token
    return ''
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10

4情感分析

首先看接口返回信息

{
    "text":"苹果是一家伟大的公司",
    "items":[
        {
            "sentiment":2,    //表示情感极性分类结果
            "confidence":0.40, //表示分类的置信度
            "positive_prob":0.73, //表示属于积极类别的概率
            "negative_prob":0.27  //表示属于消极类别的概率
        }
    ]
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
def getEmotion(inputText, access_token):
    url = 'https://aip.baidubce.com/rpc/2.0/nlp/v1/sentiment_classify?access_token=' + access_token
    header = {'Content-Type	': 'application/json'}
    body = {'text': inputText}
    requests.packages.urllib3.disable_warnings()
    res = requests.post(url=url, data=json.dumps(body), headers=header, verify=False)
    if res.status_code == 200:
        info = json.loads(res.text)
        print(info)
        if 'items' in info and len(info['items']) > 0:
            sentiment = info['items'][0]['sentiment']
            if sentiment == 2:
                print(inputText + '  情感分析结果是:正向')
            elif sentiment == 1:
                print(inputText + '  情感分析结果是:中性')
            else:
                print(inputText + '  情感分析结果是:负向')
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17

5实现

import requests
import json

App_Key = '自己申请的AK'
Secret_Key = '自己申请的SK'


# 情感分析
def getEmotion(inputText, access_token):
    url = 'https://aip.baidubce.com/rpc/2.0/nlp/v1/sentiment_classify?access_token=' + access_token
    header = {'Content-Type	': 'application/json'}
    body = {'text': inputText}
    requests.packages.urllib3.disable_warnings()
    res = requests.post(url=url, data=json.dumps(body), headers=header, verify=False)
    if res.status_code == 200:
        info = json.loads(res.text)
        print(info) #打印接口返回信息,如果报错方便查看,也可以忽略报错继续执行
        if 'items' in info and len(info['items']) > 0:
            sentiment = info['items'][0]['sentiment']
            if sentiment == 2:
                print(inputText + '  情感分析结果是:正向')
            elif sentiment == 1:
                print(inputText + '  情感分析结果是:中性')
            else:
                print(inputText + '  情感分析结果是:负向')


# 获取token
def getToken():
    # client_id 为官网获取的AK, client_secret 为官网获取的SK
    host = 'https://aip.baidubce.com/oauth/2.0/token?grant_type=client_credentials&client_id=' + App_Key + '&client_secret=' + Secret_Key
    response = requests.get(host)

    if response.status_code == 200:
        info = json.loads(response.text)  # 将字符串转成字典
        access_token = info['access_token']  # 解析数据到access_token
        return access_token
    return ''


# 主函数
def main():
    inputText ="今天天气真好" #进行识别的语句,根据需求可以改成读取文件或者输入
    accessToken = getToken()
    getEmotion(inputText, accessToken)


if __name__ == '__main__':
    main()
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46
  • 47
  • 48
  • 49

输出结果:

{'log_id': 2064186719012084925, 'text': '今天天气真好', 'items': [{'positive_prob': 0.997986, 'confidence': 0.995524, 'negative_prob': 0.00201416, 'sentiment': 2}]}
今天天气真好  情感分析结果是:正向
  • 1
  • 2

6注意点

1个人账户的情感识别的QPS是2,所以多条文本报错一般是因为数据太多
2文本不能过长,不要超过2048

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/2023面试高手/article/detail/528526
推荐阅读
相关标签
  

闽ICP备14008679号