泰迪学院-Python实战
公众号ID:taidixueyuan
本篇主要针对用户在电商平台上留下的评论数据,对其进行分词、词性标注和去除停用词等文本预处理。基于预处理后的数据进行情感分析,并使用LDA主题模型提取评论关键信息,了解用户的需求、意见、购买原因,以及产品的优缺点,最终提出改善产品的建议。
网上购物已经成为大众生活的重要组成部分。人们在电商平台上浏览商品和购物,产生了海量的用户行为数据,其中用户对商品的评论数据对商家具有重要的意义。利用好这些碎片化、非结构化的数据,将有利于企业在电商平台上的持续发展,对这部分数据进行分析,依据评论数据来优化现有产品也是大数据在企业经营中的实际应用。
背景与挖掘目标
随着电子商务的迅速发展和网络购物的流行,人们对于网络购物的需求变得越来越高,也给电商企业带来巨大的发展机遇,与此同时,这种需求也推动了更多电商企业的崛起,引发了激烈的竞争。而在这种激烈竞争的大背景下,除了提高商品质量、压低价格外,了解更多消费者的心声对电商企业来说也变得越来越有必要。其中非常重要的方式就是对消费者的评论文本数据进行内在信息的分析。
评论信息中蕴含着消费者对特定产品和服务的主观感受,反应了人们的态度、立场和意见,具有非常宝贵的研究价值。一方面,对企业来说,企业需要根据海量的评论文本数据去更好的了解用户的个人喜好,从而提高产品质量,改善服务,获取市场上的竞争优势。另一方面,消费者需要在没有看到真正的产品实体、做出购买决策之前,根据其他购物者的评论了解产品的质量、性价比等信息,为购物抉择提供参考依据。
请根据提供的数据实现以下目标。
(1) 对京东商城中美的电热水器的评论进行情感分析。
(2) 从评论文本中挖掘出用户的需求、意见,购买原因以及产品的优缺点。
(3) 根据模型结果给出改善产品的建议。
分析方法与过程
图1为电商产品评论数据情感分析流程,主要步骤如下。
(1) 利用Python对京东商城中美的电热水器的评论进行爬取。
(2) 利用Python爬取到的京东商城中美的电热水器的评论数据,对评论文本数据进行数据清洗、分词、停用词过滤等操作。
(3) 对预处理后的数据进行情感分析,将评论文本数据按照情感倾向分为正面评论数据(好评)和负面评论数据(差评)。
(4) 分别对正、负面评价数据进行LDA主题分析,从对应的结果分析文本评论数据中有价值的内容。

图1 电商产品评论数据情感分析流程
1.评论预处理
对京东商城中美的热水器评论数据进行预处理前,需要先对评论数据进行采集。本案例利用Python网络爬虫技术对京东商城中美的热水器评论数据进行采集。由于本案例的重点是对电商产品评论数据情感分析,且网络数据的爬取具有时效性,因此,本案例不再详细介绍数据的采集过程。以下分析所使用的数据与分析结果,仅作为范例参考。
(1)评论去重
一些电商平台往往为了避免一些客户长时间不进行评论,会设置一道程序,如果用户超过规定的时间仍然没有做出评论,系统会自动替客户做出评论,这类数据显然没有任何分析价值。
由语言的特点可知,在大多数情况下,不同购买者之间的有价值的评论都不会出现完全重复,如果出现了不同购物者的评论完全重复,这些评论一般都是毫无意义的。这种评论显然只有最早的评论才有意义(即只有第一条有作用)。
部分评论相似程度极高,可是在某些词语的运用上存在差异。此类评论可归为重复评论,若是删除文字相近评论,则会出现误删的情况。由于相近的评论也存在不少有用的信息,去除这类评论显然不合适。因此,为了存留更多的有用语料,本节针对完全重复的语料下手,仅删除完全重复部分,以确保尽可能保留有用的文本评论信息。评论去重的代码如代码清单1所示。
代码清单1 评论去重的代码
import pandas as pdimport reimport jieba.posseg as psgimport numpy as np# 去重,去除完全重复的数据reviews = pd.read_csv("../tmp/reviews.csv")reviews = reviews[['content', 'content_type']].drop_duplicates()content = reviews['content']
*代码请联系客服领取,联系方式见文末
运行代码清单1可知,美的热水器的评论共2000条,经过文本去重,共删除重复评论26条,剩余评论1974条。
(2)数据清洗
通过人工观察数据发现,评论中夹杂许多数字与字母,对于本案例挖掘目标而言,这类数据本身没有实质性帮助。另外,由于该评论文本数据主要围绕京东商城中美的电热水器进行评价,其中“京东”“京东商城”“美的”“热水器”“电热水器”等词出现的频数很大,但是对分析目标并没有什么作用,因此可以在分词之前将这些词去除,对数据进行清洗,如代码清单2所示。
代码清单2 数据清洗
# 去除英文、数字等# 由于评论主要为京东美的电热水器的评论,因此去除这些词语strinfo = re.compile('[0-9a-zA-Z]|京东|美的|电热水器|热水器|')content = content.apply(lambda x: strinfo.sub('', x))
*代码请联系客服领取,联系方式见文末
Python数据分析挖掘就业班/师资培训请联系
蔡老师 电话13533974213(微信同号)
陈老师 电话13763027597(微信同号)






