《Python 数据分析与挖掘实战》第十五章 电商产品评论数据LDA主题模型、文本挖掘

时间:2024-04-13 18:30:53

一、分析方法与过程

本次针对京东商城上的“美的”热水器的文本评论数据进行建模分析。本文进行基本的预处理、分词等操作后建立LDA主题模型,实现对文本评论数据的倾向性判断及信息挖掘分析。

(1)利用爬虫进行数据采集(由于最近较忙,爬虫代码等空了再附上,暂且先用书中提供的数据进行建模),原始文本评论数据为《Python 数据分析与挖掘实战》第十五章 电商产品评论数据LDA主题模型、文本挖掘

将品牌为“美的”的一列评论抽取,另存为文本文件。代码如下

《Python 数据分析与挖掘实战》第十五章 电商产品评论数据LDA主题模型、文本挖掘

(2)对数据进行基本处理,包括数据预处理、中文分词、停用词过滤等操作

(2.1)文本去重。去除一些自动好评的数据,重复的评论等没有价值的数据。大多数文本去重是基于文本之间的相似度,包括编辑距离去重,simhash算法去重等,这些会使得我们去除一些相近的表达,造成错删。本文采用比较删除法,尽量保留有用的评论。代码如下

《Python 数据分析与挖掘实战》第十五章 电商产品评论数据LDA主题模型、文本挖掘

(2.2)文本分词,即将连续的字序列按照一定的规范重新组合成词序列的过程。分词的结果对后续算法有着很大的影响,本文采用jieba分词对文档中的评论数据进行中文分词。

(3)对评论数据进行分析。

进行情感倾向性分析,将评论数据分割成正面、负面、中性。抽取正面和负面两组进行词义网络的构建与分析。

二、LDA主题模型

1、模型介绍:

《Python 数据分析与挖掘实战》第十五章 电商产品评论数据LDA主题模型、文本挖掘

2、模型实现:

将文本一份为二,分为正面评价和负面评价两个文本分析。此处用COSTCM6中的情感分析做机器分类,因此得到的数据中要删除评分前缀,统一编码后再删除评分。代码如下

《Python 数据分析与挖掘实战》第十五章 电商产品评论数据LDA主题模型、文本挖掘

对分类后的文档进行分词,代码如下

《Python 数据分析与挖掘实战》第十五章 电商产品评论数据LDA主题模型、文本挖掘

《Python 数据分析与挖掘实战》第十五章 电商产品评论数据LDA主题模型、文本挖掘

《Python 数据分析与挖掘实战》第十五章 电商产品评论数据LDA主题模型、文本挖掘

分词之后建立LDA模型,

《Python 数据分析与挖掘实战》第十五章 电商产品评论数据LDA主题模型、文本挖掘

通过LDA主题分析后,评论被聚成3个主题,每个主题下生成10个最有可能出现的词语以及相应的概率。结果如下

《Python 数据分析与挖掘实战》第十五章 电商产品评论数据LDA主题模型、文本挖掘

根据对美的热水器好评的3个主题特征词提取,主题1中的高频特证词为很好,送货快,加热,速度,很快,服务和非常等,反映了京东送货快,服务好,美的热水器加热快。主题2的高频特证词为价格、东西和值得,主要反映了热水器不错价格合适值得购买。主题3的高频词为售后、师傅、上门和安装,反映了京东的售后服务以及师傅上门安装等。

差评的3个潜在主题中,可以看出主题1主要是安装、服务、元等,即反应了美的热水器安装收费高,热水器售后服务不好等;主题2是不过、有点、还可以等情感词;主题3是没有、但是、自己等,反映了热水器自己安装等。


ps:最后附上word2vec的使用

对于要进行分析的语料,进行分词操作,这里就直接使用已经进行分词之后的评论数据,分词代码见上文。使用word2vec训练模型,代码如下:

《Python 数据分析与挖掘实战》第十五章 电商产品评论数据LDA主题模型、文本挖掘

输出结果是“好”和“还行”之间的余弦距离y2

《Python 数据分析与挖掘实战》第十五章 电商产品评论数据LDA主题模型、文本挖掘

以及和“安装”余弦距离最接近的10个词

《Python 数据分析与挖掘实战》第十五章 电商产品评论数据LDA主题模型、文本挖掘

当然,还可以输出指定词的词向量

《Python 数据分析与挖掘实战》第十五章 电商产品评论数据LDA主题模型、文本挖掘