一文教你挖掘用户评论典型意见

2017-11-01 宋老师 JSong
原文:JSong公众号
用户体验的工作可以说是用户需求和用户认知的分析 。而消费者的声音是其中很重要的一环,它包含了用户对产品的评论,不管是好的坏的,都将对我们产品的改进和迭代有帮助 。另外任何事情都要考虑金钱成本和人力成本,因此我希望能通过机器学习的算法来辅助分析,对用户的评论数据进行提炼和洞察 。
现在爬虫泛滥,网络公开数据的获取并不再是一个难题 。简单点可以利用一些互联网的爬虫服务(如神箭手、八爪鱼等),复杂点也可以自己写爬虫 。这里我们用爬虫来获取京东的评论数据 。相对于亚马逊而言,京东比较坑 。第一个坑是京东的反爬虫还不错,通过正常产品网址进去的那个评论列表是几乎爬不出数据来的,所有大部分网络爬虫服务都止步于此 。第二个坑是一款产品的评论数只要超过一万条,那么京东就只会显示前一千条,没有公开的数据,那你爬虫技术再厉害也没办法,除非开着爬虫定时增量更新数据 。
自己写爬虫的好处就是可以避免掉进第一个坑,但是第二个坑没办法 。这里我爬取了小米MIX和小米MIX2的评论数据(最新的几款手机我都爬取了,需要的请戳后台),其中 小米MIX 共1578条,小米MIX2 共3292条 。
本文通过分析这些数据预期完成如下几个目标
首先来看看MIX2的大致情况:
一共有3497条评论,其中有些评论内容还是完全相同的 。用户大概在购买9天后后评论(可能与到货日期有关),平均打分为4.87分,评论里面有些完全相同的,小米MIX2只有一种颜色等等 。
接下来我们先做第一件事情
京东采用的是5分制,其中4-5分为好评,2-4分为中评,1分为差评 。MIX2的好评率为96.63%,与京东官网的一致 。
粗略的浏览以下评论,我们发现有这么几种无效评论 。
第一种全是标点符号或者就一两个字:
这种情况可以利用正则表达式来去除,第二种比较麻烦,如:
这种评论中它纯属凑字数和灌水,不含任何产品的特征 。一种想法是看看评论中涉及的名词是否是手机领域中的词语,但是实际情况会非常复杂,比如
“用的很不错”、“太差了”...
它并没有主语,并不知道它评价的是啥 。这里我们反过来,假设每一类无效评论都有类似的关键词,一个评论中的词语只要有一些垃圾评论关键词,我们就把它判定为无效评论 。当然并也不需要给定所有的无效评论词,利用tfidf可以通过一个词语顺藤摸瓜找到其他类似的词语 。(还可以利用文本相似性算法寻找)
另外还有一种情况,虽然不属于无效评论,但是影响好评占比 。
这种情况在追评中出现的较多,还有就是京东默认的好评 。虽然内容是差评,但是标记的分值是5分 。理论上也可以通过算法找出大部分 。在NLP领域中,有一个课题叫做情感分析( ), 它可以判断一句话的情感方向是正面的还是负面的(以概率大小给出,数值在0-1之间) 。如果一段评论的情感方向与对应的评分差异过大,则我们有理由相信它的评分是有误的 。当然这里有一个条件,那就是这个情感分析算法是非常准确的 。

一文教你挖掘用户评论典型意见

文章插图
有大神专门用电商评论训练了一个开源的情感分析包, 我们来看看这个包效果怎样 。
嗯嗯,准确率为92.63%,看上去很高,但 。。。因为我把所有评论都判定为好评,那正确率也有96.54% 。再看上图中的ROC曲线,嗯,惨不忍睹 。曲线跟x轴之间的面积(记作AUC)越大,说明模型的判别能力越好 。一般情况曲线会在对角线之上(对角线相当于随机预测的结果),可以此时AUC=0.157,比随机结果差多啦 。