python数据分析师网易云课堂_网易云课堂 数据分析(一)
这篇文章是将要分析网易云课堂里的数据,分析时下学习的热点。
工具准备:
Chrome游览器,
python3.6 (包含requests,jieba库)
首先打开全部课程 - 网易云课堂,登陆之后打开chrome开发者工具,经过分析发现,云课堂里的数据是直接通过ajax获取,于是直接复制cookie模拟发送包,跳过登陆模拟。
截图显示了这个json数据的结构
import requests
import json
header = {
'Accept':'application/json',
'Accept-Encoding':'gzip, deflate',
'Accept-Language':'zh-CN,zh;q=0.8,en;q=0.6',
'Cache-Control':'no-cache',
'Connection':'keep-alive',
'Content-Length':'120',
'Content-Type':'application/json',
'Cookie':'', #input your cookie
'edu-script-token':'', #input your token
'Host':'study.163.com',
'Origin':'http://study.163.com',
'Pragma':'no-cache',
'Referer':'http://study.163.com/courses',
'User-Agent':'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/59.0.3071.115 Safari/537.36',
}
payload= {
"pageIndex":'1',
"pageSize":'50',
"relativeOffset":'100',
"frontCategoryId":'-1',
"searchTimeType":'-1',
"orderType":'0',
"priceType":'-1'
}
由于这个request是个 Request Payload 而不是 Form Data,因而header里需要申明为json,以及一会儿发送时要将payload转换成json数据。
data_list = []
count=0
for i in range(60):
ret = requests.post("http://study.163.com/p/search/studycourse.json", data=json.dumps(payload), headers=header)
payload["pageIndex"] = int(payload["pageIndex"])+1
temp_dic = ret.json()
if temp_dic["message"]!="ok":
print("error "+temp_dic["message"])
#data_list.append(temp_dic["result"]['list'])
for item in temp_dic["result"]['list']:
count +=1
data_list.append(item)
print(i+1,"/60")
print(count)
file_name='opencourse.json'
with open(file_name,'w') as file_object:
json.dump(data_list,file_object)
根据云课堂自己的数据,正好是3000条数据,然后将这3000条数据先保存。
接下来先对标题和介绍进行简单的分词,使用jieba库里的cut() method。 基本原理是用统计 构造Trie树做词典,然后构造DAG,使用动态规划找出最大概率组合。对于词典里没有的词,使用HMM进行划分。代码如下:
import jieba
word_count={}
for item in data_list:
temp_analyse = jieba.cut(item["productName"])
for temp in temp_analyse:
if word_count.get(temp) == None:
word_count[temp] = 1
else:
word_count[temp] = int(word_count[temp]) + 1
temp_analyse = jieba.cut(item["description"])
for temp in temp_analyse:
if word_count.get(temp) == None:
word_count[temp] = 1
else:
word_count[temp] = int(word_count[temp]) + 1
对词典排序后,出现次数最多的50个词 结果如下
sorted(word_count.items(),key=lambda item:item[1],reverse=True)
x[0:50]
Out[25]:
[(',', 21836),
('\n', 19297),
('的', 18876),
(' ', 15846),
('、', 9085),
('。', 8531),
('-', 6916),
('课程', 5677),
(':', 5130),
('.', 4165),
('你', 3218),
('/', 2830),
('学习', 2825),
('是', 2796),
('和', 2730),
('!', 2371),
(')', 2370),
('(', 2268),
('\r\n', 2268),
('在', 2149),
('—', 1967),
('了', 1711),
('本', 1690),
('与', 1633),
('】', 1547),
('【', 1537),
('《', 1521),
('》', 1521),
('?', 1449),
('基础', 1427),
('中', 1382),
('1', 1376),
('为', 1270),
('有', 1260),
('2', 1243),
('“', 1233),
('”', 1218),
(';', 1166),
('如何', 1128),
('可以', 1121),
('让', 1082),
('我们', 1061),
('3', 1042),
(':', 1034),
('教程', 1009),
('更', 1005),
('等', 999),
('设计', 981),
('讲解', 975),
('视频', 969)]
可见单纯的分词并不能满足我们的需求,于是我们采用下TD-IDF和textrank算法直接获取关键词。代码如下:
import jieba.analyse
word_count={}
for item in data_list:
temp_analyse = jieba.analyse.extract_tags(item["productName"])
for temp in temp_analyse:
if word_count.get(temp) == None:
word_count[temp] = 1
else:
word_count[temp] = int(word_count[temp]) + 1
temp_analyse = jieba.analyse.extract_tags(item["description"])
for temp in temp_analyse:
if word_count.get(temp) == None:
word_count[temp] = 1
else:
word_count[temp] = int(word_count[temp]) + 1
出现次数最多的40个词 结果如下:
[('课程', 1725),
('学习', 717),
('教程', 535),
('基础', 471),
('讲解', 422),
('入门', 389),
('视频', 372),
('http', 369),
('com', 351),
('技巧', 304),
('微信', 290),
('实战', 283),
('制作', 260),
('老师', 258),
('QQ', 248),
('设计', 247),
('如何', 240),
('开发', 218),
('学员', 214),
('掌握', 213),
('study', 211),
('案例', 201),
('163', 201),
('PPT', 199),
('课堂', 197),
('10', 190),
('更新', 184),
('英语', 179),
('知识点', 179),
('职场', 178),
('视频教程', 177),
('轻松', 176),
('Excel', 163),
('PS', 162),
('软件', 158),
('系列', 156),
('快速', 155),
('管理', 151),
('考试', 142),
('数据', 142),
('教学', 139),
('htm', 138),
('大家', 138),
('免费', 137),
('知识', 136),
('课程内容', 134),
('使用', 132),
('课时', 129),
('方法', 128),
('www', 127)]
由于textrank的代码和之前的代码重复度太高,直接研究jieba库就行了,结果和TD-IDF也差不多。
就从结果来看,单纯的TD-IDF和textrank算法不能满足我们的需求。因为‘课程’ ‘学习’的IDF值高,相对于助词来说,被认为是关键词,加之出现频率高,所以出现在第一第二名,但是我们更希望得到的是‘Excel’ ‘PS’这样的具体的关键词,得到当下学习的热点。
下一节会用余弦定理和层次聚类来处理这些数据。
python数据分析师网易云课堂_网易云课堂 数据分析(一)相关推荐
- python 数据分析师前景及待遇_数据分析师的前景怎么样?
从20世纪90年代起,欧美国家开始大量培养数据分析师,直至现在对数据分析师的需求仍然长盛不衰而且还有扩展之势.根据美国劳工部预测,到2020年,数据分析师的需求量将增长20%.就算你不是数据分析师,但 ...
- 深夜,学妹说她想做Python数据分析师
大家好,我是大鹏,目前是一名数据分析师. 上周末晚上,我的学妹突然约我出来喝咖啡.想起学妹在学校就一直说想转行,最近在网上捣鼓自学数据分析软件有一小段时间了.我想她不是为了叙旧. 果然来到咖啡店,她一 ...
- 上海python工资一般多少-python数据分析师待遇有多少?工资待遇如何?
随着大数据时代的到来,企业对数据价值的重视,python数据分析师的市场越来越大,毫无疑问python数据分析师已成为"当今最具发展潜力的职业",吸引了无数像小编这样的热血青年,在 ...
- python的薪资待遇-python数据分析师待遇有多少?工资待遇如何?
随着大数据时代的到来,企业对数据价值的重视,python数据分析师的市场越来越大,毫无疑问python数据分析师已成为"当今最具发展潜力的职业",吸引了无数像小编这样的热血青年,在 ...
- 买《Python数据分析师:从0基础到数据分析达人》专题视频课程送纸质图书
<Python从小白到大牛>纸质图书于2018年10月上市,为了答谢广大学员对智捷课堂以及关老师的支持,现购买51CTO学院([Python数据分析师:从0基础到数据分析达人](https ...
- python的工资待遇-python数据分析师待遇有多少?工资待遇如何?
随着大数据时代的到来,企业对数据价值的重视,python数据分析师的市场越来越大,毫无疑问python数据分析师已成为"当今最具发展潜力的职业",吸引了无数像小编这样的热血青年,在 ...
- python 数据分析学什么-python数据分析师要学什么
数据分析师 是数据师Datician['detɪʃən]的一种,指的是不同行业中,专门从事行业数据搜集.整理.分析,并依据数据做出行业研究.评估和预测的专业人员. 1.数学知识(推荐学习:Python ...
- 成都python数据分析师培训_python数据分析师
企业想要在竞争激烈的市场中胜出,决策的速度和反应的效率尤为重要.根据调查显示,75%的企业在面临拟定策略时,常常无法获得实时且有根据的决策信息.什么样的数据.要透过什么样的方法,才能且实时的转变成决策 ...
- 【Python 实战基础】如何绘制树状图展示Python数据分析师的知识结构
目录 一.实战场景 二.主要知识点 文件读写 基础语法 字符串处理 文件生成 数据构建 三.菜鸟实战 1.创建 python 文件 2.运行结果 一.实战场景 实战场景:如何绘制树状图展示Python ...
- python数据分析师下载_2020云开见明Python数据分析师特训营,全套课程资源下载...
课程名称 Python数据分析师特训营(python数据分析从入门到精通) 课程预期目标: 01熟练撞我python语法和常用数据结构 02熟练掌握数据分析相关库的运用 03岁数据分析相关流程和常用方 ...
最新文章
- K12,再好的愿景遇到商业都会慢慢失去真正的目标
- creo 3.0计算机配置,Creo 3.0 Parametric 配置选项文件使用说明
- 从零开始学习jQuery (十一) 实战表单验证与自动完成提示插件
- POJ2299 树状数组求逆序对
- JZOJ 3648. 【GDOI2014】beyond
- ASP——判断数据库NULL值
- 结构型模式—外观模式
- Ubuntu中打开.ipynb文件
- 在CSS中clear属性的妙用
- 【java笔记】打印流printStream
- oracle取字段第三位字符,oracle截取字符串(截取某个字符前面的字符串)
- installshield中用release wizard打包.net framework 1.1中文版
- 快速突破面试算法之数组与矩阵篇
- 【模糊神经网络】基于matlab的模糊神经网络仿真
- 2021FME博客大赛 —— 利用FME实现三调地类图斑统计分析
- ubuntu20.04下rabbitvcs使用svn无法保存密码
- Moviebooking电影售票系统--用例建模
- flog和flag,FLAG标签和3xFLAG标签的序列
- [转载]Eclipse开发工具简介
- 【转】excel文件格式分析