调用腾讯云情感分析API
对评论和弹幕进行情感分析,英文一般采用LIWC,中文则可简单方便调用API,其中腾讯云、百度云和阿里云都有较成熟的方案。
import json
from tencentcloud.common import credential
# 导入可选配置项
from tencentcloud.common.profile.client_profile import ClientProfile
from tencentcloud.common.profile.http_profile import HttpProfile
from tencentcloud.common.exception.tencent_cloud_sdk_exception import TencentCloudSDKException
# 导入对应产品模块的 client models。
from tencentcloud.nlp.v20190408 import nlp_client, models
def get_sentiment(text):
try:
# 实例化一个认证对象,入参需要传入腾讯云账户 secretId,secretKey
cred = credential.Credential("AKID***", "***")
# 实例化一个 http 选项,可选的,没有特殊需求可以跳过。
httpProfile = HttpProfile()
httpProfile.endpoint = "nlp.tencentcloudapi.com"
# 实例化一个 client 选项,可选的,没有特殊需求可以跳过。
clientProfile = ClientProfile()
clientProfile.httpProfile = httpProfile
# 实例化要请求产品 (以 cvm 为例) 的 client 对象
# client = cvm_client.CvmClient(cred, "ap-shanghai")
client = nlp_client.NlpClient(cred, "ap-guangzhou", clientProfile)
# 实例化一个请求对象
# req = models.DescribeZonesRequest()
req = models.SentimentAnalysisRequest()
# 这里还支持以标准 json 格式的 string 来赋值请求参数的方式。
params = {
"Text": text,
# Flag 选填 待分析文本所属的类型
# 仅当输入参数Mode取值为2class时有效(默认取4值)
# 1、商品评论类 2、社交类 3、美食酒店类 4、通用领域类
# 'Flag' :2,
# Mode 选填 情感分类模式选项,
# 可取2class或3class(默认值为2class)
# 1、2class:返回正负面二分类情感结果 2、3class:返回正负面及中性三分类情感结果
"Mode": "3class"
}
req.from_json_string(json.dumps(params))
# 通过 client 对象调用想要访问的接口,需要传入请求对象
resp = client.SentimentAnalysis(req)
# 输出 json 格式的字符串回包
j = json.loads(resp.to_json_string())
return [j['Positive'], j['Negative'], j['Neutral'], j['Sentiment']]
except TencentCloudSDKException as err:
print(err)
# get_sentiment(text = '你吃过了吗')
import pandas as pd
import numpy as np
import os
import jieba
# os.chdir(r'C:\Users\Administrator\Desktop')
# 读取csv文件获取数据并存储到列表中
df = pd.read_excel('200.xlsx')
data = df['弹幕'][:10000].to_frame()
data['情感分析'] = data['弹幕'].apply(get_sentiment)
# 使用 apply 将 dataframe 中内容为 list 的列拆分为多列
data[['积极', '中立', '消极', '情感倾向']] = data['情感分析'].apply(pd.Series)
data = data.drop('情感分析', axis=1)
# 将结果存入result-demo.xlsx
data.to_excel('result-demo.xlsx')
# print (data)
参考链接:
https://blog.csdn.net/qq_42374697/article/details/113247454