Press "Enter" to skip to content

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

1,关于本notebook

 

1.1 背景说明

 

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

 

1.

集搜客数据分析:分析电商评论发现消费者话题-数据采集篇 ​ zhuanlan.zhihu.com

2.

集搜客数据分析:分析电商评论发现消费者话题 -分词和情感分析篇 ​ zhuanlan.zhihu.com

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

也就是说,商品评论的话题范围很窄,其实可以不用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可视化的结果,应该怎样解读, 是否和语料库的来源,性质和研究目的有关? 待进一步学习实践

Be First to Comment

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注