原标题:手把手教你 Python挖掘用户评论典型意见并自动生产报告

用户体验的工作可以说是用户需求和用户认知的分析。而消费者的声音是其中很重要的一环,它包含了用户对产品的评论,不管是好的坏的,都将对我们产品的改进和迭代有帮助。另外任何事情都要考虑金钱成本和人力成本,因此我希望能通过机器学习的算法来辅助分析,对用户的评论数据进行提炼和洞察。

1

数据获取和清洗

现在爬虫泛滥,网络公开数据的获取并不再是一个难题。简单点可以利用一些互联网的爬虫服务(如神箭手、八爪鱼等),复杂点也可以自己写爬虫。这里我们用爬虫来获取京东的评论数据。相对于亚马逊而言,京东比较坑。第一个坑是京东的反爬虫还不错,通过正常产品网址进去的那个评论列表是几乎爬不出数据来的,所有大部分网络爬虫服务都止步于此。第二个坑是一款产品的评论数只要超过一万条,那么京东就只会显示前一千条,没有公开的数据,那你爬虫技术再厉害也没办法,除非开着爬虫定时增量更新数据。

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

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

1、数据清洗后的好评率

2、好/中/差评的概览

3、典型意见分析

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

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

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

京东采用的是5分制,其中4-5分为好评,2-4分为中评,1分为差评。MIX2的好评率为96.63%,与京东官网的一致。

粗略的浏览以下评论,我们发现有这么几种无效评论。

第一种全是标点符号或者就一两个字:

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

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

“用的很不错”、“太差了”...

它并没有主语,并不知道它评价的是啥。这里我们反过来,假设每一类无效评论都有类似的关键词,一个评论中的词语只要有一些垃圾评论关键词,我们就把它判定为无效评论。当然并也不需要给定所有的无效评论词,利用tfidf可以通过一个词语顺藤摸瓜找到其他类似的词语。(还可以利用文本相似性算法寻找)

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

这种情况在追评中出现的较多,还有就是京东默认的好评。虽然内容是差评,但是标记的分值是5分。理论上也可以通过算法找出大部分。在NLP领域中,有一个课题叫做情感分析(sentiment analysis), 它可以判断一句话的情感方向是正面的还是负面的(以概率大小给出,数值在0-1之间)。如果一段评论的情感方向与对应的评分差异过大,则我们有理由相信它的评分是有误的。当然这里有一个条件,那就是这个情感分析算法是非常准确的。

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

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

更好的情感分析估计需要利用大量手机领域的语料重新训练才行,本文就暂不讨论这个啦。

2

好/中/差评的语义理解

语义理解是一个非常难的课题,本文不追求绝对精准,仅希望能对产品的评论有一个快速的理解。本文将从三个方面来阐述同类型评论语料的语义:

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

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

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

来自:gasongjian返回搜狐,查看更多

责任编辑:

python批量评论_手把手教你 Python挖掘用户评论典型意见并自动生产报告相关推荐

  1. 手把手教你 Python挖掘用户评论典型意见并自动生产报告

    用户体验的工作可以说是用户需求和用户认知的分析.而消费者的声音是其中很重要的一环,它包含了用户对产品的评论,不管是好的坏的,都将对我们产品的改进和迭代有帮助.另外任何事情都要考虑金钱成本和人力成本,因 ...

  2. python爬取资料怎么样_手把手教你Python爬取新房数据

    原标题:手把手教你Python爬取新房数据 项目背景 新房数据,对于房地产置业者来说是买房的重要参考依据,对于房地产开发商来说,也是分析竞争对手项目的绝佳途径,对于房地产代理来说,是踩盘前的重要准备. ...

  3. python画折线图-手把手教你Python yLab的绘制折线图的画法

    Python的可视化工具有很多,数不胜数,各有优劣.本文就对其中的pylab进行介绍.之所以介绍这一款,是因为它和Matlab的强烈相似度,如果你使用过Matlab,那么相信pylab你也会很快上手. ...

  4. 怎么用python自制计算公式_手把手教你用python制作简易计算器,能够记录你使用的情况...

    话不多说,首先先看效果图,它能够记录你在使用过程中的历史,方便你查看是否有错: 接下来就仔细分析一下是如何制作的: 简易计算器 第一步:导入资源库 在过程中使用到了tkinter这个资源库,win+R ...

  5. python广州地图_手把手教你用Python+可视化工具制作漂亮地图

    作者:J哥 这次呢,我想讲讲地图可视化的内容,以前我也写过用Python的内置库绘制地图,但总感觉不够美观.如何才能在短时间内制作漂亮的可视化地图呢,我觉得Python+可视化工具是不错的选择. 以下 ...

  6. python文本分类_手把手教你在Python中实现文本分类.pdf

    手把手教你在Python 中实现文本分类(附代码.数 据集) 引言 文本分类是商业问题中常见的自然语言处理任务,目标是自动将文本文件分到一个 或多个已定义好的类别中.文本分类的一些例子如下: • 分析 ...

  7. python 靶心_手把手教你使用Python实战反欺诈模型|原理+代码

    原标题:手把手教你使用Python实战反欺诈模型|原理+代码 作者 | 萝卜 来源 | 早起Python(ID: zaoqi-python) 本文将基于不平衡数据,使用Python进行 反欺诈模型数据 ...

  8. 如何用python开发游戏_手把手教你用Python完成一个控制台小游戏-阿里云开发者社区...

    很多人想学Python程序设计或者已经了解过一点Python程序设计基础,却没办法开发出一个项目. 今天,通过演示一个简单的控制台小游戏制作,手把手教你如何用Python编写一个游戏程序,即便你是个新 ...

  9. 用python画皇冠_手把手教你用 Python 绘制酷炫的桑基图!

    原标题:手把手教你用 Python 绘制酷炫的桑基图! 作者 | 周志鹏 责编 | 郭 芮 最近,不止一次收到小伙伴的截图追问: "这个图叫什么???" "这个图真好看! ...

最新文章

  1. 对javscript中Object.defineProperty的理解
  2. AI 三大教父齐聚深度学习峰会,讨论尖端研究进展
  3. 从零开始编译自己的Linux发行版 LFS简介
  4. 【视频课】图像分割最新内容来了(言有三新录制6大理论部分+1个案例实践讲解)...
  5. java 注解 权限_java 使用注解 处理权限(springboot)
  6. 【NLP傻瓜式教程】手把手带你fastText文本分类(附代码)
  7. Android属性动画 Interpolator
  8. 王者齐聚!Unite 2017 Shanghai 日程讲师全揭晓
  9. 海外服务器搭建网站访问很慢,海外服务器访问速度变慢了怎么办
  10. Java 父类子类的对象初始化过程
  11. 若依前后端部署之后验证码不显示
  12. 鸿蒙空间最高级,洪荒:我能进化万物
  13. 阿里云云计算 8 ECS的实例规格
  14. IAR 8.3 for Arm 安装与注册
  15. Js获取CheckBook被选中的值
  16. cesium 实现指南针及比例尺效果
  17. win10无法复制文件到system32,提示需要权限操作
  18. 中国将实施最严格机动车“全防全控”环境监管制度
  19. html 加响应头,response发送中文,设置响应头
  20. 我要悄悄学习,做一个浪漫的程序员

热门文章

  1. layui card高度不匹配文字
  2. 云波社区 l Mecha Morphing(变形机甲)游戏介绍
  3. 华中科技大学计算机学院郑强是谁,华中科技大学郑强教授,为学生声讨学校后勤集团!反被学院处分?...
  4. 室内外实时一体化建模
  5. 【Laravel系列6.4】管道过滤器
  6. Kubernetes(K8s)基本概念:HPA(Pod横向自动扩容)、StatefulSet
  7. kubernetes hpa源码分析
  8. 数据分析模型:漏斗分析
  9. ARM嵌入式系统开发:软件设计与优化--第二章ARM处理器基础
  10. Zynq7000 USB2.0协议解析及USB控制器详解