01 前言
情感分析是NLP的重要部分,之前我们使用过Python第三方库SnowNLP进行情感分析,也训练过朴素贝叶斯模型来更好的符合我们的数据,进行更精确的情感分析,具体可以参考这篇文章。
https://mp.weixin.qq.com/s/wfa1PMIKH_wwN8uL7m4rdg
今天,我们使用百度的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)
需要注意的是,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
大家有熟悉的歌么~