用python分析关键词的出现频次

1/15/2022 爬虫

# 数据结构

从某招聘网站手动抓取了某区域前端岗位的JSON数据,打算来分析一下2022年该区域公司对前端岗位的技术需求。 json数据

抓取到的数据结构如下所示:

[
	{	
		"jobName": "****",
		
		"salaryDesc": "10-15K·13薪",
		
		"jobLabels": [
		
			"1-3年",
			
			"本科"
		
		],
		
		"skills": [
		
			"TypeScript",
			
			"HTML",
			
			"HTML5",
			
			"AngularJS",
			
			"Angular"
			
		],
		
		"jobExperience": "1-3年",
	},
	{
		//内容
	},
	{
		//内容	
	},
	...
]

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
36
37
38
39

目标:统计skills里的各个技术出现的次数

# 配置

  1. 导入库
import json
import operator
1
2
  1. 创建变量rank接收排序结果 rank = []

  2. open方法打开json文件,用json.load方法读取数据,并用data接收

f = open('文件路径/文件名')
data = json.load(f)
1
2

4.创建变量frenquency_word,储存所有出现的关键词;变量count储存出现的次数。然后用for遍历循环json列表。

frequency_list = []
frequency_word = []

for i in data:
	for keyword in i['skills']:
		//关键词首次出现时添加到frenquency_word,然后count+1
		if keyword not in frequency_word:
			frequency_word.append(keyword)
			count.append(1)
		//关键词已经存在时,直接找到该关键词对应的index,然后count列表对应的位置也加1
		else:
			ind = frequency_word.index(keyword)
			count[ind] += 1
f.close()
	
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
  1. 合并frequency_word和count两个列表,用rank接收后,使用 operator 模块的itemgetter函数辅助对二维列表进行按次数的倒序排序。
rank = list(zip(count,frequency_word))
rank.sort(key=operator.itemgetter(0),reverse=True)
1
2

以下是得出来的结果,html和css分别是第一第二,然后是js,react,vue,小程序和ts。node.js和jquery比想象中的少。 统计结果

Last Updated: 5/2/2022, 9:10:03 AM