分析电商评论发现消费者话题-LDA主题分析篇(Jupyter Notebook)

2021-6-25 11:26| 发布者: Fuller| 查看: 5395| 评论: 0

摘要: 电商网站上的商品评论的话题相对来说变化很小,基本上在一个固定的范围之内。几年前做过一个手机用户消费者洞察系统,在一个品类内部,消费者的话题可以分成两个大角度来分析,一个是消费者感知角度,就是消费者针对 ...

1,关于本notebook

1.1 背景说明

本文是系列文章中的第三篇,前两篇是

1. 分析电商评论发现消费者话题-数据采集篇

2. 分析电商评论发现消费者话题-文本分词和情感分析篇

电商网站上的商品评论的话题相对来说变化很小,基本上在一个固定的范围之内。几年前做过一个手机用户消费者洞察系统,在一个品类内部,消费者的话题可以分成两个大角度来分析,一个是消费者感知角度,就是消费者针对手机产品的各种功能的感受表达;另一个是产品特征角度。从两种角度出发可以设定更细的分类。下图是一个可视化结果。

也就是说,商品评论的话题范围很窄,其实都不用LDA话题分析,大不了按照电商网站上的商品品类,分别建立话题类别。相比之下,微博上的用户言论就很发散,上一篇《微博内容分词后怎样用JupyterNotebook做LDA主题模型分析》用pyLDAvis可视化解读分析出来的主题其实不太容易,虽然可以调整pyLDAvis的相关性计算参数看到更合理的解释,但是,为了降低学习难度,我提出了一种简化的方法,就是先手工选词,记录在这篇《微博内容分词并手工选词后用JupyterNotebook做LDA主题分析》,这些技巧是否符合分析的要求,有待实验验证。在当时的消费者洞察分析项目中效果很好。所以,本篇依然先选词再分析。

1.2 数据源说明

原始数据是从天猫,京东,苏宁上用GooSeeker网络爬虫采集的关于“iphone12”的用户评论数据。将要分析的评论内容以Excel格式导入GooSeeker分词和文本分析软件,几分钟后就能得到词频词性表和分词效果表。可以利用软件界面做人工选词,还可以生成共词矩阵,选词匹配表和社交关系图。另外情感分析也可自动执行,也可以配置自己的情感词库和文本分类关键词。

下图显示的是从集搜客分词和文本分析软件导出的分词效果表数据,下面我们会读取这个excel并且把"打标词"这一列"做处理和转换,每个单元格按Gensim的要求转换成一个列表。然后调用Gensim库做LDA主题分析。

1.3 使用方法

基本操作顺序是:

1. 在GooSeeker分词和文本分析软件上进行任务创建并导入包含原始内容的excel,并导出选词匹配表

2. 将导出的选词匹配表放在本notebook的data/raw文件夹中

3. 从头到尾执行本notebook的单元

注意:每个notebook项目目录都预先规划好了,具体参看Jupyter Notebook项目目录规划参考。如果要做多个分析项目,把整个模板目录专门拷贝一份给每个分析项目。

1.4 简要技术说明

在每个功能项单元,如果不需要关心的编程细节,将注明【编程细节】。

本notebook主要实现以下几个步骤:

1. 读取data/raw文件夹中的从分词工具导出的选词匹配表

2. 对选词匹配表进行基本的预处理

3. 使用Gensim库做LDA主题模型实验

2,第三方库

本notebook使用了gensim库和pyLDAvis库,gensim库用于生成BOW词袋和做LDA主题提取, pyLDAvis库用于LDA主题结果的可视化。

请安装下面2个第3方库:

pip install -i https://pypi.tuna.tsinghua.edu.cn/simple gensim #国内安装使用清华的源,速度快

pip install -i https://pypi.tuna.tsinghua.edu.cn/simple pyLDAvis

3,准备程序环境

导入必要的Python程序包,设定要分析的文件名变量。使用以下变量对应GooSeeker分词结果表:

file_word_freq:词频表

file_seg_effect: 分词效果表

file_word_choice_matrix: 选词矩阵表

file_word_choice_match: 选词匹配表

file_word_choice_result: 选词结果表

file_co_word_matrix: 共词矩阵表

【编程细节】本节下面的代码将对上述词频表名变量赋值

4,检测data\raw目录下是否有选词匹配表

5,读取选词匹配表

以下的演示以GooSeeker分词和文本分析软件生成的选词匹配excel表为例,需要把选词匹配表放到本notebook的data/raw文件夹下

选词匹配表已经把每个句子对应的所有选词放到了“打标词”字段,词与词之间用逗号间隔,所以,只需要执行split,就能分成词数组

6,对读取到的选词数据(语料库)进行预处理

去除纯数字和只有一个字的词

7,使用Gensim库进行主题模型实验

7.1 根据处理后的语料库生成唯一性词典

7.2 显示词典的前10行

7.3 生成矢量列表(list of vectors)

7.4 使用Gensim库的models.LdaModel方法进行主题建模

注意:本步骤的运行时间长短,和语料库的大小有关。语料库大的话,需要等待的时间会相应比较长

运行完成后会看到提示显示:LDA建模运行结束

7.5 显示提取出的每个主题的相关词

建模后,会生成每篇文档对应每个主题的概率

7.6 显示前10篇文档

8,根据提取的模型数据进行可视化

已经上面提取的3个主题下的词,作者依据自己的理解总结为:

主题1:运行速度和拍照效果

主题2:手感和外观

主题3:购买相关:价格,快递

9,本次实验存在的问题及下一步的实验

1.由于本次实验使用的语料库(iphone12用户评论)总共只有几千条,并且先用集搜客文本分词和情感分析软件做好了分词,所以对电脑资源的消耗不大,所有的数据都是加载到内存处理的。实际的分析项目,需要考虑性能问题,这个可以参考Gensim的官方文档

2.对于pyLDAvis可视化的结果,应该怎样解读, 是否和语料库的来源,性质和研究目的有关? 待进一步学习实践

10,下载notebook

作为数据探索实验,本notebook放在文件夹:notebook\eda

分析电商评论发现消费者话题-LDA主题分析篇(Jupyter).zip


鲜花

握手

雷人

路过

鸡蛋

最新评论

GMT+8, 2024-4-27 02:47