目的:
对于数据产品岗位,需要什么样的技能才能胜任,针对这个小问题,爬取了boss直聘的岗位描述,进行词频统计,并画出词云,来看看到底数据产品需要什么样的技能。最重要用到的python的库是jieba,具体代码如下:
import re
import collections
import numpy as np
import jieba
import wordcloud
from PIL import Image
import matplotlib.pyplot as plt
fn =open("/Users/ouer/Downloads/boss关键词提取.txt")
string_data = fn.read()
fn.close()
文本预处理
#文本预处理
pattern =re.compile(u't|n|.|-|一|:|;|)|(|?|"') # 建立正则表达式匹配模式
string_data = re.sub(pattern,'',string_data)# 将符合模式的字符串替换掉
文本分词并建立停用词词库
#文本分词
seg_list_exact = jieba.cut(string_data, cut_all=False) # 精确模式分词[默认模式]
object_list = [] # 建立空列表用于存储分词结果
remove_words = [u'的', u',',u'、',u';', u'的', u'产品', u'和', u'是', u'随着', u'对于', ' ', u'对', u'等', u'能', u'都', u'。',u'能够',
u'、', u'中', u'与', u'在', u'其', u'了', u'可以', u'进行', u'有', u'更', u'需要', u'提供',u'2',u'1',u'需求',u'及',u'分析',u'工作',u'4',u'2',u'5',u'大',u':',u'相关',
u'多', u'能力', u'通过', u'会', u'参与', u'一个', u'熟练', u'工作经验', u'将', u'并',u'以上',u'良好',u'年',u'者',u'或',u'/',u'完成',u'以上学历',u'较强',u'强',u'具备',
u'同时', u'随着', u'如果', u'但', u'掌握', u'非常', u'—', u'如何', u'包括', u'负责',u'了解',u'建立',u'优先',u'深刻',u'理解',u'数据',u'和',u'有',u'业务',u'经验',u'3']
#remove_words = []
for word in seg_list_exact: # 迭代读出每个分词对象
if word not in remove_words:
object_list.append(word)
词频统计
#词频统计
word_counts = collections.Counter(object_list)
word_counts_top5 = word_counts.most_common(10)
for w,c in word_counts_top5:
print(w,c)
词云展示
# 词频展示
mask = np.array(Image.open('/Users/ouer/Downloads/timg.jpeg')) # 定义词频背景
wc = wordcloud.WordCloud(
font_path='/Library/Fonts/Songti.ttc', # 设置字体格式,不设置将无法显示中文
mask=mask, # 设置背景图
max_words=200, # 设置最大显示的词数
max_font_size=100 # 设置字体最大值
)
wc.generate_from_frequencies(word_counts) # 从字典生成词云
image_colors = wordcloud.ImageColorGenerator(mask) # 从背景图建立颜色方案
wc.recolor(color_func=image_colors) # 将词云颜色设置为背景图方案
plt.imshow(wc) # 显示词云
plt.axis('off') # 关闭坐标轴
plt.show() # 显示图像
结论
根据boss上对岗位词频统计和词云展示,结合实际的岗位描述,数据产品需要的能力包括
1、平台产品的设计与规划能力,即平台产品设计能力;
2、良好的团队协作和沟通能力;
3、数据分析能力;
4、项目运营和执行能力;