电商产品评论数据LDA主题模型、文本挖掘
一、分析方法与过程
本次针对京东商城上的“美的”热水器的文本评论数据进行建模分析。本文进行基本的预处理、分词等操作后建立LDA主题模型,实现对文本评论数据的倾向性判断及信息挖掘分析。
(1)利用爬虫进行数据采集(由于最近较忙,爬虫代码等空了再附上,暂且先用书中提供的数据进行建模),原始文本评论数据为 ![](https://img-
blog.csdn.net/20180703100715144?watermark/2/text/aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzQxNzc1NzEx/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70)
将品牌为“美的”的一列评论抽取,另存为文本文件。代码如下
![](https://img-
blog.csdn.net/20180703100920457?watermark/2/text/aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzQxNzc1NzEx/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70)
(2)对数据进行基本处理,包括数据预处理、中文分词、停用词过滤等操作
(2.1)文本去重。去除一些自动好评的数据,重复的评论等没有价值的数据。大多数文本去重是基于文本之间的相似度,包括编辑距离去重,simhash算法去重等,这些会使得我们去除一些相近的表达,造成错删。本文采用比较删除法,尽量保留有用的评论。代码如下
![](https://img-
blog.csdn.net/20180703101314798?watermark/2/text/aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzQxNzc1NzEx/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70)
(2.2)文本分词,即将连续的字序列按照一定的规范重新组合成词序列的过程。分词的结果对后续算法有着很大的影响,本文采用jieba分词对文档中的评论数据进行中文分词。
(3)对评论数据进行分析。
进行情感倾向性分析,将评论数据分割成正面、负面、中性。抽取正面和负面两组进行词义网络的构建与分析。
二、LDA主题模型
1、模型介绍:
![](https://img-
blog.csdn.net/20180703102654626?watermark/2/text/aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzQxNzc1NzEx/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70)
2、模型实现:
将文本一份为二,分为正面评价和负面评价两个文本分析。此处用COSTCM6中的情感分析做机器分类,因此得到的数据中要删除评分前缀,统一编码后再删除评分。代码如下
![](https://img-
blog.csdn.net/20180703103052936?watermark/2/text/aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzQxNzc1NzEx/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70)
对分类后的文档进行分词,代码如下
![](https://img-
blog.csdn.net/20180703103221294?watermark/2/text/aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzQxNzc1NzEx/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70)
![](https://img-
blog.csdn.net/20180703103318671?watermark/2/text/aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzQxNzc1NzEx/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70)
![](https://img-
blog.csdn.net/2018070310334911?watermark/2/text/aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzQxNzc1NzEx/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70)
分词之后建立LDA模型,
![](https://img-
blog.csdn.net/20180703103841110?watermark/2/text/aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzQxNzc1NzEx/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70)
通过LDA主题分析后,评论被聚成3个主题,每个主题下生成10个最有可能出现的词语以及相应的概率。结果如下
![](https://img-
blog.csdn.net/20180703104022535?watermark/2/text/aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzQxNzc1NzEx/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70)
根据对美的热水器好评的3个主题特征词提取,主题1中的高频特证词为很好,送货快,加热,速度,很快,服务和非常等,反映了京东送货快,服务好,美的热水器加热快。主题2的高频特证词为价格、东西和值得,主要反映了热水器不错价格合适值得购买。主题3的高频词为售后、师傅、上门和安装,反映了京东的售后服务以及师傅上门安装等。
差评的3个潜在主题中,可以看出主题1主要是安装、服务、元等,即反应了美的热水器安装收费高,热水器售后服务不好等;主题2是不过、有点、还可以等情感词;主题3是没有、但是、自己等,反映了热水器自己安装等。
ps:最后附上word2vec的使用
对于要进行分析的语料,进行分词操作,这里就直接使用已经进行分词之后的评论数据,分词代码见上文。使用word2vec训练模型,代码如下:
![](https://img-
blog.csdn.net/20180703160705753?watermark/2/text/aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzQxNzc1NzEx/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70)
输出结果是“好”和“还行”之间的余弦距离y2
![](https://img-
blog.csdn.net/20180703161008740?watermark/2/text/aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzQxNzc1NzEx/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70)
以及和“安装”余弦距离最接近的10个词
![](https://img-
blog.csdn.net/20180703161027585?watermark/2/text/aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzQxNzc1NzEx/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70)
当然,还可以输出指定词的词向量
![](https://img-
blog.csdn.net/20180703161048239?watermark/2/text/aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzQxNzc1NzEx/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70)