数据清理,清洗,分析!Python都能做到!GO!

一、数据获取和清洗

自己写爬虫的好处就是可以避免掉进第一个坑,但是第二个坑没办法。这里我爬取了 小米MIX 和 小米MIX2 的评论数据(最新的几款手机我都爬取了,需要的请戳后台),其中 小米MIX 共1578条,小米MIX2 共3292条。

本文通过分析这些数据预期完成如下几个目标

1、数据清洗后的好评率

2、好/中/差评的概览

3、典型意见分析

首先来看看MIX2的大致情况:

一共有3497条评论,其中有些评论内容还是完全相同的。用户大概在购买9天后后评论(可能与到货日期有关),平均打分为4.87分,评论里面有些完全相同的,小米MIX2只有一种颜色等等。

接下来我们先做第一件事情

这种情况可以利用正则表达式来去除,第二种比较麻烦,如:

这种评论中它纯属凑字数和灌水,不含任何产品的特征。一种想法是看看评论中涉及的名词是否是手机领域中的词语,但是实际情况会非常复杂,比如

另外还有一种情况,虽然不属于无效评论,但是影响好评占比。

有大神专门用电商评论训练了一个开源的情感分析包snownlp, 我们来看看这个包效果怎样。

嗯嗯,准确率为92.63%,看上去很高,但。。。因为我把所有评论都判定为好评,那正确率也有96.54%。再看上图中的ROC曲线,嗯,惨不忍睹。曲线跟x轴之间的面积(记作AUC)越大,说明模型的判别能力越好。一般情况曲线会在对角线之上(对角线相当于随机预测的结果),可以此时AUC=0.157,比随机结果差多啦。

1、词云。它会统计一段文本中各个词语出现的次数(频数),频数越大,在词云中对应的字体也越大。通过观察词云,可以知道一段文本主要在讲哪些东西

2、TextRank。 TextRank 算法是一种用于文本的基于图的排序算法,可以给出一段文本的关键词。其基本思想来源于谷歌的PageRank算法, 通过把文本分割成若干组成单元(单词、句子)并建立图模型, 利用投票机制对文本中的重要成分进行排序, 仅利用单篇文档本身的信息即可实现关键词提取、文摘。和 LDA、HMM 等模型不同, TextRank不需要事先对多篇文档进行学习训练, 因其简洁有效而得到广泛应用。

3、主题分解。 假设每一段文本都是有主题的,比如新闻里的体育类、时事类、八卦类等。通过对一系列的语料库进行主题分解(本文采用的是LDA),可以了解语料库涉及了哪些主题。(本文用的LDA实际效果不怎么好,暂且仅供娱乐。更好的方法后续或许会更新)

三、典型意见抽取和挖掘

电商评论不同于一般的网络文本,它主要的特点在于语料都是在针对产品的某些特征作出评价。这一节我们希望能通过算法找到这些特征。

细想下,语料主要在对特征做出评价,而特征一般是名词,评价一般是形容词。相对来讲产品的形容词不会很多,如“不错”、“流畅”、“很好”之类的,所以可以通过关联分析来发现初始的特征-形容词对,如("手机"-"不错")、("手机"-"流畅")等。

的;

筛选好后其实还不够,关联分析只会挖掘支持度大于一定数值的特征,我们称这种特征为 "常见特征"。那不常见特征怎么办?怎么才能挖出来?注意到上面已经挖掘出很多形容词啦,这些就是产品的最常用评价词语啦,我们可以通过它们反向挖掘出 "不常见特征"。

利用这种方法,扩大到上述所有的特征可以得到:

其中稍差些的依次为:256g、屏幕、边框、拍照、摄像头、系统、体验、全面屏

最后的最后我们来看下这些特征对应的语料。

四、报告输出

这里安利一个自己造的轮子:reportgen ,结合DataFrame 格式可以自动化生成PPTX报告。目前Github关注量已经有20+啦。

在reportgen中,每一页幻灯片被简化成四部分:标题、副标题、主体(数据图、表格、文本框或图片)、脚注。只要给定每一页的这些数据,reportgen就能帮您自动生成pptx,一般四行代码就完成啦。如:

当然本文的pptx要复杂一些,相应的代码和生成的报告如下:

最后,想学习Python的小伙伴们!

请关注+私信回复:“学习”就可以拿到一份我为大家准备的Python学习资料!

pytyhon学习资料

python学习资料

发表评论
留言与评论(共有 0 条评论)
   
验证码:

相关文章

推荐文章

'); })();