电商产品评论数据情感分析
针对用户在电商平台上留下的评论数据,对其进行分词、词性标注和去除停用词等文本预处理。基于预处理后的数据进行情感分析,并使用LDA主题模型提取评论关键信息,以了解用户的需求、意见、购买原因及产品的优缺点等,最终提出改善产品的建议。
数据预处理
评论去重
避免一些客户长时间不进行评论,往往会设置一道程序,如果用户超过规定的时间仍然没有做出评论,系统就会自动替客户做出评论,这类数据显然没有任何分析价值。
import pandas as pd import re import jieba.posseg as psg import numpy as np reviews = pd.read_csv("./data/reviews.csv") print(reviews.shape)
(2000, 5)
# 去重,去除列完全重复的数据 reviews = reviews[['content', 'content_type']].drop_duplicates() content = reviews['content'] print(reviews.shape)
(1974, 2)
数据清洗
由于该评论文本数据主要是围绕京东商城中美的电热水器进行评价的,其中“京东”“京东商城”“美的”“热水器”“电热水器”等词以及评论中夹杂着许多数字与字母等符号对分析目标并没有什么作用,因此可以在分词之前将这些词去除,对数据进行清洗
分词、词性标注、去除停用词
不准确的分词将会产生大量的噪声,严重干扰计算机的识别理解能力,并对这些信息的后续处理工作产生较大的影响。中文分词的任务就是把中文的序列切分成有意义的词,即添加合适的词串使得所形成的词串反映句子的本意,中文分词的关键问题为切分歧义的消解和未登录词的识别。
提取含名词的评论
由于本案例的目标是对产品特征的优缺点进行分析,类似“不错,很好的产品”“很不错,继续支持”等评论虽然表达了对产品的情感倾向,但是实际上无法根据这些评论提取出哪些产品特征是用户满意的。评论中只有出现明确的名词,如机构团体及其他专有名词时,才有意义,因此需要对分词后的词语进行词性标注。之后再根据词性将含有名词类的评论提取出来。
绘制词云
对词语进行词频统计,将词频按照降序排序,选择前100个词,使用wordcloud模块中的WordCloud绘制词云,将文本中出现频率较高的“关键词”予以视觉上的突出。
由图可以看出,“安装”“师傅”“售后”“物流”“服务”等词出现频率较高,因此可以初步判断用户对产品的这几个方面比较重视。
词典匹配
评论数据情感倾向分析
本案例主要是对产品的优缺点进行分析,因此只要确定用户评论信息中的情感倾向方向分析即可,不需要分析每一评论的情感程度。
修正情感倾向
情感倾向修正主要根据情感词前面两个位置的词语是否存在否定词而去判断情感值的正确与否,由于汉语中存在多重否定现象,即当否定词出现奇数次时,表示否定意思;当否定词出现偶数次时,表示肯定意思。按照汉语习惯,搜索每个情感词前两个词语,若出现奇数否定词,则调整为相反的情感极性。读入否定词表,对情感值的方向进行修正。计算每条评论的情感得分,将评论分为正面评论和负面评论,并计算情感分析的准确率。
查看情感分析效果
假定用户在评论时不存在“选了好评的标签,而写了差评内容”的情况,比较原评论的评论类型与情感分析得出的评论类型,绘制情感倾向分析混淆矩阵,查看词表的情感分析的准确率。
由图正面情感评论词云可知,“不错”“满意”“好评”等正面情感词出现的频数较高,并且没有掺杂负面情感词语,可以看出情感分析能较好地将正面情感评论抽取出来。
由图负面情感评论词云可知,“差评”“垃圾”“不好”“太差”等负面情感词出现的频数较高,并且没有掺杂正面情感词语,可以看出情感分析能较好地将负面情感评论抽取出来。
LDA模型
主题数寻优
基于相似度的自适应最优LDA模型选择方法,确定主题数并进行主题分析。
具体步骤如下:
评价主题分析结果
根据主题数寻优结果,使用Python的Gensim模块对正面评论数据和负面评论数据分别构建LDA主题模型,设置主题数为3,经过LDA主题分析后,每个主题下生成10个最有可能出现的词语以及相应的概率
综合以上对主题及其中的高频特征词的分析得出,美的电热水器有价格实惠、性价比高、外观好看、服务好等优势。相对而言,用户对美的电热水器的抱怨点主要体现在安装的费用高及售后服务差等方面。因此,用户的购买原因可以总结为以下几个方面:美的是大品牌值得信赖、美的电热水器价格实惠、性价比高。
根据对京东平台上美的电热水器的用户评价情况进行LDA主题模型分析,对美的品牌提出以下两点建议: