赞
踩
需要进行个人认证
拥有腾讯云的实名账号,开通后每天有50万次免费调用,超过次数后才会收费。
下面有一个快速使用,也有详细的说明怎么调用接口
打开工具
这里也可以快速使用,这里我暂时不这么做
进入
进入右上角的控制台
选择Python
这里面有很详细的教程
安全凭证包含 SecretId 及 SecretKey 两部分。SecretId 用于标识 API 调用者的身份,SecretKey 用于加密签名字符串和服务器端验证签名字符串的密钥。
新建密钥
即可获得安全凭证
注意:安全凭证代表账号身份和所拥有的权限,等同于登录密码,切勿泄露他人。
调用地址(endpoint)一般形式为*.tencentcloudapi.com,产品的调用地址有一定区别,例如,云服务器的调用地址为cvm.tencentcloudapi.com。
这里的形式如下
nlp.tencentcloudapi.com
填入刚刚申请的密钥以及必要参数,之后参数会自动在右侧的python代码中出现
在命令行中执行以下命令,安装 Python SDK。
# 以腾讯源为例
# 源地址后为所要安装的包:tencentcloud-sdk-python
pip install -i https://mirrors.tencent.com/pypi/simple/ --upgrade tencentcloud-sdk-python
复制刚才的python代码到编辑器中,简单的修改
使用 apply 将 dataframe 中内容为 list 的列拆分为多列
参考:Pandas 的这个知识点,估计 80% 的人都得挂!
完整代码
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('处理好的弹幕数据.xlsx') data = df['弹幕'][:100].to_frame() data['情感分析'] = data['弹幕'].apply(get_sentiment) # 使用 apply 将 dataframe 中内容为 list 的列拆分为多列 data[['积极','中立','消极','情感倾向']] = data['情感分析'].apply(pd.Series) data = data.drop('情感分析',axis=1)
数据可视化呈现
emo = data.groupby('情感倾向')['弹幕'].count() ''' 情感倾向 negative 13 neutral 48 positive 39 Name: 弹幕, dtype: int64 ''' regions = emo.index.to_list() values = emo.to_list() import numpy as np import matplotlib.pyplot as plt plt.figure(figsize=(6,5),dpi=150) plt.rcParams['font.sans-serif']=['KaiTi'] plt.rcParams['axes.unicode_minus']=False plt.pie(values,labels=regions,radius=1.0, wedgeprops=dict(width=0.4,edgecolor='w'), textprops={'fontsize': 12},colors=['#FFCC99','#CCFF66','#99CCFF']) plt.show()
注意:每天只有50万次免费调用,超过需要收费的
最后还有一点就是,我的数据仅仅才一万出头,使用 apply 跑代码,运行的时候报错
这个问题,不知道是不是数据量太大了,还是太频繁了
我用100条数据,虽然成功了,但也运行了一分钟左右…
除了情感分析接口外,还有很多其他自然语言处理接口
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。