当前位置:   article > 正文

使用百度API进行情感分析(python)(二)_百度情感分析python sdk分析json数据

百度情感分析python sdk分析json数据

编写代码

代码中的
将代码中的token值改为上一篇得到的Access_token值,即可;该值的时间期限约是一个月,一个月之后需要重新获取Access_token值,获取方法与之前相同。
代码示例:

import re
import requests
import json

# 将text按照lenth长度分为不同的几段
def cut_text(text, lenth):
    textArr = re.findall('.{' + str(lenth) + '}', text)
    textArr.append(text[(len(textArr) * lenth):])
    return textArr  # 返回多段值

def get_emotion( data):  # 情感分析
    # 定义百度API情感分析的token值和URL值
    token = '24.493282d99e2b2dc2a97bc1b91f02e95c.2592000.1592913393.282335-19580524' 
    url = 'https://aip.baidubce.com/rpc/2.0/nlp/v1/sentiment_classify?charset=UTF-8&access_token={}'.format(token)

    # 百度情感分析API的上限是2048字节,因此判断文章字节数小于2048,则直接调用
    if (len(data.encode()) < 2048):
        new_each = {
            'text': data  # 将文本数据保存在变量new_each中,data的数据类型为string
        }
        new_each = json.dumps(new_each)
        res = requests.post(url, data=new_each)  # 利用URL请求百度情感分析API
        # print("content: ", res.content)
        res_text = res.text  # 保存分析得到的结果,以string格式保存
        result = res_text.find('items')  # 查找得到的结果中是否有items这一项
        positive = 1
        if (result != -1):  # 如果结果不等于-1,则说明存在items这一项
            json_data = json.loads(res.text)
            negative = (json_data['items'][0]['negative_prob'])  # 得到消极指数值
            positive = (json_data['items'][0]['positive_prob'])  # 得到积极指数值
            print("positive:",positive)
            print("negative:",negative)
            # print(positive)
            if (positive > negative):  # 如果积极大于消极,则返回2
                return 2
            elif (positive == negative):  # 如果消极等于积极,则返回1
                return 1
            else:
                return 0  # 否则,返回0
        else:
            return 1
    else:
        data = cut_text(data, 1500)  # 如果文章字节长度大于1500,则切分
        # print(data)
        sum_positive = 0.0  # 定义积极指数值总合
        sum_negative = 0.0  # 定义消极指数值总和
        for each in data:  # 遍历每一段文字
            # print(each)
            new_each = {
                'text': each  # 将文本数据保存在变量new_each中
            }
            new_each = json.dumps(new_each)
            res = requests.post(url, data=new_each)  # 利用URL请求百度情感分析API
            # print("content: ", res.content)
            res_text = res.text  # 保存分析得到的结果,以string格式保存
            result = res_text.find('items')  # 查找得到的结果中是否有items这一项
            if (result != -1):
                json_data = json.loads(res.text)  # 如果结果不等于-1,则说明存在items这一项
                positive = (json_data['items'][0]['positive_prob'])  # 得到积极指数值
                negative = (json_data['items'][0]['negative_prob'])  # 得到消极指数值
                sum_positive = sum_positive + positive  # 积极指数值加和
                sum_negative = sum_negative + negative  # 消极指数值加和
                # print(positive)
        print(sum_positive)
        print(sum_negative)
        if (sum_positive > sum_negative):  # 如果积极大于消极,则返回2
            return 2
        elif (sum_positive == sum_negative):  # 如果消极等于于积极,则返回1
            return 1
        else:
            return 0  # 否则,返回0

def main():
    txt1 = "你好优秀"
    txt2 = "难过!"
    print("txt1测试结果:",get_emotion(txt1))
    print("txt2测试结果:",get_emotion(txt2))

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
  • 50
  • 51
  • 52
  • 53
  • 54
  • 55
  • 56
  • 57
  • 58
  • 59
  • 60
  • 61
  • 62
  • 63
  • 64
  • 65
  • 66
  • 67
  • 68
  • 69
  • 70
  • 71
  • 72
  • 73
  • 74
  • 75
  • 76
  • 77
  • 78
  • 79
  • 80

代码运行结果 :
在这里插入图片描述
2 - - - 表示信息偏向积极
1 - - - 表示信息积极和消息值接近
0 - - - 表示信息偏向消极

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

闽ICP备14008679号