如何获取百度API情感分析的token值和URL值?
要调用百度API,就要获得权限,利用获取到的API Key 和Secret Key去获取Access Token
获取地址:
https://aip.baidubce.com/oauth/2.0/token?grant_type=client_credentials&client_id=API key&client_secret=Secret Key&
将对应位置进行修改:
分别修改client_id=
和client_secret=
后面的值为自己的API Key
和Secret Key
然后得到一个字符串页面:
token = '24.6b3916470ce4b09e2c043c2337e8b98d.2592000.1638413715.282335-25083336'
url = 'https://aip.baidubce.com/rpc/2.0/nlp/v1/sentiment_classify?charset=UTF-8&access_token={}'.format(token)
最简单的例子:可以直接使用(编辑器:IDLE):
import re
import requests
import json
def get_emotion( data):
# 定义百度API情感分析的token值和URL值
token = '24.bcc989b57db903cc1189346275b7a372.2592000.1604971755.282335-22803254'
url = 'https://aip.baidubce.com/rpc/2.0/nlp/v1/sentiment_classify?charset=UTF-8&access_token={}'.format(token)
new_each = {'text': data } # 将文本数据保存在变量new_each中,data的数据类型为string
new_each = json.dumps(new_each)
res=requests.post(url,data=new_each) # 利用URL请求百度情感分析API
res_text = res.text # 保存分析得到的结果,以string格式保存
print("content: ", res_text)
result = res_text.find('items') # 查找得到的结果中是否有items这一项
positive = 1
if (result != -1): # 如果结果不等于-1,则说明存在items这一项
json_data = json.loads(res.text)
negative = (json_data['items'][0]['negative_prob']) # 得到消极指数值
positive = (json_data['items'][0]['positive_prob']) # 得到积极指数值
print("positive:",positive)
print("negative:",negative)
if (positive > negative): # 如果积极大于消极,则返回2
return 2
elif (positive == negative): # 如果消极等于积极,则返回1
return 1
else:
return 0 # 否则,返回0
else:
return 1
def main():
txt1="有些时候,宇宙似乎是有意使一些事情变得如此有趣。科学家们发现了一个“π行星”,它的大小与我们的地球相仿,距离我们大约185光年"
print("txt1测试结果:",get_emotion(txt1))
if __name__ == "__main__":
main()
ModuleNotFoundError: No module named ‘bs4’
解决方案:
直接cmd然后输入pip install bs4
Couldn’t find a tree builder with the features you requested: lxml. Do you need to install a parser library?
解决方案:
有lxml库的先卸载pip uninstall lxml
没有装的直接pip install lxml==3.7.0
或者pip3 install lxml
如何判断Python字典中是否存在某个key
解决方案:关键字in
user_info = {'name': 'nock', 'age': 18}
>>> if 'job' not in user_info:
... print('in')
...
in
>>> if 'job' not in user_info:
... print('not in')
... else:
... print('in')
...
not in
Python字典如何访问其中的值
访问方式一:字典名+[key]的方式
例如:访问s1 则打印print(dict_a[“s1”]),中括号内直接输入键名,而不是列表或者字符串的数字。
注意括号内是有引号的
使用python语言操作excl可用如下库:
- Xlrd:xlrd支持.xls、.xlsx Excel文件的读,并不支持.xls、.xlsx 文件的写。(Xlread)
- Xlwt:xlwt仅支持.xls文件的写。(Xlwrite
- Xlsxwriter:xlswriter支持.xlsx文件的写,另外此模块还支持VBA操作
- Win32com:win32com支持Excel的.xlsx和.xls,安装pypiwin32即可使用该库,该模块现在只支持Windows系统
- Openpyxl:对xlsx、xlsm文件进行读和写操作,主要对Excel2007年之后的版本(.xlsx)该模块对VBA的支持不好,不支持 .xls文件
- Xlwings:xlwings实现了Excel中调用Python,python中调用Excel的骚操作,支持.xls文件的读,支持.xlsx文件的读写,支持VBA的操作另外还支持和Numpy、Pandas结合进行操作,在很大程度上扩展了应用。
- Pandas :数据分析领域最为重要的库,支持.xls和.xlsx读写。
每一个库的安装都可以用安装命令在cmd中安装:
pip install 库名
理解xlwings的相关概念:
在xlwings中
- Excel程序用App来表示,多个Excel程序集合用Apps表示;
- 单个工作簿用Book表示,工作簿集合用Books表示
- 单个工作表用Sheet表示,工作表集合用Sheets表示
- 区域用Range表示,既可以是一个单元格,也可以是一片单元格区域。
注意:在xlwings中是不区分大小写的,SHEET1和sheet1的含义一样
Apps
关于Apps这个概念,很多教程里提到过,但是都没有解释清楚。要理解Apps,首先要理解App,一个App对应一个Excel实例,注意,是Excel实例,不是工作簿。我们要创建工作簿,首先要创建App。一个App可以创建多个工作簿。也就是说,我们可以通过xlwings创建多个App,每个App又可以创建多个工作薄,这些App是相互独立的,只能管理它自己创建的工作簿。需要注意的是,当我们手动打开一个工作簿的时候,系统也会自动帮我们创建一个App。
创建一个excl程序对象,里面存放我们要打开的excl文件,然后将其激活:
app = xw.App(visible=True,add_book=False)
wb = app.books.open('E:\\RPA_AI\\TWO\\res\\数据.xlsx') #打开绝对路径下的excl文件
sheet = wb.sheets.active
python 如何使用xlwings库获取sheet名及个数
解决方案:
num =len(wb.sheets)#获取sheet个数
python 如何使用xlwings库遍历工作表
for x in range(1,num): #遍历工作表,num为工作表的个数
sheet = wb.sheets[x] #遍历工作表要用sheets,因为一个工作簿有多个工作表
python 如何使用xlwings库获取excl中指定位置的数据
a = sheet.range('A1:A20').value #获取A1-A20的数据以列表的形式存放在a中
python 如何使用xlwings库向excl指定的单元格中写入数据
wb.sheets[x][y,z].value = res_text #参数x是第几个工作表,y是第几行,z是第几列,0代表第一个,以此类推
python如何作饼状图
先用cmd安装三个库
- numpy
- matplotlib
- squarify
#在默认设置下matplotlib做出来的图表不是很清楚,可以将图表设置成矢量格式显示
# plt.savefig("test.svg", format="svg")
plt.rcParams["font.sans-serif"] = ["SimHei"]
plt.rcParams["axes.unicode_minus"] = False
# 建立坐标系
plt.subplot(1,1,1)
# 指明x值
a = [15,30,2]
x = np.array(a)
labels = ['积极','中立','消极']
# 让第一块离圆心远一点
explode = [0.15,0,0]
labeldistance = 1
# 绘图
plt.pie(x,labels = labels,autopct='%.0f%%',shadow=True,explode = explode,radius=1.0,labeldistance = labeldistance)
# 设置标题
plt.title(label = '情感分析图')
# 显示图表
plt.show()
RuntimeWarning: Glyph 22270 missing from current font. font.set_text(s, 0, flags=flags)
解决方案:
plt.rcParams["font.sans-serif"] = ["SimHei"]
plt.rcParams["axes.unicode_minus"] = False