百度API情感分析

127 阅读1分钟

本文已参与「新人创作礼」活动,一起开启掘金创作之路

01 前言

情感分析是NLP的重要部分,之前我们使用过Python第三方库SnowNLP进行情感分析,也训练过朴素贝叶斯模型来更好的符合我们的数据,进行更精确的情感分析。

今天,我们使用百度的API,来进行情感分析。

02 百度API调用

百度情感分析的地址见下,我们点击立即使用就可以了(登陆账号)。

http://ai.baidu.com/tech/nlp/sentiment_classify

接着我们创建应用。

通过下面的网址,查看文档,跟着文档来做就好了。

https://ai.baidu.com/docs#/NLP-Apply-API/955c17f6

① 获取token 通过下面代码获取token,用于调用情感分析API的参数。

import requests

ak = ''
sk = ''

host = 'https://aip.baidubce.com/oauth/2.0/token?grant_type=client_credentials&client_id={}&client_secret={}'.format(ak,sk)

res = requests.post(host)
print(res.text)

② 小案例 通过下面的代码,就能对文本进行情感分析了。

import json

url = 'https://aip.baidubce.com/rpc/2.0/nlp/v1/sentiment_classify?charset=UTF-8&access_token={}'.format(token)

data = {
    'text':'这个手机不好用'
}

data = json.dumps(data)

res = requests.post(url,data=data)
print(res.text)

3629157-01cee35d8a193620.png

需要注意的是,token是之前代码生成的,这里的data用了json.dumps方法,是为了将字典转为字符串(API的要求)。

03 许嵩歌词情感分析

上次我们通过爬虫,获取了许嵩的歌词,我们这就用API来看看许嵩歌词的情感。

import os
import pandas as pd
name = []
positive = []
path = 'song/'
all_paths = os.listdir(path)
for all_path in all_paths:
    try:
        content = open(path+all_path,'r',encoding='utf-8').read()
        data = {
            'text':content
        }
        data = json.dumps(data)

        res = requests.post(url,data=data)
        json_data = json.loads(res.text)

        
        positive.append(json_data['items'][0]['positive_prob'])
        name.append(all_path.strip('.txt'))
    except:
        pass
    
df = pd.DataFrame({
    'name':name,
    'positive':positive
})

最悲伤的歌:

等到烟火清凉	0.004273
奇谈	0.008890
星座书上	0.012526
白马非马	0.014861
独坐	0.016436

大家有熟悉的歌么~