小白的数据分析师养成之路玩转大数据Python语言与信息数据获取和机器学习

该学哪一门课?让用户评论数据告诉你!

2017-03-03  本文已影响266人  飘荡的鱼头头头头头大

为了保证每周找点事做(争取每周写一篇),我决定对我最近在学习数据分析的某在线平台下手,研究分析下该平台收费课程的质量。我是一个在线学习重度爱好者,哪个平台都试过,也上了十几门的课,最大的感受就是线上课程的质量很重要,如果质量差的话很容易半途而废,我依稀记得在某平台上上了一门老师讲PPT的课(没错,就是某某大学的R语言课程),上着上着就睡着了......

那么,用什么标准来衡量一门课程的好坏呢?判断一门课程质量好坏的方法有很多,这一次我打算从用户评分和评论入手。因为这次研究的对象是单一平台,没有涉及到其他平台,所以这次研究重点是该平台内课程的横向对比,找出比较受欢迎的课程和好评比较多的课程。

该平台目前有13门收费课程,其中有10门课程可以在介绍页面看到用户的评论信息,具体是长这个样子的:

课程信息包括了平均打分,学习时长,技能要求
五星好评自然被放在第一页

我先把这些评论信息全部抓取了下来,汇总成一个数据集,当然了在抓取信息的时候遇到了不少困难,比如这些数据是动态js生成的,好在最后都解决了。不过有一点值得吐槽。拿其中一门课举例,该课程页面上说一共有1000多条评论,可以“view all reviews”,但是我跑完数据发现总共才300多条,然后我去页面上又手动确认了下,的确普通用户能看到公开评论也就三百多条。

评论信息

评论星级

每门课程评论打分直方图

在这张图表我们可以看到“android basics”和“front-end web developer”是最热门的两门课,评论数量相对其他课程比较多。“predictive analytics for business”由于是刚出的新课,所以评论人数相对较少。

星级百分比分布

第二张图表是每个课程的每个星级所占的百分比。比如某门课打一星的人数占了这门课程总人数的多少,然后我把所有的课程做了一个对比。整体我们可以清晰地看到,大多数的人都打了五星,比重非常之高(当然,不排除平台本身为了证明课程的优秀,所以筛选出了较多五星比重的课程,所以只有课程之间的比较才相对有意义)。四星三星两星和一星比重相对递减。根据观察,我们可以发现几个特殊值:在五星中,上过android basics这门课程的人,打五星比重最高,是所有课程中五星比重最高的。而predictive analytics这门课,打2星的人群所占比重相对其他课程较高,这个和这门课程评论里有蛮多反响不是很好的评论的现象是一致的。

评论情感分析

因为抓取下来所有课程合起来有三四千条评论,我不可能每一条去看,所以我就采用了文本情感分析的方法。文本分析情感主要有字典匹配法和机器学习,我采用了前者,因为这些评论还是比较接近social dictionary的。具体的方法就是我先从unc下载了两个数据集,分别是positive words(积极词汇)和negative words(消极词汇)集。再把现在有的每个评论拆成单独的词汇,对词汇在positive words 和 negative words中进行匹配计数,最后计算得到每门课程评论中积极和消极词汇所占的百分比。

积极情感词汇率

我们可以看到,android basics在评论积极情感方面表现依旧突出,积极情感词汇所占的比重最高,其次是machine learning,我们又看到了predictive analytics for business排在了最后。

消极情感词汇率

在消极情感方面,predictive analytics for business毫无意外的排名第一,看来差评的确有点多。令人比较惊讶的是,machine learning出现在了第三的位置,说明这门课大家的感受有点两集分化的趋势。android basics的消极情感词汇出现率是最低的,再一次证明了大家对它的喜欢程度。

总结和展望

我通过对某平台课程分析,从评分和评论两个方向研究了平台上10门课程的情况,发现android basics是表现最为优异的课程,欢迎程度较高好,好评率也高,而刚新上的predictive analytics for business反响则有些差强人意。

这次文本分析采用了字典匹配法,希望在未来能够利用机器学习法更加精确的分析情感,希望接下来有机会多学习一下这方面的知识。另外,对pandas的使用还是不够熟练,虽然能通过搜索,查阅文档找到自己需要的操作方法,但是效率太低,后期还是要加强学习,特别是建立一个框架,能够提高处理数据集的速度。最后,因为这次数据集我觉得用户主观性比较大,而且可能有平台本身的筛选干扰(为了更好的来表现课程好),不一定能够反应实际情况,仅作参考。

参考文章

An introduction to text analysis with Python

上一篇下一篇

猜你喜欢

热点阅读