调用腾讯云情感分析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

本文链接:

https://ma.ge/archives/256.html
1 + 4 =
快来做第一个评论的人吧~