- 无界奖学金讨论区
- 帖子详情
学习分享
【学习与实践】python数据分析-最受欢迎课程与老师(二)
周文扬
发表于2017年12月17日
<p>Python爱好者QQ群:467939826。此文中提到的所有表格数据可在Q群下载-</p><p>欢迎对python感兴趣的朋友加群一起学习交流。</p><p><br ></p><p>上一篇帖子我们提取并汇总、加工了MOOC网所有课程与老师的数据(1024门课程,2864位老师),并初选了五位有可能上榜的老师。</p><p><br ></p><p>【学习与实践】python数据分析-最受欢迎课程与老师(一)</p><p><a href="https://www.icourse163.org/forum/1002592001/topic-1004481184.htm?sortType=1&pageIndex=1" >https://www.icourse163.org/forum/1002592001/topic-1004481184.htm?sortType=1&pageIndex=1</a><br ></p><p><br > </p><p>根据汇总出来的数据,可知道哪些课程和老师比较受关注,但数据是呆板的,比如学员人数这个判断指标,有的课程因为是大学必修课或者其它某种原因,学员人数很多,但未必是大家真正喜欢的。而且评选是主观的,是人参与的,尤其是活跃的用户参与的,因此光凭学员人数,开课数量等数据判断并不太可靠。</p><p><br ></p><p>那么今天我们就来解决这个问题!</p><p><br ></p><p>思路:2017年度MOOC最受欢迎课程评选目前正在第一阶段:提名期(2017.12.11-2017.12.20),活动页面已经有200多页的回复,上面有大家对自己喜欢的老师和课程的留言。那么我们对提名期间学员留言的信息进行提取(主要是提及的老师,课程这两个信息),然后与上篇帖子中得到的数据进行综合比较与筛选,不就可以得到更准确的结论吗? 那现在就开始吧!</p><p><br ></p><p>活动链接:<br ></p><p><a href="https://www.icourse163.org/forum/1001974001/topic-1004424228.htm?sortType=1&pageIndex=1" >https://www.icourse163.org/forum/1001974001/topic-1004424228.htm?sortType=1&pageIndex=1</a><br ></p><p><img src="https://nos.netease.com/edu-image/db7b3362-3845-4b4b-a235-4cbb798400c1.png?imageView&thumbnail=520x520&quality=100" /></p><p><br /></p><p>这是html页面,用python爬虫获取信息很轻松。</p><p>div标签里,属性为 'class': ['reply-editor-content', 'j-reply-content', 'f-richEditorText', 'f-dn'] 的即为评论信息。</p><p>我们把评论信息都提取放到一个列表里。</p><p><br /></p><p>然后打开昨天保存的老师信息列表,取学员数量最多的前200位老师的数据。</p><p>提取表格中的老师姓名信息,然后对评论信息和老师姓名进行依次循环,用到正则表达式的re库,用老师的姓名在评论信息中进行查找,每找到一个就在对应的字典的值里计数。最后会生成一个键为老师姓名,值为被打CALL数量的字典。</p><p><br /></p><p>最后一步,我们把获取的这个包含老师被打卡次数的信息添加到原来的包含老师信息的excel表格里,生成一个新的表格,自动保存到桌面。</p><p>打开表格,来看结果:</p><p><img src="https://nos.netease.com/edu-image/9dc5e54b-dec1-4c6d-b750-ae12fd5051d2.png?imageView&thumbnail=520x520&quality=100" /></p><p>这是被打卡次数排行,这些老师,尤其是前五位老师的课程更有可能被选中!<br /></p><p><br /> </p><p>刚才我们先抛开了课程,从另外一个角度--人的角度,来考虑问题。</p><p>评选是主观的,对课程的喜欢很多时候是从喜欢一位老师开始,大家说呢?</p><p>MOOC上确实有不少优秀的老师,他们的学识、敬业的精神、一丝不苟的态度都很令人敬佩。</p><p><br /></p><p>当然,只有老师打卡排行,没有课程也是不行的。下一步,我们就可搞定打卡课程!敬请关注,稍后更新。<br /></p><p><br /></p><p>课程排行榜来啦!方法同上。在进行数据处理的时候,同样会遇到同名问题,老师排名时我是按学员数量取排在前面的210个非重名的老师。在处理课程时,采用了另外一种方法:凡是同名课程即剔除。这样做的优点就是可以得到大部分课程的排名(所有非同名课程),缺点则是会遗漏同名课程。两种方法各有优劣,大家在遇到类似情况时可以参考。<br /></p><p><br /></p><p>被打卡次数最多的课程TOP30: (排除重名)</p><p><img src="https://nos.netease.com/edu-image/12069aaa-5fa0-4aba-8214-386ce82bc84c.png?imageView&thumbnail=520x520&quality=100" /></p><p>被打卡次数最多的老师TOP30: (排除重名)</p><p><img src="https://nos.netease.com/edu-image/d94c7d3f-ae25-4365-8901-698269f0056c.png?imageView&thumbnail=520x520&quality=100" /></p><p>提名阶段在12.20日即截止,今天是12.17日,现在基本可以判断表内的课程进入提名的可能性较大。</p><p>再结合上文中的老师排名,和【学习与实践】python数据分析-最受欢迎课程与老师(一)中得到课程人数排名,老师开课数量排名,单课学员排名信息,选出十个最有潜力的课程和老师是不是很轻松啦? 大家可以去深挖挖。 我这里只用数据说话,暂时不做更多的主观判断。</p><p><br /></p><p>12.20日再做一个最佳课程Top10、最受欢迎老师Top10的排行榜。并对此活动最后胜出的课程作出预测。<br /></p><p><br /></p>
3
回复