如何获取百度API情感分析的token值和URL值?

要调用百度API,就要获得权限,利用获取到的API Key 和Secret Key去获取Access Token
92ab7dd3c572432da0d57d4492721197
获取地址:

1
https://aip.baidubce.com/oauth/2.0/token?grant_type=client_credentials&client_id=API key&client_secret=Secret Key&

将对应位置进行修改:
05f49ce2b75c4c219ded4725e5f07489
分别修改client_id=client_secret=后面的值为自己的API KeySecret Key
然后得到一个字符串页面:
782b966adfea42c6a11aba4ddaac36d0

1
2
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):

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
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

1
2
3
4
5
6
7
8
9
10
11
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”]),中括号内直接输入键名,而不是列表或者字符串的数字。
927c9dfc2bbe4322991e14915df19e4f
注意括号内是有引号的

使用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中安装:

1
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。

3087e4633a214be5bb2512082755d484
创建一个excl程序对象,里面存放我们要打开的excl文件,然后将其激活:

1
2
3
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名及个数

解决方案:

1
num =len(wb.sheets)#获取sheet个数

python 如何使用xlwings库遍历工作表

1
2
for x in range(1,num):      #遍历工作表,num为工作表的个数
sheet = wb.sheets[x] #遍历工作表要用sheets,因为一个工作簿有多个工作表

python 如何使用xlwings库获取excl中指定位置的数据

1
a = sheet.range('A1:A20').value			#获取A1-A20的数据以列表的形式存放在a中

python 如何使用xlwings库向excl指定的单元格中写入数据

1
wb.sheets[x][y,z].value = res_text		#参数x是第几个工作表,y是第几行,z是第几列,0代表第一个,以此类推

python如何作饼状图

先用cmd安装三个库

  • numpy
  • matplotlib
  • squarify
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#在默认设置下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)

解决方案:

1
2
plt.rcParams["font.sans-serif"] = ["SimHei"]
plt.rcParams["axes.unicode_minus"] = False